Они могут быть в одной строке (горизонтальной); то есть, y1 равно y2. Или они могут быть на одной диагонали, в этом случае абсолютное значение разницы x1 и x2 такое же, как абсолютное значение разности y1 и y2. Если никакое из этих условий не выполняется, то выбранные буквы не являются допустимым выбором. Если одно из этих условий выполняется, то пользователь сделал подходящий выбор, но нам по-прежнему нужно проверить, пересекаются ли буквы слова со словами из списка слов.
В каждом из трех вышеприведенных условий мы используем цикл for, двигаясь от начальной координаты к конечной координате, для создания выбранного слова из отдельных букв. Мы сохраняем это созданное слово как tempWord. В строке 35 мы проверяем, имеет ли tempWord строчное значение. Если нет, функция завершается и для пользователя ничего не происходит (за исключением того, что окружность, которую он или она пытались нарисовать, исчезает). Если tempWord имеет значение, то мы проверяем ее снова, сравнивая со списком слов с использованием функции checkList(). Эта функция просто проходит по циклу доступные слова и проверяет их как в прямом, так и в обратном направлениях. Если слова совпадают, возвращается результат true; иначе возвращается false. Если true, выполняются строки 37-58. Они добавляют экземпляр клипа окружности и рисуют окружность вокруг выбранного текста, применяя графический интерфейс рисования API Flash. На доске остается постоянная окружность, чтобы показать, что пользователь уже нашел это слово. В строке 58 вызывается функция displayList(). Она перестраивает список в левой части экрана таким образом, что он показывает вновь найденные слова перечеркнутыми.
Вы видели основную часть того, что выполняет работу в этой игре. Есть несколько маленьких функций, которые используются для обработки таких событий, как мышь-вниз или мышь-вверх. Мы не обсуждали их в этой главе, но они должны быть просты для понимания.
Подведение итогов
Игры со словами одни из наиболее популярных видов игр в Интернет