Гибкая библиотека или сервер для настольных игр (шахматы или другие)? - PullRequest
0 голосов
/ 31 октября 2009

Я ищу программу или библиотеку, которую можно было бы использовать для экспериментов с настольными играми (в основном, в шахматах, но не обязательно, с другими подобными сложными настольными играми). тоже ок) Я опробую разные игровые алгоритмы.

Это то, что мне нужно:

  • Я хотел бы, если возможно, заставить мою программу играть против игроки, как гнус и лукавый, но и против себя и против человека-игрока;

  • Ничего страшного, если моя программа-плеер может связываться с «сервер» через TCP, но было бы еще лучше, если бы интерфейс C (не C ++, потому что тогда я должен был бы написать обертка);

  • Я могу изменить правила игры (начальная позиция штук, количество штук и даже правила движения);

  • Гибкий (все в порядке, если библиотека / сервер проверяет шахматные ходы, например, но я бы хотел, чтобы такая особенность была необязательно, потому что я хочу выключить его для некоторых эксперименты);

  • Бесплатно (я могу захотеть получить в исходный код и, возможно, изменить несколько бит).

Буду благодарен, если кто-нибудь сможет указать мне на такую ​​библиотеку / сервер ...

Большое спасибо!

P.S .: Я хотел добавить тег "настольные игры", но мне кажется, что мне нужно больше репутации для этого ...

P.S. 2: я хотел бы принять два ответа (они дополняют друг друга). Жаль, что StackOverflow не позволяет этого.

Ответы [ 3 ]

2 голосов
/ 31 октября 2009

VASSAL - это кроссплатформенный движок для игры в настольные и карточные игры через Интернет. Он предназначен для того, чтобы люди могли играть друг с другом, но он достаточно расширяемый, чтобы добавить AI-игрока.

Он с открытым исходным кодом и чрезвычайно настраиваемый, люди создали оригинальные игры, используя его.

1 голос
/ 01 ноября 2009

Протокол XBoard является стандартом, используемым между движками шахмат и графическим интерфейсом. Это простой текст: насколько я могу судить, библиотеки нет.

Хотя это кажется сложным, реализация довольно проста: действительно небольшое подмножество необходимо для разработки пригодного к использованию приложения. Документ обычно относится к шахматному движку, но то же самое относится и к стороне клиента (обратная сторона).

Гипотетически у вас может быть то же подключение XBoard / Winboard, в зависимости от того, сколько протокола было реализовано. Если вам нужен какой-то код для проверки, кроме классических Eboard и Xboard, в Интернете есть множество примеров, и я имею в виду действительно много (это список шахматных движков, но кто-то из них, например, babychess, также является интерфейсом GUI).

0 голосов
/ 31 октября 2009

Я не уверен, что что-то подобное еще существует ... кстати, большинство этих тем довольно легко разработать самостоятельно:

  • против игрока: просто внедрите imput (вы можете использовать что-то простое, например, ncurses)
  • против процессора: эти игры называются совершенными информационными играми , и вы можете легко структурировать ИИ с помощью простых алгоритмов, таких как деревья minmax или negmax
  • чтобы разрешить изменение правил, их проще кодировать жестко (поскольку каждая игра может иметь свои действительно разные правила
  • для поддержки TCP вам необходимо кодифицировать ходы и отделить часть графического интерфейса от серверной части

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

На самом деле некоторые части не обязательно должны быть общими: спланируйте хороший протокол игры, а затем просто позаботьтесь о событиях, таких как недопустимый ход и тому подобное.

...