Perverse Hangman - игра, похожая на обычного Hangman, с одним важным отличием: выигрышное слово определяется домом в зависимости от того, какие буквы были угаданы.
Например, скажем, у вас есть доска _ A I L и 12 оставшихся догадок. Поскольку есть 13 различных слов, оканчивающихся на AIL (залог, провал, град, тюрьма, кейл, почта, гвоздь, ведро, рельс, парус, хвост, склеп, вопль), дом гарантированно выиграет, потому что независимо от того, какие 12 букв вы угадаете , дом будет утверждать, что выбранное слово было тем, о котором вы не догадывались. Однако, если доска была _ I L M , вы загнали дом в угол, так как FILM - единственное слово, оканчивающееся на ILM.
Задача заключается в следующем: учитывая словарь, длину слова и количество разрешенных догадок, придумайте алгоритм, который либо:
а) доказывает, что игрок всегда побеждает, выводя дерево решений для игрока, который загоняет в угол дом, несмотря ни на что
б) доказывает, что дом всегда побеждает, выводя дерево решений для дома, которое позволяет дому убежать, несмотря ни на что.
В качестве примера игрушки рассмотрим словарь:
bat
bar
car
Если вам разрешено 3 неправильных предположения, игрок выигрывает со следующим деревом:
Guess B
NO -> Guess C, Guess A, Guess R, WIN
YES-> Guess T
NO -> Guess A, Guess R, WIN
YES-> Guess A, WIN