Я створюю гру, схожу на Tetris, з двома основними відмінностями: екран вже починається наповненим плитками (як у Puzzle Quest для Nintendo DS та PC), і кожна окрема плитка містить літеру. Завдання гравця - усунути плитки, утворюючи з ними дійсні слова. Слова утворюються, розміщуючи літери поруч, у будь-якому напрямку, крім діагоналі.
Гравець може перемістити цілий ряд плиток ліворуч або праворуч або цілий стовпчик плиток вгору або вниз на стільки пробілів, скільки він бажає (якщо рух рядка / стовпця перевищує межі дошки, лист, що перетинає межу, буде "циклічним", з'являючись в іншому кінці рядка / стовпця). Після дії гравця гра повинна перевірити всю дошку на пошук дійсних слів і видалити літери, що утворюють ці слова з дошки. Букви вище тих, що були вилучені, падатимуть на спад тих листів, які були вилучені, і нові літери опускатимуться вгорі екрану, поки дошка знову не заповниться.
Я вже написав лінійний алгоритм, який, задавши послідовність символів, визначає, чи це дійсне англійське слово. Проблема, яка у мене виникає, полягає в тому, як я можу перевірити правильність слів на дошці? Чи є груба сила єдиним способом? Тестування всіх можливих комбінацій з дошки, щоб побачити, чи дійсні вони, дуже повільно, навіть для невеликої (5x5) дошки. Будь-яка допомога буде дуже вдячна, дякую!