1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

D&Z Chess

Тема в разделе "Мастерская", создана пользователем Dimouse, 10 фев 2008.

  1. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    Выкладываю мою последнюю программу (примерно две недели на нее потратил) - игра в шахматы. С исходниками. Просьба потестить кому интересно, обсудить исходники. Исходники написаны в моем фирменном стиле к сожалению, поэтому сомневаюсь что кто-то осилит, но мало ли:)
    Написано на аллегре, поэтому у кого ее нет - см. allegro.cc. По идее с нужными либами в lib и инклюдами в include должно компилироваться.

    Что касается тестирования - то мне уже немного поднадоело тестировать, вроде все сейчас работает, но не уверен насчет рокировок. Если кто-нибудь увидит как компьютер рокируется, просьба написать об этом:) Также не работает режим игры вдвоем (точнее его можно включить но я кое-чего не дописал, поэтому будет глючить наверное). В chess.cfg устанавливается уровень сложности и режим игры - с компьютером или вдвоем.

    Управление осуществляется мышой, первый клик - выбираем фигуру, второй - куда ходить. Нажатие на клавиатуру - выход.
    После игры остается лог с игрой (файл log.txt). Если какие-то глюки происходили, желательно его приложить и сказать где был глюк.

    Уровень сложности - четная цифра. 2 - совсем тупой (я на нем не играл даже), 4 - средний (я только на нем играл), 6 - сложный (у меня очень тормозит). Если у кого не тормозит на шестерке - было бы очень интересно узнать как он играет, сколько в среднем времени занимает ход, мысли как это можно оптимизировать и т.д.

    Ссылки:
    игра: http://serv.edu.kiae.ru/~stbds/chess_demo.zip (140 kb)
    исходники: http://serv.edu.kiae.ru/~stbds/chess_src.zip (8 kb)
    Скриншот:
    [​IMG]
     
    _LINKI, AndyFox, hobot и 2 другим нравится это.
  2.  
  3. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    О, класс! Шахматы писать - это гуд :). Теперь по замечаниям.
    Интерфейс:
    1. Очень надо какой-нить "Exit".
    2. Выделенную фигуру надо подсвечивать (обводить рамочкой или еще что-то)
    Игра:
    1. Компьютер игнорирует шах, гадюка! Че-то не попробовал сбить ему короля :) Седня попробую :)
    2. И вобще, шах стоит отображать где-нибуть, чтобы было видно
    АИ:
    Комп на средней сложности очень быстр и весьма глуповат. Да и варианты ходов всегда выбирает одинаковые. Вобще интересен алгоритм "продумывания" хода. Стандартный? Перебор вариантов и оценка "полезности" хода? Тогда желательно было бы вписать несколько стандартных дебютов из книжки. А то комп напрочь сдает в начале игры центр, да и выход ферзя на втором ходе очень оригинальная штучка.

    Пока все. Все впечатления основаны на одной быстрой партии и двух-трех пробных дебютах. Потом попробую детальнее.
     
    AndyFox нравится это.
  4. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    Zelya,
    1) ну пока просто любая клавиша на клавиатуре - выход. Могу конечно сделать кнопочку специальную, чтобы мышкой надо было тыкать, но ее еще рисовать надо...
    2) Это я тоже подумывал. Сделаю.
    Игра:
    1) Не должен! Можно лог партии?
    2) Хорошо, сделаю.
    АИ:
    Предельно примитивный (я имею в виду критерий полезности хода). Надо чем-то обязательно дополнить. И чтобы он случайно иногда выбирал, а то действительно все время одинаково ходит.
    Дебюты попробую добавить.
    Вообще на 4-ке он сливает только так. Вот например партия где он проиграл хуже дошкольника:
    Код:
    1. pe2-e4 pe7-e6, 2. pd2-d4 Bf8-b4+, 3. pc2-c3 Bb4-d6, 4. pe4-e5 Bd6-f8, 5. Ng1-f3 pf7-f6, 6. Bf1-d3 Ke8-f7, 7. pg2-g4 pd7-d5, 8. pg4-g5 pf6-f5, 9. ph2-h4 Bc8-d7, 10. ph4-h5 pa7-a5, 11. ph5-h6 pg7-h6, 12. pg5-h6 Ng8-h6, 13. Bc1-h6 Bf8-e7, 14. Ke1-d2 Rh8-g8, 15. Qd1-b3 Qd8-c8, 16. Nb1-a3 Rg8-g2, 17. Ra1-f1 pa5-a4, 18. Qb3-d1 Rg2-g6, 19. Rf1-g1 Rg6-g1, 20. Qd1-g1 Qc8-h8, 21. Nf3-g5+ Kf7-e8, 22. Bd3-e2 Nb8-c6, 23. Be2-h5+ Ke8-d8, 24. Ng5-f7+ Kd8-e8, 25. Nf7-h8+ Ke8-d8, 26. Qg1-g8+ Be7-f8, 27. Qg8-f8+ Bd7-e8, 28. Qf8-e8#
    
     
    AndyFox нравится это.
  5. De_DraGon

    De_DraGon

    Регистрация:
    5 май 2007
    Сообщения:
    2.110
    Отсутствует ничья повторением ходов.
    P.S. да - на 6 тормозит чудовищно.
     
    Последнее редактирование: 11 фев 2008
    AndyFox нравится это.
  6. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    De_DraGon, да, и еще ничья, когда выигрыш невозможен (я честно говоря не помню какими фигурами можно поставить мат (если их мало)).
     
    AndyFox нравится это.
  7. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    Дико извиняюсь! Но действительно, такого не было. Зато свежее замечание - черные пешки не имеют белых элементов, и частенько "теряются" на черных клетках. Так же желательно подсвечивать последний ход компьютера :)
     
    AndyFox и Dimouse нравится это.
  8. De_DraGon

    De_DraGon

    Регистрация:
    5 май 2007
    Сообщения:
    2.110
    ферзем;
    ладьей;
    двумя слонами;
    слоном и конем;
    двумя конями (только при ошибке соперника - то есть матовая ситуация существует, но враг попасть в нее может только если ошибется).
    P.S. насчет рокировки компа - несколько десятков партий прогнал - что-то комп ни разу не рокировался.
     
    AndyFox и Dimouse нравится это.
  9. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    De_DraGon, то есть ничья засчитывается когда из фигур остался с каждой стороны: один конь либо один слон либо два коня. Так?
    Насчет рокировки - буду разбираться.
     
    AndyFox нравится это.
  10. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    У меня рокируется как миленький! :).

    ПС Если мона выложить свою бЫблиотеку аллегро - был бы рад :)
     
    AndyFox и Dimouse нравится это.
  11. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    Zelya, http://www.allegro.cc/files/4.2.2/allegro-msvc6-4.2.2.zip
    Вот аллегро для MS VC++ 6.0. Для других компиляторов - здесь: http://www.allegro.cc/files/
    Но я под другими не компилировал. В dsw файле вроде бы все настройки есть, но на всякий случай:
     
    AndyFox нравится это.
  12. De_DraGon

    De_DraGon

    Регистрация:
    5 май 2007
    Сообщения:
    2.110
    Да:
    Король vs Король+Слон - ничья
    Король vs Король+Конь - ничья
    Король vs Король+Конь+Конь - тоже пусть будет, поскольку мат тут чисто теоретический. И соответственно вопрос о пате: то есть если врагу просто некуда ходить - это тоже ничья.
    P.S. еще заметил - когда пешку ведешь до конца выбора фигуры нету, дается ферзь.
     
    AndyFox и Dimouse нравится это.
  13. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    По идее это сейчас как раз работает. К тому же в конце игры свести партию в пат - ничего не стоит, комп тупит просто страшно:( - на 4-ке само собой. Думаю надо сделать что-то среднее между 4-кой и 6-кой.
    Ну я знаю что есть такие задачки, где ферзя делать нельзя чтобы выиграть, но на практике такого ни разу не было.
     
    AndyFox нравится это.
  14. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    Было-было, как раз, чтобы пат не поставить :)
     
    AndyFox нравится это.
  15. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    Версия 1.1 (больше видимо не будет, только если здесь есть какие-то серьезные баги или будет сверхажиотаж). Что добавлено:
    Код:
    Changes from version 1.0:
    1) debuts added (totally 11 different debuts now)
    2) found bug with castling (not cruicial)
    3) stalemate when mate is not possible added (not tested)
    4) improved ending logic and computing (maybe longer thinking though)
    5) exit button added (click on it to exit), though keyboard ending still work
    6) comments for check and thinking added
    7) red frame for chosen figure added
    8) updated displaying (no blinking hopefully)
    
    Ссылка прежняя: http://serv.edu.kiae.ru/~stbds/chess_demo.zip (140 kb)
    Кому интересно - могу выслать исходники.
     
    AndyFox нравится это.
  16. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    Вспомнил тут вчера про это дело. Ссылки сдохли, поэтому прикладываю аттачментом.
    На сложности 6 (6 ходов вперед просчитывает) вполне неплохо играет. Сейчас попробовал сыграть и проиграл.
     

    Вложения:

    • chess.rar
      Размер файла:
      144,5 КБ
      Просмотров:
      61
    AndyFox, Grongy и hobot нравится это.
  17. hobot Оператор ДВК.

    hobot

    Регистрация:
    6 авг 2009
    Сообщения:
    1.777
    мощно ) жаль только вернуть ход нельзя.
    насчёт рокировок ПКМ игрок рокируется без проблем, а вот компьютер пока не знаю.
    программа вполне достойно играет, написал бы ты статью о создании шахматной
    программы - интересно было бы почитать.
     
    AndyFox нравится это.
  18. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    @hobot, ну там ничего особенно сложного - просто рекурсивный алгоритм типа А* с оценкой качества хода - взятие фигур (с разным весом за разные фигуры), вот и всё. Сложность в конфиге - это "глубина" просчета, причем это должно быть четное число, так как считаются отдельно ходы компьютера и игрока.
    Исходники вот куда-то подевались, поищу на старом компьютере, самому интересно.
     
    AndyFox нравится это.
  19. hobot Оператор ДВК.

    hobot

    Регистрация:
    6 авг 2009
    Сообщения:
    1.777
    Да, это уже "высокий уровень", мне интересно "низкий"
    Как программа вообще должна понимать правила, откуда берутся начальные установки для фигур
    или есть готовая наработка какая-то. То есть нельзя же вот так бац и написать шахматы за часик-другой.
    Это тетрис можно. А шахматы нет ))) Может просто ты использовал внешние какую-то библиотеку где
    все фигуры и доска уже описаны в каком-то виде? Или я ошибаюсь?
    Я не представляю как компьютер научить именно смотреть на фигурки и поля, учитывать битое поле.
    Для меня это что то заоблачное.

    На Си они мне ничего не дадут, я не понимаю эти листинги из скобочек к сожалению )
    Поигрался в версию из архива на уровне 4 норм. любительский уровень кстати, причём он
    (программа) делает такие неоднозначные ходы. Шестой пока не ставил.

    Ты пинать её уже не будешь, но туда добавить бы смену сторон и возможность откатить ходы,
    то есть сделать ЛОГ интерактивным. ))) В общем для карманных шахмат или шахмат
    встроенных в холодильник или в ОС маленькую какую-нибудь вполне достаточный уровень игры.
    Спрайтики классика.
     
    AndyFox нравится это.
  20. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    34.670
    @hobot, ну не за часик-другой, несколько дней нужно. А так я не вижу проблемы, писалось всё с нуля. Ну, описываешь как какая фигура ходит, их ведь не так уж много:) Главное - как раз алгоритм.

    Вряд ли буду трогать, хотя предложения хорошие. Но там нужно поднять старую аллегро на современном окружении - не уверен, что оно вообще заработает. Хотя классная была штука.
    Да, картинки фигур я откуда-то натырил.

    P.S. Исходники я найду все-таки, они должны быть на старом компьютере.
     
    AndyFox нравится это.
  21. hobot Оператор ДВК.

    hobot

    Регистрация:
    6 авг 2009
    Сообщения:
    1.777
    ВАХЪ! Взятие на проходе не работает! (
     
    AndyFox нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление