Я создаю игру, похожую на Tetris, с двумя основными отличиями: экран уже начинает заполняться плитками (как в Puzzle Quest для Nintendo DS и ПК), и в каждой отдельной плитке есть буква. Цель игрока состоит в том, чтобы устранить плитки, формируя из них правильные слова. Слова формируются путем размещения букв рядом друг с другом, в любом направлении, кроме по диагонали.
Игрок может переместить целый ряд плиток влево или вправо или целый столбец плиток вверх или вниз на столько промежутков, сколько он пожелает (если движение ряда / столбца превышает пределы поля, буква, которая пересекает предел, будет «зацикливаться», появляясь на другом конце строки / столбца). После действий игрока игра должна проверить всю доску, чтобы найти правильные слова и удалить буквы, которые образуют эти слова с доски. Буквы над теми, которые были удалены, будут падать вместо тех букв, которые были удалены, и новые буквы будут падать с верхней части экрана, пока доска не заполнится снова.
Я уже написал линейный алгоритм, который, учитывая последовательность символов, определяет, является ли оно правильным английским словом. У меня проблема в следующем: как я могу проверить правильность слов на доске? Является ли грубая сила единственным способом? Тестирование всех возможных комбинаций на доске, чтобы увидеть, являются ли они действительными, очень медленное, даже для маленькой (5x5) доски. Любая помощь будет очень признательна, спасибо!