Дедукция
Игрок может щелкнуть по любому пустому месту, чтобы изменить его цвет. Цвет изменяется в соответствии с шестью вариантами: пятью различными цветами и пустым местом.
После того как игрок указал цвета для пяти мест, он может щелкнуть по кнопке Done, чтобы получить результат. Появление белого камешка свидетельствует о правильно расположенном цвете, черного – о правильном цвете, помешенном не на свое место.
Затем под имеющимся рядом отображаются следующие пять свободных мест вместе с кнопкой Done. На рис. 14.5 показано, как выглядит игра после нескольких шагов.

Рис. 14.5. Так выглядит игровое поде после нескольких попыток пользователя
Подготовка ролика
В клипе "rock" содержится восемь кадров, первый из которых показывает пустое место. Кадры со второго по шестой отображают пять цветов, из которых должен выбрать пользователь. Седьмой и восьмой кадры отображают белые и черные камешки, имеющие метки "white" и "black" соответственно, чтобы код мог обращаться к ним.
Теперь осталось поместить на рабочее поле фон и указания. Камешки и кнопка Done создаются кодом. Для клипа "rock" установите имя ("rock") в панели Linkage Properties. Я также создал небольшую кнопку, чтобы можно было перейти внутрь клипа камешка. Кнопку " Done"создать очень просто, но так как нам нужно управлять ее положением, мы должны поместить ее внутри клипа и указать для него свойство "linkage".
Создание кода
Код игры целиком расположен в первом кадре основной временной шкалы, начинается он с установки целого набора переменных. Эти числа определяют положение различных элементов на рабочем поле при их создании. Вместо того чтобы распределять эти переменные по всему коду, я собрал их в начале программы – так их будет проще найти и изменить.
Последовательность решения задается с помощью пяти случайных чисел и хранится в массиве solution. В переменной row хранится номер попытки. Для начала игры вызывается функция createRow.
initGame(); stop(); function initGame() { // Определяется расположение и расстояние между элементами. topRowLoc = 60; leftColLoc = 280; roghtColLoc = 390; horizSpace = 21; vertSpace = 23; solutionx = 336; solutiony = 320; // Создается произвольная последовательность решения solution = new Array(); for (i = 0; i < 5; i++) { solution.push(int(Math.Random() * 5)); } // Инициализируются переменные. rows = new Array(); row = 0; // Устанавливается первый ряд. createRow(); }