Здравствуйте! Делаю игру про спички, где игрок должен менять спички на столе, чтобы математическое выражение оказалось верным.
Возник вопрос как сделать систему БЕЗ switch case, где есть 3 режима игры:
- Добавление: игрок может только добавлять спички
- Уменьшение: игрок может только забирать спички со стола
- Перемещение: игрок может и забрать спичку, и переставить её в другое место
У каждого места под спичку есть 4 состояния:
- Это спичка, оригинал (показывается как спичка)
- Это спичка, не оригинал (показывается светлее, чем обыкновенная
- Это пустое место, оригинал (показывается темнее, чем обыкновенная)
-Это пустое место, не оригинал (показывается серая(прозрачная) спичка)
Под "Оригиналом" я имею ввиду место, которое было спичкой в начале уровня
Логику игры я уже сделал со switch case, просто возник вопрос, можно ли как-нибудь с помощь паттернов Состояние или Машина состояний и наследования справиться с задачей БЕЗ switch case. И нужно ли вообще в таком простом проекте, где вряд ли добавятся режимы игры и состояния мест заморачиваться с архитектурой?
Игра выглядит примерно так (картинка из интернета)
P. s. Получается, что при нажатии на место для спички нужно учитывать сразу 2 состояния с разных источников, то есть и режим игры и состояние спички.
Например, если режим игры "Добавление" и игрок нажал на:
- Спичку оригинал: ничего не произойдëт
- Спичку, не оригинал: спичка вернëтся в пул спичек для добавления, а место поменяет состояние на "Пусто, не оригинал"
- Пустое место, оригинал: ничего не произойдëт (такого состояния вообще не может быть, так как игрок не забирает спички в этом режиме)
- Пустое место, не оригинал (место поменяет состояние на "Спичка, не оригинал", 1 спичка уберëтся из пула)
Заранее спасибо!