Задать вопрос
@DANGEROUSOYS

Как правильно выстроить архитектуру игры-головоломки про спички?

Здравствуйте! Делаю игру про спички, где игрок должен менять спички на столе, чтобы математическое выражение оказалось верным.
Возник вопрос как сделать систему БЕЗ switch case, где есть 3 режима игры:
- Добавление: игрок может только добавлять спички
- Уменьшение: игрок может только забирать спички со стола
- Перемещение: игрок может и забрать спичку, и переставить её в другое место

У каждого места под спичку есть 4 состояния:
- Это спичка, оригинал (показывается как спичка)
- Это спичка, не оригинал (показывается светлее, чем обыкновенная
- Это пустое место, оригинал (показывается темнее, чем обыкновенная)
-Это пустое место, не оригинал (показывается серая(прозрачная) спичка)
Под "Оригиналом" я имею ввиду место, которое было спичкой в начале уровня

Логику игры я уже сделал со switch case, просто возник вопрос, можно ли как-нибудь с помощь паттернов Состояние или Машина состояний и наследования справиться с задачей БЕЗ switch case. И нужно ли вообще в таком простом проекте, где вряд ли добавятся режимы игры и состояния мест заморачиваться с архитектурой?
Игра выглядит примерно так (картинка из интернета)
6699792392aeb575325300.jpeg

P. s. Получается, что при нажатии на место для спички нужно учитывать сразу 2 состояния с разных источников, то есть и режим игры и состояние спички.
Например, если режим игры "Добавление" и игрок нажал на:
- Спичку оригинал: ничего не произойдëт
- Спичку, не оригинал: спичка вернëтся в пул спичек для добавления, а место поменяет состояние на "Пусто, не оригинал"
- Пустое место, оригинал: ничего не произойдëт (такого состояния вообще не может быть, так как игрок не забирает спички в этом режиме)
- Пустое место, не оригинал (место поменяет состояние на "Спичка, не оригинал", 1 спичка уберëтся из пула)

Заранее спасибо!
  • Вопрос задан
  • 109 просмотров
Подписаться Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Плохо что ты не занимался радиотехникой. Цифры на экране - очень похожи на классический
7-сегментный индикатор. И его состояние может быть представлено 7 битами.
Например цифра 8 - горят все элементы можно представить как
1111111
Цифра 1 - горят соотвественно 2 и другие пять равны нулю. Отображение придумай сам.

Итого у тебя будет матрица 7 х 5 бит. Эта матрица и будет состоянием игры.

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

Что еще. В твоей игре будут запрещенные комбинации цифр которые надо отдельно проверить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы