green_fr (green_fr) wrote,
green_fr
green_fr

Categories:

Framework для настольных игрушек

Думаю, как дальше развивать занятия программированием с Натанкиным. И вдруг понял, что идеальная задача — это делать то, что и так тебе нравится. В нашем случае — настольные игры. Покемоны, шахматы, колонисты, паровозики.

Сначала можно написать логику игрушки:
* какие предметы есть в игре?
* как они раздаются игрокам?
* из чего состоит игровое поле?
* как описывается положение в игре?
* как делается ход? сколько у него фаз? какие ходы разрешены, какие — нет?
* как разрешаются разные ситуации в игре — кто кого убил, кто взял карточку, к кому перешло поле?

Описали — можно уже поиграть самому с собой, или с соперником за тем же компом. А то и по сети, если есть секрет (прячешь свои карты). И в процессе написания наглядно увидеть, насколько важно точно определять правила.

Но самое интересное — можно писать ботов. Создавать разные версии стратегий / алгоритмов. Стравливать их друг с другом на ночь, и смотреть потом, какая стратегия побеждает чаще. Смотреть автоматически сыгранные партии и совершенствовать алгоритмы. На этом вообще много чего учишь. И то, что бывают оптимальные стратегии, которые не дают гарантированного выигрыша (то есть, есть объективно лучшие и худшие ходы). И то, что бывают кольца алгоритмов, когда каждый выигрывает у предыдущего (то есть, нет одного объективно лучшего алгоритма). Можно писать алгоритмы, следящие только за своей игрой, а можно следить за тем, что пытается сделать противник. Ну и так далее.

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

Вторая проблема — для написания даже чего-то простого (крестики-нолики) нужно написать кучу «ненужного» кода: класс «игрок», класс «поле», класс «игра», метод «не выиграл ли кто» и т.п. Но и эта часть тоже ведь относительно стандартная, по крайней мере для перечисленных игр.

Как следствие, вопрос: никто не слышал о готовом уже framework’е, облегчающем написание игрушек? Как scratch, только с уже сделанными классами и интерфейсами? Или хотя бы для карточных игр (от дурака до Uno).
Tags: board games, программирование
Subscribe

  • Журнал про научные эксперименты

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

  • Carto — египетские храмы

    В библиотеке обнаружил кучу интересных журналов, в том числе Carto — что-то среднее между Le Courrier International (информация со всего света)…

  • О лезвиях в метро

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

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments

  • Журнал про научные эксперименты

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

  • Carto — египетские храмы

    В библиотеке обнаружил кучу интересных журналов, в том числе Carto — что-то среднее между Le Courrier International (информация со всего света)…

  • О лезвиях в метро

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