Рейтинг разработки: 4
PC Magazine/RE:
Что интересного в этой разработке?
Ее прикладной характер. Это – игровая программа, популярная игра-головоломка Lines, увлекательная и любимая игра еще со времен MS-DOS. Позволяет немного отдохнуть "интеллектуально".
Реализация. Программа реализована, по всей видимости, только средствами VBA, т.е. эта разработка является "родной" для Office. Ее можно установить на офисном ПК, не вызывая конфликтов с принятой системой безопасности. Это – "рабочий документ" Excel.
Алгоритм. Программа ведет себя достаточно "агрессивна" и не позволяет "легко обыграть ее". Единственный, на наш взгляд, недостаток – алгоритм выборки цвета для подставляемых на очередном ходу ячеек не обеспечивает полной случайности: возможны длительные "пропадания" какого-нибудь одного цвета.
Теперь несколько слов о практической реализации предлагаемой разработки (выводы делались косвенным путем, поскольку исходные тексты VBA-программы не доступны):
1) Хотелось бы обратить внимание на проработку интерфейса. Каждое изменение положения текущей ячейки, выделение одной ячейки или группы инициируют последующую обработку и восстановление "правильного" положения точки выбора. Достигается это, видимо, за счет обработки событий onClick, onEnter и пр. Добавьте еще использование background-текстуры для предотвращения доступа к ячейкам, не участвующих в игре, и применение объектов WordArt для назначения им команд глобального управления ходом игры.
2) Обратите внимание, что если после начала игровой партии закрыть файл, а затем заново открыть его, то обеспечивается возврат к прерванной позиции. Чтобы добиться такого результата, скорей всего делается следующее: все параметры о текущей раскладке постоянно сохраняются не в переменных самой программы, а в ячейках рабочей книги (используемых для игры или в "скрытом" месте рабочего листа).
Это – уникальная природа рабочих книг Excel. Их диапазон ячеек (Range) может играть роль "встроенных" массивов данных, используемых для обработки. Фактически это – множество мелких СУБД с собственным набором функций для обработки.
|