Algoritma Sederhana untuk Membuat Puzzle Lapangan (Bagian 1)

Hai, Khabrovtsy. Pada artikel ini, saya ingin membagikan sedikit pengalaman saya dan menunjukkan algoritma sederhana yang saya buat untuk membuat Filward.


Menurut Filward, maksudku game yang familier ini.



Gim ini memiliki bidang berukuran NxN biasanya diisi dengan kata-kata. Tujuan kami adalah menemukan semua kata.
Dalam versi kami tidak akan ada huruf di lapangan yang bukan milik kata apa pun dan melayani untuk menjatuhkan pemain, dan tidak akan ada huruf yang milik beberapa kata sekaligus. Kata klasik biasa. Jadi, tugas sudah diatur. Perlu memutuskan.


Hal pertama yang saya selalu membagi tugas menjadi subtugas. Untuk mengatasi masalah ini saya perlu:


  1. DB dengan kata-kata.
  2. Algoritma yang memasukkan kata ke dalam bidang.
  3. Algoritma yang memeriksa kata yang dipilih pengguna untuk kebenaran. Misalnya, kami meletakkan kata "pemrograman" di bidang, dan pengguna melihat "dunia" di sana dan memilih kata ini. Pengguna benar - ada kata seperti itu, tetapi kami tidak menebaknya. Kami membutuhkan algoritme yang akan memeriksa tebakan pengguna dan memberi tahu dia apakah ia benar atau tidak.

, . .


1) .


, . words_2 . words_3 . :



words_2
-
-
-
-
words_3
-
-
-
-
words_4
-
-
words_5
-
-


.. ( , ).


5x5.


. 5x5, , = 25. 2 :


  1. - N- - , = 25.
  2. - , = 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- . - .


Begitu. 1/3 bagian yang telah kami selesaikan. Kami memiliki database dan algoritme untuk membentuk array kata-kata yang dengannya kami akan mengisi bidang kami dan bagian pertama berakhir di sini. Lanjut bagian kita akan mendorong kata-kata ini di lapangan sehingga semuanya cocok.

Source: https://habr.com/ru/post/undefined/


All Articles