Я попытался извлечь только часть проблемы, в которой у меня возникают проблемы, это часть более крупного проекта, который я делаю (а не домашнее задание). Я думаю, что это проще всего описать как игру (так как мне нужно, чтобы закончить игру, над которой я работаю). Это однопользовательская игра, как я ее описываю.
СТАРТ. Вы начинаете с одной из двух позиций:
- вес
(2,0,-1)
и одинred
play - вес
(3,1,-1)
и дваred
играют
END Игра заканчивается, когда у вас больше нет пьес. Цель состоит в том, чтобы закончить игру весом (0,0,0)
.
Существует два типа воспроизведения red
и blue
. Учитывая игру, вы выбираете одну из четырех частей: A,B,C,D
, которая дает вам дополнительный вес и, возможно, дополнительные пьесы. Вот правила:
-
В режиме
red
:- Добавляет вес
(0,-2,-1)
- B добавляет вес
(1,-1,-1)
и добавляет одинred
play - C добавляет вес
(2,0,-1)
и дваred
воспроизводят - D добавляет вес
(0,2,1)
и дваblue
играет
- Добавляет вес
Правила для игр blue
аналогичны, но первые два столбца для весов меняются местами, а последний столбец обратный, а типы воспроизведения меняются на противоположные, поэтому вы получаете это вместо:
-
В режиме
blue
:- Добавляет вес
(-2,0,1)
- B добавляет вес
(-1,1,1)
и добавляет одинblue
play - C добавляет вес
(0,2,1)
и дваblue
воспроизводят - D добавляет вес
(2,0,-1)
и дваred
играет
- Добавляет вес
ВОПРОС Можно выиграть эту игру?
Я пытаюсь написать программу, которая выигрывает игру, выбирая пьесы, чтобы окончательный баланс (0,0,0)
, когда у вас больше нет пьес. Только я не могу это сделать. Так что теперь я думаю, что, возможно, нет алгоритма, чтобы выиграть игру. Мне бы очень хотелось узнать, почему это так. Если у кого-нибудь есть идеи, как я могу это доказать, тогда, пожалуйста, дайте мне знать! Или, если вы попробуете его и найдете способ выиграть, то, пожалуйста, скажите мне это тоже. Спасибо!!