Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  174

•  TDictionary Custom Sort  3 346

•  Fast Watermark Sources  3 097

•  3D Designer  4 854

•  Sik Screen Capture  3 352

•  Patch Maker  3 556

•  Айболит (remote control)  3 665

•  ListBox Drag & Drop  3 020

•  Доска для игры Реверси  81 750

•  Графические эффекты  3 951

•  Рисование по маске  3 254

•  Перетаскивание изображений  2 633

•  Canvas Drawing  2 763

•  Рисование Луны  2 586

•  Поворот изображения  2 196

•  Рисование стержней  2 174

•  Paint on Shape  1 572

•  Генератор кроссвордов  2 243

•  Головоломка Paletto  1 773

•  Теорема Монжа об окружностях  2 239

 

 

Архив исходников

   
  Базы данных
  Графика & Мультимедиа
  Сети & Интернет
  Система
  Разное
   

Ссылки и Баннеры ...

 

Delphi Sources

Delphi Sources

 




 

ИСХОДНИК ПРОГРАММЫ

 

. : Игра Go (Го) : .

 

Delphi - Реализация древней китайской игры Го (в Китае она называется Wei-chi)

Исходник программы, показывающей пример реализации древней китайской игры Го (в Китае она называется Wei-chi).

Го - одна из простых, но в тоже время и сложных настольных игр. Два противника по очереди кладут черные и белые камни на квадратную доску. Если вы окружите группу камней противника своим цветом, камни удаляются, и вам засчитывается очко за каждый захваченный камень.

Фанаты описывают ее как «величайшую настольную игру всех времен» и «более трудную для освоения, чем шахматы». Если вы не знакомы с игрой, просто поищите в Интернете «Правила игры в Го» или «Учебник по игре в Го».

Доступны три размера доски: 9x9, 13x13 и официальный 19x19.

Реализован режим отладки, который имеет функции, полезные для отработки навыков:

  • Несколько камней определенного цвета могут быть помещены за один «ход».
  • Каждый камень отображает группу или блок, к которому он принадлежит (блоки представляют собой связанные группы камней одного цвета).
  • Уже размещенные камни можно удалить, щелкнув правой кнопкой мыши.

Для оценки я просто засчитываю берущему захваченные камни. Насколько я понимаю, один игрок может заполнить мертвые зоны, но для другого это будет самоубийственно (а значит, запрещено). Я думаю, что «мертвые» места засчитываются для игрока, который мог бы там играть, но я не уверен в этом, и стоит ли их классифицировать.

Заметки по исходнику

Идентифицировать группы камней и определить, когда группа окружена камнями противоположного цвета, было сложнее закодировать, чем ожидалось. Игра заключается в размещении камней на пересечении линий сетки. Группа - это набор из одного или нескольких камней одного цвета, соединенных горизонтальными и вертикальными линиями сетки. Группу захватывают, окружая ее камнями противоположного цвета. «Окружение» означает, что каждая горизонтальная и вертикальная линия сетки, идущая от краев группы, заполнена камнем противоположного цвета.

После нескольких неудачных запусков моим решением было реализовать процедуры, которые очищают все блоки и идентифицируют их с нуля после установки каждого камня. Findblocks инициирует процесс, а функция FindBlocksFrom рекурсивно завершает поиск каждого блока. Функция BlockCount вызывается для подсчета блоков в каждой группе, а также возвращает количество открытых ребер. Все можно было бы сделать более эффективно, но всего несколько сотен камней и всего несколько сотен ходов, поэтому время для начала с нуля для каждого сыгранного камня не имеет значения.

В программе реализованы тесты, чтобы предотвратить некоторые запрещенные размещения камней, например, «самоубийственные» ходы, которые завершают окружение группы цвета игрока.

Просмотры: 1 233
Дата: 12.07.2021, Автор: Gary Darby
Скачивания: 10
Написать сообщение:

 

Скачать (8 Кб)     Регистрация >>


 

Похожие исходники


Игра в Шашки

Игра Paazu

Игра Pente (крестики-нолики)

Игра в точки

 

Игра Quod

Игра Dodge

Mine Clone (игра Сапер)

Snake (игра Змейка)

 

Игра Червы

 

© 2004-2024 "DS"

Соглашение пользователя / Реклама / Карта сайта             Created by BrokenByte Software