Редактирование: CelAut v3
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | [[ | + | [[ТМ|Кафедра ТМ]] > [[Программирование]] > [[Программирование и моделирование в Интернет|Интернет]] > [[JavaScript-программирование|JavaScript]] > [[JavaScript - Клеточный автомат|Клеточный автомат]] > '''CelAut v3''' <HR> |
Справа вы видите легенду геномов, а также можете выбрать, какие клетки вы хотите "рисовать" мышкой. | Справа вы видите легенду геномов, а также можете выбрать, какие клетки вы хотите "рисовать" мышкой. | ||
− | + | <addscript src=CelAut_v3_release/> | |
+ | <htmlet nocache="yes">CelAut_v3_TM</htmlet> | ||
+ | |||
Скачать программу: [[Медиа:CelAut_v3_release.zip|CelAut_v3_release.zip]] | Скачать программу: [[Медиа:CelAut_v3_release.zip|CelAut_v3_release.zip]] | ||
− | + | Текст программы на языке JavaScript (разработчик [[Цветков Денис]]): <toggledisplay status=hide showtext="Показать↓" hidetext="Скрыть↑" linkstyle="font-size:default"> | |
− | |||
Файл '''"CelAut_v3_release.js"''' | Файл '''"CelAut_v3_release.js"''' | ||
− | < | + | <source lang="javascript" first-line="1"> |
function Main_CelAut(canvas) { | function Main_CelAut(canvas) { | ||
Строка 23: | Строка 24: | ||
// *** Задание вычислительных параметров *** | // *** Задание вычислительных параметров *** | ||
− | + | const fps = 5; // frames per second - число кадров в секунду | |
// Выполнение программы | // Выполнение программы | ||
− | + | const w = canvas.width; // ширина окна | |
− | + | const h = canvas.height; // высота окна | |
− | + | const N = 50; // количество клеток по горизонтали (желательно, делитель ширины окна) | |
− | + | const M = 50; // количество клеток по горизонтали (желательно, делитель высоты окна) | |
− | + | const cell_w = w / N; // ширина клетки | |
− | + | const cell_h = h / M; // высота клетки | |
var pause = true; // остановлен ли клеточный автомат | var pause = true; // остановлен ли клеточный автомат | ||
Строка 38: | Строка 39: | ||
// "Жизнь" Конвея: [B = 000100000, L = 001100000] | // "Жизнь" Конвея: [B = 000100000, L = 001100000] | ||
− | + | const B = "001000000"; // геном рождения | |
var L = "000001100"; // геном выживания | var L = "000001100"; // геном выживания | ||
Строка 84: | Строка 85: | ||
// Работа с массивом | // Работа с массивом | ||
− | var cells; | + | var cells; // массив клеток |
− | var cells_buf = []; | + | var cells_buf = []; // буфер для расчета следующего шага |
for (var i1 = 0; i1 < N + 2; i1++) { | for (var i1 = 0; i1 < N + 2; i1++) { | ||
cells_buf[i1] = []; | cells_buf[i1] = []; | ||
Строка 92: | Строка 93: | ||
} | } | ||
} | } | ||
− | function generate_random_field() { | + | function generate_random_field() { // каждая клетка жива с вероятностью 50% |
cells = []; | cells = []; | ||
var i, j; | var i, j; | ||
Строка 283: | Строка 284: | ||
this.set_L(0); // после запуска системы, т.к. изменяет переменную L | this.set_L(0); // после запуска системы, т.к. изменяет переменную L | ||
} | } | ||
− | </ | + | </source> |
Файл '''"CelAut_v3_release.html"''' | Файл '''"CelAut_v3_release.html"''' | ||
− | < | + | <source lang="html" first-line="1"> |
<!DOCTYPE html> | <!DOCTYPE html> | ||
<html> | <html> | ||
Строка 307: | Строка 308: | ||
</body> | </body> | ||
</html> | </html> | ||
− | </ | + | </source> |
− | </ | + | </toggledisplay> |
− | |||
− | |||
[[Category: Программирование]] | [[Category: Программирование]] | ||
+ | [[Category: JavaScript]] |