green_fr (green_fr) wrote,
green_fr
green_fr

Categories:

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

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

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

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

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

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

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

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

  • 2020 год дома

    Вторая часть фотографий 2020 года: что было у нас дома. Купили игрушку на Новый год, Turing Tumble — интересный концепт, когда ты строишь очень…

  • Музеи 2019—2020

    Очень не хватает музеев, во Франции они до сих пор всё ещё закрыты. В какой-то момент задумался: насколько объективно снижение количества моих…

  • «Дом на краю света», «Шахматная новелла»

    По очередному «Книжному базару» прочитал «Дом на краю света» Каннингема. В передаче рассказывали о переосмыслении понятия «семьи», и по описанию всё…

  • 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

  • 2020 год дома

    Вторая часть фотографий 2020 года: что было у нас дома. Купили игрушку на Новый год, Turing Tumble — интересный концепт, когда ты строишь очень…

  • Музеи 2019—2020

    Очень не хватает музеев, во Франции они до сих пор всё ещё закрыты. В какой-то момент задумался: насколько объективно снижение количества моих…

  • «Дом на краю света», «Шахматная новелла»

    По очередному «Книжному базару» прочитал «Дом на краю света» Каннингема. В передаче рассказывали о переосмыслении понятия «семьи», и по описанию всё…