| 
На главнуюПрограммы
 Статические |
Полезные
       Динамические программыИгра Жизнь   Эту игру придумал математик ДЖ. Конуэй. Все происходит на бесконечном клетчатом поле. В
каждой клетке может находится организм. Развитие
поколения происходит дискретно под действием определенных
"генетических законов". Конуэй тщательно подбирал свои
правила "на практике", добиваясь, чтобы они по
возможности удовлетворяли трем условиям: 
Не должно быть ни одной исходной конфигурации, для
   которой существовало бы простое доказательство возможности
   неограниченного роста популяции.В то же время должны существовать такие начальные
   конфигурации, которые заведомо обладают способностью
   беспредельно развиваться.Должны существовать простые начальные конфигурации,
   которые в течение значительного промежутка времени
   растут, претерпевают разнообразные изменения и
   заканчивают свою эволюцию одним из следующий трех способов:
   полностью исчезают (либо из-за перенаселенности, то
   есть слишком большой плотности фишек, либо наоборот,
   из-за разреженности фишек, образующих конфигурацию);
   переходят в устойчивую конфигурацию и перестают
   изменяться вообще или же, наконец, выходят на
   колебательный режим, то есть бесконечный цикл
   превращений с определенным периодом.   Короче говоря, правила должны быть такими, чтобы
поведение популяции было непредсказуемым. Каждая клетка имеет 8 соседей. Правила игры сводятся к следующему: 
ВЫЖИВАНИЕ. Каждая живая клетка, имеющая две или три
   соседние живые клетки, выживает и переходит в следующее
   поколение.ГИБЕЛЬ. Каждая живая клетка, у которой больше трех
   соседей, погибает, из-за перенаселенности. Каждая живая
   клетка, вокруг которой свободны все соседние клетки
   или же занята всего одна клетка, погибает от
   одиночества.РОЖДЕНИЕ. Если число живых клеток, с которыми
   граничит какая-нибудь пустая клетка, в точности равно
   трем (не больше и не меньше), то на этой клетке
   происходит рождение нового "организма".   Гибель и рождение всех "организмов" происходит
одно временно. Вместе взятые, они образуют одно поколение
или, как можно выразится, один "ход" в эволюции начальной
конфигурации. Популяция непрестанно претерпевает необычные, нередко
очень красивые и всегда неожиданные изменения. Программа позволяет играть на поле 200*200.
Можно выбирать интересные готовые конфигурации
и изменять правила. На последнем снимке изображено,
во что превращается слово "ЖИЗНЬ" в 196 поколении.  Скачать (67 Кб)
 Молекула метана  Со второго семестра нас стали считать уже взрослыми и
задания мы стали выбирать уже сами. Я написал модель молекулы
метана. Молекулу можно вращать, изменять размеры атомов и
расстояние между ними. Также можно вращать источник света и
изменять интенсивность освещения.
  Скачать (29 Кб)
 
 Многогранники В одно время с молекулой метана была написана и эта программа.
Нужно было изобразить пересечение многогранника плоскостью.
К сожалению, исходный код я случайно удалил и не смог доработать
программу – удалить невидимые ребра. 
       Скачать (70 Кб)
 Редактор значков  Летом 2002 года я написал свою первую серьезную программу. Она
занимала около 2000 строчек. Для меня это тогда было очень много!
К тому же, ничего про формат ICO-файлов я не знал и экспериментально
разбирался в их устройстве.
 Это было после 10 класса, и тогда Сергей Залманович еще не научил
меня хорошему стилю оформления программ (потому что я еще не успел
поучиться в университете). Я сейчас даже представить не могу, как
можно было так писать: после запятых никогда не было пробелов, и
не объявлялись никакие константы. Правда, отступы тогда я уже делал,
иначе просто не смог бы такую программу написать. До сих пор
помню, как мучился с кнопками и всем остальным. Ведь каждая
координата каждой кнопки упоминается в программе не один раз.
Для того, чтобы подобрать хорошее положение кнопки нужно было
изменять числа во всех этих местах! С гораздо меньшими
трудностями я писал игру Жизнь на втором курсе.  Например, с помощью этой программы я нарисовал такой значок для Turbo Pascal.
 К сожалению, исходник когда-то потерялся. Я даже не понимаю, как
сохранилась сама программа. Ей можно пользоваться с помощью
клавиатуры, совершенно обходясь без мыши. В программе даже есть
несколько секретов. Один действует, если одновременно нажать
Ctrl+Alt+Shift и обе кнопки мыши. Было еще что-то, но я уже не помню.  Скачать (28 Кб)
 Доска Гальтона  На первом курсе у меня было задание изобразить доску Гальтона
с движущимися по ней (одновременно несколькими) шариками. При
встрече препятствия шарик с равной вероятностью продолжает
путь направо или налево. Распределение шариков по ячейкам
должно подчиняться определенному закону.
 
  Скачать (40 Кб)
 
 Поверхности  На лекциях по программированию на первом курсе в качестве примера
использования графики в Turbo Pascal мы писали (в тетрадях) программу,
которая строит поверхности для функции двух переменных.  На одной лекции мы вывели все формулы, но программу написать
не успели. Дома я попробовал написать ее самостоятельно. Было
очень интересно потом сравнивать, что некоторые вещи я написал
точно так же, как Сергей Залманович, и подмечать то, что он
реализовал лучше.
 В функции я добавил параметр (время), и получилась динамическая
поверхность. Очень интересно смотреть, как она вся колышется и
изгибается.  Скачать (60 Кб)
 Шарики По экрану летают шарики и сталкиваются друг с другом.
Получается Броуновское движение. Можно задать один большой
шарик и много маленьких и смотреть, как все вокруг суетсятся,
а большой шарик перемещается спокойно и неспешно. 
     Скачать (46 Кб)
 
 © Ярослав Музыкантов muzykantov@mail.ru      
 |