green_fr: (Default)
[personal profile] green_fr
Думаю, как дальше развивать занятия программированием с Натанкиным. И вдруг понял, что идеальная задача — это делать то, что и так тебе нравится. В нашем случае — настольные игры. Покемоны, шахматы, колонисты, паровозики.

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

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

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

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

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

Как следствие, вопрос: никто не слышал о готовом уже framework’е, облегчающем написание игрушек? Как scratch, только с уже сделанными классами и интерфейсами? Или хотя бы для карточных игр (от дурака до Uno).
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

green_fr: (Default)
green_fr

July 2025

S M T W T F S
   1 2345
6789101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 2nd, 2025 11:51 pm
Powered by Dreamwidth Studios