Далее, мы устанавливаем видимость клипа generating в false, поскольку генерация завершена. Мы выполняем функцию displayList(), чтобы показать список слов слева, и затем вызываем функцию createBoard(), чтобы сделать сетку видимой на экране. Вы можете вспомнить, что до вызова функции createBoard() доска существует только в памяти.
То, что вы видели только что, представляет собой масштабную картину. Сначала мы пытаемся создать доску в памяти. Если мы не можем этого сделать, то мы делаем перезапуск и пытаемся снова. Если операция завершена удачно, то доска создается в сцене.
scrambleWords()
Давайте взглянем на функцию scrambleWords(). Здесь представлен псевдо-код, который представляет, что делает эта функция:
1 установить максимальноеВремя в 5000
2 установить перемешиваниеСделано в true
3 создать двухмерный массив букв
4 создать массив списков
5 установить сейчас в значение getTimer()
6 для каждого слова в слова.списокСлов
7 случайно выбрать размещение
8 случайно выбрать направление
9 установить временноеСлово в слово
10 становить длинаСлова в значение временноеСлово.Длина
11 добавить объект, который хранит временноеСлово, направление, и размещение
.в списки
12 если направление равно обратное
13 перевернуть временноеСлово
14 если размещение равно горизонтальное
15 установить неСделано в true
16 Пока неСделано
17 строка = случайна строка
18 startx = случайное(размердоски-длинаслова)
19 неСделано = false
20 для каждой буквы во временном слове
21 установить временнаяБуква в текущую букву
22 если пространство сетки что-то содержит и если это не временнаяБуква
23 неСделано=true
24 если неСделано равно false
25 сохранить буквы слова в массив букв
26 если getTimer() - сейчас > максимальноеВремя
27 установить перемешиваниеСделано в false
28 прервать
29 иначе если размещение равно вертикальное
30 установить неСделано в true
31 пока неСделано
32 колонка = случайная колонка
33 startY = случайная(размерДоски-длинаСлова)
34 неСделано = false
35 для каждой буквы во временноеСлово
36 установить временнаяБуква в текущую букву
37 если пространство сетки содержит что-то и это не временнаяБуква
38 неСделано=true
39 если неСделано равно false
40 сохранить буквы слова в массив букв
41 если getTimer() - сейчас > максимальноеВремя
42 установить перемешиваниеСделано в false
43 прервать
44 иначе если размещение равно по диагонали
45 установить неСделано в true
46 пока неСделано
47 startX = случайное(размерДоски-длинаслова)
48 startY = случайное(размерДоски-длинаслова)
49 неСделано = false
50 для каждой буквы во временноеСлово
51 установить временнаяБуква в текущую букву
52 если пространство сетки содержит что-то и это не временнаяБуква
53 неСделано=true
54 если неСделано равно false
55 сохранить буквы слова в массив букв
56 если getTimer() - сейчас > максимальноеВремя
57 установить перемешиваниеСделано в false
58 прервать
Эта функция изрядно прокомментирована в реальном коде ActionScript в исходном файле FLA