Мобильная версия
Полный спектр услуг по автоматизации управления на базе программных продуктов «1С»
+7(916) 414-17-32

Игра "Жизнь" в одном запросе

24.09.2011

Игра "Жизнь" в одном запросе

В статье приводится запрос, одного которого достаточно, чтобы реализовать всю механику игры "Жизнь" (http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) на бесконечном поле. Запрос основан на технике искусственных таблиц, применяемой также в примерах из http://infostart.ru/public/90367/. Приведен отчет-игра "Эволюция", реализующий игровой процесс на основе рассматриваемого запроса. Отчет не привязан к метаданным и должен работать в любой конфигурации.

В отличие от известных реализаций "Эволюции" на 1С, здесь считается, что поле игры не ограничено. Живые клетки представлены записями в таблице "Популяция", хранящими их координаты - целые числа. Используется искусственная таблица "Дельта", содержащая три числа: -1, 0 и 1 как шаги по вертикали или горизонтали. Выборкой из трех независимых таблиц: двух таблиц "Дельта" и таблицы "Популяция" получаем для каждой живой клетки девять записей. Восемь из них являются координатами соседних клеток и берутся с весом 1, а девятая - самой живой клеткой, которая берется с весом 9. После группировки по координатам отбираются только клетки, суммарный вес которых равен 3, 11 или 12. Используется правило игры: клетка образуется на пустом месте, если у нее три соседа (0 + 3), либо остается на своем месте, если у нее два (9 + 2) или три соседа(9 + 3).

Весь запрос умещается на восьми строчках:

Запрос

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

Для вывода поля игры используется окно, размеры и сдвиг которого настраиваются. В этом окне состояние клетки можно менять двойным кликом мышки. При этом клетка, выходящая за пределы активного окна, переходит как бы в другой слой этого же окна, двигается в нем, но отображается узором. Доступны кнопки сохранения и восстановления "популяции", очистки "популяции". Для эволюции есть режим ручного шага, автоматического шага с интервалом 1 сек, максимальный режим с прорисовкой промежуточных состояний и без. Выход из максимального режима - только через Ctrl+Break.

Эксперименты показали, что расчет динамики даже довольно больших популяций не вызывает существенного "торможения". Скорость "игры" больше ограничивается не запросом, а временем перерисовки табличного поля. Несмотря на то, что отчет "Эволюция" по сути - "безделушка", он весьма поучителен. Выводы заключаются в том, что:

1) искусственные таблицы упрощают решение задач на языке запросов, расширяют его возможности;

2) упаковывая сложные действия в один запрос, можно повысить скорость вычислений за счет того, что в 1С быстрее делается то, что описывается одной инструкцией;

3) гибкость языка запросов достаточно высока, что позволяет решать на нем задачи, далеко выходящие за привычные рамки.


Текст публикации

Все Новости



ИНТЕХ

купить, программ, 1С, 1, С, в, Егорьевске, Московской, бухгалтерия, предприятие, продукт, 2, 3, 8, 7, 10, 11, 5, 0, торговля, склад, зарплата, кадры, управление, персонал, настроить, обучение, на, курсы, компьютерный, центр, ООО, ИНТЕХ, учет, производство, ERP, УПП, УТ, ЗУП, упрощенка,  документооборот, розница, небольшая, фирма, деньги, скачать, сопровождение, внедрить, обновить, обучить, франчайзи, организация, поддержка, сертифицированный, аттестованный, компьютер, Егорьевск, Москва, область, Воскресенск, Шатура, Ликино, Коломна, Рошаль, Бронницы, Шувое, Куровское, Луховицы, ЭЦП, отчетность, ИТС, электронный, архив, автоматизация, оперативный, техподдержка, телефон, Интернет, аренда, автосервис, магазин, бухфон, горячая, линия, битрикс, версия, лицензия, линк, релиз, сайт, фреш, ЦСО, ЭДО, яндекс, карта. купить, программ, 1С, 1, С, в, Егорьевске, Московской, бухгалтерия, предприятие, продукт, 2, 3, 8, 7, 10, 11, 5, 0, торговля, склад, зарплата, кадры, управление, персонал, настроить, обучение, на, курсы, компьютерный, центр, ООО, ИНТЕХ, учет, производство, ERP, УПП, УТ, ЗУП, упрощенка,  документооборот, розница, небольшая, фирма, деньги, скачать, сопровождение, внедрить, обновить, обучить, франчайзи, организация, поддержка, сертифицированный, аттестованный, компьютер, Егорьевск, Москва, область, Воскресенск, Шатура, Ликино, Коломна, Рошаль, Бронницы, Шувое, Куровское, Луховицы, ЭЦП, отчетность, ИТС, электронный, архив, автоматизация, оперативный, техподдержка, телефон, Интернет, аренда, автосервис, магазин, бухфон, горячая, линия, битрикс, версия, лицензия, линк, релиз, сайт, фреш, ЦСО, ЭДО, яндекс, карта,

Обновление 1С, управленческий учет, бухгалтерский учет

Наша компания также занимается разработкой собственных программных продуктов на платформе «1С:Предприятие 8». 

В нашей компании работают сертифицированные фирмой «1С» специалисты, которые постоянно совершенствуют свои знания и навыки. Они помогут качественно и оперативно решить задачи по автоматизации управления и учета на вашем предприятии.
Наша компания опирается в своей работе на знание и повседневное применение стандартов качества, проектных методов в управлении, процессного подхода в организации нашей деятельности.
Компания хорошо организована, в ней четко распределены обязанности, процедуры, соблюдается технология работы, имеются оперативные инструкции, документированные и известные всему персоналу, существуют отработанные процедуры контроля выполняемых работ и, конечно, профессиональный и хорошо обученный персонал, способный качественно выполнять свою работу.