Далее, мы проходим в цикле каждую букву в tempWord (временноеСлово) и сравниваем букву с тем пространством в сетке, где эта буква может быть размещена. Если это пространство ничего не содержит или если оно уже содержит такую же букву, то мы продолжаем и проверяем следующую букву. Однако, если мы нашли в этом месте сетки букву, которая отличается от той, что мы проверяем в данный момент, то мы прекращаем этот цикл и начинаем с новых случайных начальных координат. Скрипт выполняет этот цикл до тех пор, пока не найдет приемлемую позицию в сетке. Если цикл продолжается слишком долго (как рассматривалось ранее), то прерывается вся функция и вызывается функция restart().
Ветви условия, которые обрабатывают вертикальные и горизонтальные размещения, очень похожи. Вертикальное размещение случайно выбирает колонку и затем случайно выбирает начальную координату y на основе размера сетки и длины tempWord. Цикл while выполняется так же, как для горизонтального размещения. Для диагональной ветви выражения условия отличие состоит только в выборе начальной позиции; как начальная координата x, так и начальная координата y выбираются из случайных чисел, на основе размера сетки и длины слова.
Функция scrambleWords() хорошо прокомментирована во всем коде ActionScript, так что не беспокойтесь о вашей способности вникнуть в ее смысл.
createBoard()
Функция createBoard() принимает случайно расставленные слова из функции scrambleWords() и размещает клипы на экране для их визуального представления. Затем, если пространство сетки пусто (как в большинстве случаев), createBoard() расставляет в этих позициях случайные буквы.
1 function createBoard(){
2 path =this.board;
3 path.depth =0;
4 path.circles =0;
5 gridSpacing =17;
6 for (var i =0;i<boardSize;++i){
7 for (var j =0;j<boardSize;++j){
8 var clipName ="letter"+i+"_"+j;
9 path.attachMovie("letter",clipName,
.++path.depth);
10 path [clipName ]