Курсовая 10-го класса: игра «Жизнь»
После того, как я
впервые услышал об автоморфных
числах, мне захотелось узнать о них побольше. Когда мы в школе
проходили Паскаль, я написал небольшую программу, которая находила эти
числа. Но она использовала тип LongInt (4 байта), и работала
только с девятизначными цифрами. Найти такие числа можно и на
калькуляторе. В девятом классе я вернулся к проблеме автоморфных чисел и нашел
несколько интересных свойств. Например, сумма двух автоморфных чисел с данным количеством цифр равна числу 1000…001, таких чисел всего два и заканчиваются они одно на 5, а другое на 6. Еще я вывел правило, по которому зная одно автоморфное число, можно
было найти число с количеством цифр, на единицу большим. И мне
захотелось, используя это правило, посчитать большие автоморфные
числа. Ведь цифры в них могли чередоваться по
К тому времени я уже достаточно знал Паскаль. В программе основная часть — это процедура перемножения двух чисел, представленных в массивах. Ее пришлось писать, следуя обычному правилу перемножения чисел в столбик. Алексей Васильевич Бардук, который вел у нас информатику, согласился, чтобы после уроков мы приходили и работали на компьютерах (тогда у меня еще не было компьютера). Программа заработала, но никакой зависимости в появлении цифр мне обнаружить не удалось.
Со мной оставались Денис
Пономарёв и Андрей Калин. Мы практиковались в программировании. Вскоре я
вспомнил еще одну интересную вещь — игру «Жизнь». О ней я
узнал классе в седьмом, и меня это очень заинтересовало. Но я всё проделывал
вручную и проверил поведение только небольших конфигураций. А теперь у меня появилась реальная возможность запрограммировать «Жизнь» и провести
более серьезные исследования. Я ее упускать не стал. Самый первый
вариант программы выводил на поле размером 10*10 клеток эволюцию
простейшей конфигурации — мигалки. Андрей тоже написал свой вариант.
Но у него
Программу писали на Паскале, а у него скудные средства для разработки интерфейса, поэтому многое приходилось писать вручную. Через некоторое время Андрей перестал ее дорабатывать. Такие возможности, как поддержка мыши, копирование и вставка, вывод списка файлов и папок при открытии файла реализовал я. Когда мне приходила идея, я ее воплощал в жизнь, и, таким образом, разработка программы велась с достаточно большими перерывами.
К середине 10 класса я так и не нашел тему для курсовой. Татьяна Ивановна Антоненко предлагала работу по фотоэффекту. Мне она казалась слишком простой по сравнению со «световым давлением». И я решил выполнить работу по информатике по игре «Жизнь». Работа состояла из двух смысловых частей: в одной я излагал известные сведения об игре «Жизнь» и о клеточных автоматах, а в другой — конфигурации, найденные мною и полученные выводы.
Андрей написал тогда редактор логических
схем. Сначала это была программа на Паскале. Потом он ее переписал
на C++ Builder с использованием
Я нашел в интернете замечательную программу
Mirek's Cellebration.
Мой вариант не мог идти ни в какое сравнение с ней ни по
быстродействию, ни по функциональности. Так как она разрабатывалась для
На конференции работа заняла только третье место. Возможно, ее не оценили до конца. И я полностью для себя не решил, на что следовало обратить внимание при защите: на клеточные автоматы и возможности их применения, или на особенности реализации программы.
После конференции я продолжал практиковаться в программировании, дорабатывая программу. Весь основной цикл расчетов я переписал на ассемблере с использованием прямого доступа в видеопамять для вывода графики, это значительно увеличило быстродействие. Потом я придумал совершенно другой алгоритм, отладил его, а потом написал на ассемблере. Он лег в основу The Game Of Life 3, написанной на Delphi с нуля.
В последней курсовой работе я тоже создавал программу. Но об этом — в следующем рассказе.
Комментарии
1й из первых версий!заранее благодарна
2. Он писал не игру «Жизнь», а редактор логических схем.
Ища поддержки, я отыскал ваш сайт с прекрасной реализацией «жизни» Конвея.
Дело в том, что я давно вынашиваю идею,
Буду рад любому ответу, главное — не получить игнор
Оставьте свой комментарий