Псевдокод этого алгоритма - PullRequest
0 голосов
/ 06 августа 2009

Я делаю игру, в которой используется сетка 4 * 4. Пользователь вводит буквы, и игра должна выделить буквы, и они должны быть рядом друг с другом.

У меня есть подпункт, который проверяет, находится ли текущая буква рядом с (или соседней) последней буквой. В основном, что должно произойти, это:

за каждую букву: итерируйте по сетке и попробуйте каждую возможность, если она находится рядом с предыдущей буквой, а текущая буква соответствует целевой букве

затем он пробует каждую возможность для каждого письма, поэтому ему нужно повторить 16 ^ (количество букв)

если кто-то может привести меня в правильном направлении или дать мне лучший алгоритм, я действительно ценю это.

Я использую vb .net, но псевдокод тоже работает.

Спасибо

1 Ответ

1 голос
/ 06 августа 2009

Если я правильно понял, сетка может выглядеть так:

A B C D

B A D C

C C A B

D B C A

Тогда пользователь должен набрать A B C D B A и так далее, чтобы выиграть?

Следует учитывать, что если вы помните все позиции, где совпало первое нажатие клавиши, скажем, пользователь нажал A, то индекс 0,5,10,15 будет отмечен.

Следующее нажатие клавиши действительно только в том случае, если предыдущее нажатие клавиши было рядом с текущим, поэтому для проверки каждого элемента в сетке необходимо проверить 0 + 1, 5 + 1, 10 + 1 и 15 + 1 для нажатия клавиши.

Так что, если пользователь нажимает D, то вы увидите, что индекс 1 - это не D, индекс 6 - это действительно D, поэтому давайте отметим его и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...