![]() |
Дайте идею
Вот пишу игру балда поле 5 на 5 ..надо состовлять слова добавляя одну букву..
как осуществить ход компа?=( |
DENoszone,
Цитата:
Код:
| | | | | | |
да ...
словарь есть... загнал его в масив.. сделал ход... человек с человеком уже можно играть . а вот с компом...трудная задача=( не могу придумать алгоритм поиска слова |
DENoszone, Тогда нужно создать массив алфавита, и при ходе компьютера, перебирать по одной букве из массива алфавита подставляя букву из алфавитного массива к слову в массиве или сверять на предмет полученного слова со словарём. Ёлки, пока писал подумал, что слова могут идти и наоборот и ломанно... Запутался, честно говоря, не знаю. Но наверняка нужен ещё алфавитным массив. Мы ведь когда играем в эту игру, мысленно подставляем буквы и потом "видим" полученное слово. И ещё точно скажу, поскольку шаг проверяемого слова равен 1 (еденице) или одной букве, то нужно сделать таблицу шагов.
Код:
const int row = 5; |
вот такие идеи приходят...
но это не дело.. была идея...выписать все слова возможнные и проверить.. но тоже не то... а про подстановку букв...это убьет все... 3к способов только в начале=) |
Ну по сути от любой буквы есть всего 3 продолжения, что уже достаточно неплохо ограничивает кол-во вариантов перебора.
... Пока писал придумал другой, как мне показалось более удачный алгоритм. Каждое слово массива разбиваем на составляющие. Пример разбития слова "Слово": сл сло слов 1. Все эти частички запоминаем в новый массив. 2. И при переборе сверяем с нашим новым массивом. 3. Если ничего не найдено то берем другую букву, ____________если найдено - сверяем с основным массивом _________________________если найдено это и есть искомое слово, но продолжаем набирать буквы. _________________________если не найдено берем другую букву. Хоть это и подстановка букв, но имхо должно быстро работать, ведь неверные направления будут достаточно быстро отсекаться еще в начале ветвления. |
DENoszone,
Цитата:
|
вот это сейчас и буду пытатся делать.
|
Время: 09:45. |
Время: 09:45.
© OSzone.net 2001-