Hola Khabrovtsy En este artículo, quiero compartir con ustedes un poco de mi experiencia y mostrarles mi algoritmo simple que se me ocurrió para crear Filward.
Por Filward, me referiré a este juego familiar.
![](https://habrastorage.org/webt/h9/mc/it/h9mcit-8ajzyqlq3wzbt_-nz_se.png)
El juego tiene un campo generalmente de tamaño NxN lleno de palabras. Nuestro objetivo es encontrar todas las palabras.
En nuestra versión no habrá letras en el campo que no pertenezcan a ninguna palabra y sirvan para derribar al jugador, y no habrá letras que pertenezcan a varias palabras a la vez. La palabra de archivo clásica habitual. Y así, la tarea está establecida. Necesito decidir.
Lo primero que siempre divido la tarea en subtareas. Para resolver este problema necesitaré:
- DB con palabras.
- Un algoritmo que inserta palabras en un campo.
- Un algoritmo que verifica la corrección de una palabra seleccionada por el usuario. Por ejemplo, colocamos la palabra "programación" en el campo, y el usuario vio "mundo" allí y selecciona esta palabra. El usuario tiene razón: existe esa palabra, pero no la adivinamos. Necesitamos un algoritmo que verifique las conjeturas del usuario y le diga si tiene razón o no.
, . .
1) .
, . words_2 . words_3 . :
words_2
-
-
-
-
words_3
-
-
-
-
words_4
-
-
words_5
-
-
.. ( , ).
5x5.
. 5x5, , = 25. 2 :
- - N- - , = 25.
- - , = 25.
1
- N, . N = 6. - .
25/6 = 4. words_4 .
N 1, .
25 – 4 = 21
6-1 = 5;
N!=1;
++giveWord() – , , .
wordsArray.Push() – , .
N=6;
freePlace =25;
While(N!=1)
{
wordsArray.Push( giveWord( freePlace/N ) );
freePlace-= freePlace/N;
N--;
}
wordsArray, 5 (4,4,4,4,4).
, = freePlace.
wordsArray.Push( giveWord( freePlace ) );
(4,4,4,4,4,5). =25. .
, . .
.
0 1 ( 0 1) 0 1 freePlace / N. .
2
- , . – 25. , . - - . - , , - . , 25 , 2 , 12 13 . . 25 – 5x5, 9 – 3x3, ? , - 1- . - .
Entonces. 1/3 de la parte que hemos completado. Tenemos una base de datos y un algoritmo para formar una serie de palabras con las que llenaremos nuestro campo y la primera parte termina aquí. próximo partes empujaremos estas palabras en el campo para que encajen todas.