Answer the question
In order to leave comments, you need to log in
How to establish decision points in a board game?
Hobby project, board game, written in Java. While I use naked AWT, with the expectation of transferring to Android. I will write using the example of preference, although I took the game more complicated and there are about thirty decision points there. The abbreviation "TPR" denotes the decision point.
пока пуля не закрыта
раздать карты
пока все не спасовали
найди следующего игрока
ТПР: заказ в торговле?
определи выигравшего торговлю
если такового нет
[распасовку опущу]
иначе // игра на взятки или мизер
вытяни прикуп
ТПР: заказ и снос?
если игра вистуется
для остальных
ТПР: пас/вист?
если возможны полвиста
ТПР: полвиста?
пока у игроков остались карты
определить, кто первым ходит
в порядке хода
ТПР: чем ходить?
определить, чья взятка
подсчитать очки
// Точка принятия решения (callback)
если (принимает решение ИИ)
прокрутить ИИ
вызвать сцену, которая демонстрирует, как ИИ поступил
вызвать дополнительный цикл обработки сообщений
преобразовать результат работы ИИ в аргументы callback’а
иначе
вызвать нужную сцену
вызвать дополнительный цикл обработки сообщений
преобразовать результат работы сцены в аргументы callback’а
алг прокрутитьИгру
автомат.пуск
если принимает решение ИИ
прокрутить ИИ (большой веер callback’ов в зависимости от того, в какой ТПР остановились)
записать его решение в автомат
сменить сцену на демонстрирующую решение автомата
иначе
сменить сцену на принятие решения человеком
// Точка принятия решения (callback)
если (принимает решение ИИ)
прокрутить ИИ
вызвать сцену, которая демонстрирует, как ИИ поступил
уступить
преобразовать результат работы ИИ в аргументы callback’а
иначе
вызвать нужную сцену
уступить
преобразовать результат работы сцены в аргументы callback’а
Answer the question
In order to leave comments, you need to log in
It is necessary to look towards OOP, instead of procedures if you use Java.
Every solution should use object
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question