Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > игра Го


Автор: Elyad 2.10.2006, 15:20
Как спрограммировать китайскую игру Го. Может кто знает, какой алгоритм использовать?

Автор: dereyly 2.10.2006, 15:44

Сначала тебе нужно написать игру между 2мя людьми... тогда перд тобой ставится единственная задача это ввод правил по игре это как какмни должны реагировать на действия, ну нельзя ставить один на другой или в окруженное пространство ("глаз")  нельзя поставить какмень... тогда возникает вопрос что такое окруженное пространство и вообще как происходит процесс съедания
Вар №1 когда то писал игру точки и алгоритм закрытия был следующим :
составлялся граф связей и итератеивно из этого графа удалялись вершины (строка столбец соотв вершине) у которых меньше 2х связей, ну и оставались соответственно замкнутые конструкции
Вар №2 в этом плане Го довольно проще запраграмировать и более изящным можно реализовать "если у камня или группы камней неостается дыханий то он (они) умирают", т.е. вводится  класс Сstones и для него пишется метод GetStjnesBreath() (ну и соотв int breath), который проверяет количество дыханий для каждой группы после каждого хода. Значит у нас есть 2 массива (стека) групп которые и представляют чернуюи белую сторону
Группой назовем набор камней связанных горизонтально-вертикальными связями (не диагональными). Незабыть отношение между группами такие как: объеденение групп, удаление групп.
2й подход более изящен потому что он отталкивается не от того что съел ты группы или нет, а является некотрая группа съеденой или нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)