Динамические эффекты

Предварительная подготовка

Эффекты форматирования

Графические объекты

Движение объектов

Ожившие графики

Другие варианты

Вентильные схемы

Автоматизация тестирования

Автоматизация оценки

Проект "Машина времени"

Игра "Жизнь"

Заполнение аттестатов

На главную

 

Загрузить файл
к статье
(24 Кб)

Опубликовано в методической газете для учителей "Информатика" 16, 2009 г.

  Версия для печати (130 Кб)

Игра «Жизнь»

Что наша жизнь? Игра!

М.И.Чайковский,

либретто оперы «Пиковая дама»

Первое приближение

Второе приближение

Третье приближение

 

Арена жизниПравила выживания

 

Реализация клеточного автомата, придуманного английским математиком Джоном Конвеем и известного как игра «Жизнь», в электронных таблицах, имеющих мощный потенциал математического моделирования, вероятно, проще, чем это позволяют другие приложения или инструментальные средства, при этом возможны различные варианты, как представления самих поколений, так и организации их смены.

Прежде всего, нам почти не придется организовывать среду обитания, так как клеток на рабочем листе электронных таблиц изобилие. Правда, сама игра обычно предполагает безграничность пространства исполнения, и ее мы несколько позже организуем, а пока будем довольствоваться диапазоном, например, 40 х 40 ячеек (размеры в данном случае существенной роли не играют, а форма может быть и прямоугольной).

Рис. 1. Реализация игры «Жизнь» в MS Excel 2003

Далее рассматривается технология создания игры в среде Microsoft Office Excel 2003, однако готовый проект работает как в более ранних версиях, так и в более поздней. Для осуществления проекта в Excel 2007 следует, обратившись по адресу: Кнопка Office – Параметры Excel – Настройка – Выбрать команды из… – Команды не на ленте, затем добавить: «Кнопка (элемент управления)» и «Счетчик (элемент управления)», а также сделать поправку на изменение интерфейса в плане размещения на ленте условного форматирования на вкладке «Главная» и работы с макросами на вкладке «Вид».

Более того, используя описанную технологию, можно выполнить предлагаемый проект даже в OpenOffice.org Calc, правда, текст макросов там может несколько отличаться от приведенных.

Первое приближение

Арена жизни

Чтобы обеспечить обозримость развития будущих «цивилизаций» модифицируем клеточное пространство рабочего листа, приведя его к виду, близкому к разлиновке листа школьной тетради в клетку. Для этого выделим весь рабочий лист и, кликнув правой кнопкой мыши на заголовках столбцов, установим их ширину равной 1 символу. Проделав ту же операцию на заголовках строк, зададим высоту в 8,5 пунктов. Желательно сразу же, не снимая выделения, решить вопрос и с размером шрифта, определив его равным 8 пунктам.

Основные события у нас будут разворачиваться на квадратной «арене» в диапазоне C5:AP44, поэтому выделим его и установим внутренние и внешние границы. Сразу же, не снимая выделения, скопируем полученную заготовку и, отступив вправо (можно и вниз), вставим содержимое буфера обмена напротив оригинала, допустим, в диапазон AU5:CH44. Этому полю мы отведем роль «родильного отделения», в котором будет появляться новое поколение клеточной «жизни».

Для начала все клетки основного поля заполним нулями, означающими, что «жизнь» в них отсутствует. Временно, пока мы не решили вопрос с безграничностью, клетки внешнего периметра «арены» также заполним нулями, тем более, что «жизни» там нет и пока не предвидится.

Думаю, вы уже догадались, что олицетворять жизнь в клетках будут единицы. А для заселения нашей, пока еще не обитаемой, «планеты» придется эти единички «сеять» с помощью клавиатуры и мышки. Позже эту заботу мы постараемся облегчить, а пока не будем опережать события.

Правила выживания

Настало время заняться правилами игры. Их суть Дж. Конвей сформулировал следующим образом:

1. Правило выживания. Каждая клетка, у которой имеются две или три «живых» соседних, выживает и переходит в следующее поколение.

2. Правило рождения. Если число «живых» клеток, с которыми граничит какая-либо пустая клетка, равно трем, то на ней происходит рождение нового организма.

3. Правило гибели. Каждая клетка, у которой оказывается более трех «живых» соседних, погибает от перенаселения. Каждая клетка, вокруг которой свободны все клетки или «жива» только одна, погибает от одиночества.

Попробуем сформулировать их на алгоритмическом языке. Сначала нам надо определиться, «живой» или «мертвой» является та или иная клетка. Далее решаем вопрос: жить ли ей далее или отойти в мир иной. Считаем сумму единиц всех клеток диапазона, размером 3 х 3, в котором данная клетка является центральной и, с учетом того, что в первом случае в ней стоит «1», налагаем на сумму условие быть больше двух, но меньше пяти, а во втором – проверяем равенство трем.

если клетка живая

  то

    если сумма > 2 и сумма < 5

      то жить

      иначе погибнуть

    кв

  иначе

    если сумма = 3

      то жить

      иначе погибнуть

    кв

кв

Разобравшись в структуре приведенной части алгоритма, несложно переложить ее на язык формул электронных таблиц.

Переместимся в верхнюю левую ячейку ранее созданного поля «роддома» и введем в нее формулу, реализующую правила игры:

=ЕСЛИ(C5=1;ЕСЛИ(И(СУММ(B4:D6)>2;СУММ(B4:D6)<5);1;0);ЕСЛИ(СУММ(B4:D6)=3;1;0))

Скопируем ее и, выделив весь диапазон поля для формирования «поколения Next», вставим.

Задачу в общих чертах можно считать решенной. Теперь расставив единички на основном поле и «заселив» тем самым «жизнь» можно сразу же на дополнительном поле видеть новое поколение. Чтобы вывести его на «арену», поступим следующим образом: выделим и скопируем все ячейки поля с «молодняком» и, переместившись в верхнюю левую клетку основного поля, выполним в главном меню: Правка – Специальная вставка… – и в диалоговом окне выберем переключателем «значения». Круг замкнулся. Теперь «арена» занята вторым поколением, а в «родильном отделении» ждет своей очереди следующее.

Продолжение

На верх

 

Динамические эффекты Предварительная подготовка Эффекты форматирования Графические объекты
&Движение объектов Ожившие графики Другие варианты Вентильные схемы Автоматизация тестирования
Автоматизация оценки Проект "Машина времени" Игра "Жизнь" Заполнение аттестатов

© 2009 Государственное областное образовательное учреждение

"Россошанская школа-интернат для детей-сирот и детей, оставшихся без попечения родителей"