创建场难题的最简单算法(第1部分)

嗨,哈布罗夫西 在本文中,我想与您分享一些我的经验,并向您展示我创建Filward的简单算法。


Filward,我的意思是这个熟悉的游戏。



游戏有一个通常大小为NxN的字段,其中填充了单词。我们的目标是找到所有的单词。
在我们的版本中,该字段中将不存在不属于任何单词的字母,并且会击倒玩家,并且不会一次包含多个单词的字母。通常的经典文件字。这样就完成了任务。需要决定。


首先,我总是将任务分解为子任务。为了解决这个问题,我将需要:


  1. DB用词。
  2. 一种将单词插入字段的算法。
  3. 一种算法,用于检查用户选择的单词的正确性。例如,我们在字段中输入“ programming”(编程)一词,然后用户看到“ world”(世界)并选择该词。用户是对的-有这样一个词,但我们没有猜到。我们需要一种算法来检查用户的猜测并告诉他他是否正确。

, . .


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- . - .


所以。我们已完成的部分的1/3。我们有一个数据库和一个算法,用于形成单词数组,以此填充我们的领域,并且第一部分到此结束。下一个 我们将在字段中推送这些单词,以便它们都适合。

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


All Articles