JavaScript Canvas 8. Игра "Жизнь"
HTML-код
- Опубликовано: 12 сен 2024
- ⏰ Курс JavaScript 2.0: itgid.info/cou...
🧠 Чат Telegram c мозголомками : t.me/itgid_info
👇 Разверни для полной информации
💎 Курс Функции в JavaScript: itgid.info/cou...
🧑🏻💻 Сайт: itgid.info
😋 Курс Методы массивов: itgid.info/cou...
Создаем основу для популярной игры "Жизнь" с помощью JavaScript и Canvas.
Скачать файлы урока: w3.org.ua/canva...
Мы на facebook: / w3.org.ua
Спасибо вам большое! Дай бог вам здоровья!!! Все очень доступно и понятно объясняете.
Спасибо.
Я:*смортю превью
Мой мозг:МЫ ПРСТО ИГРАЕМ В ЖИЗНЬ...
Всего пару коротких if надо было добавить, чтобы правила были такими, как Конвэй придумал. И еще кнопку Стоп прикрутить, чтобы таймер останавливать и прекращать это безобразие. И еще интересно, на каком размере поля современная техника начнет тормозить. У Конвэя было задумано бесконечное поле, а у вас - тороидальное получается.
Да, действительно тороидальное, при бесконечном края рисунка не смыкаются друг с другом и не влияют на форму рисунка. Думаю рисунки в 2 вариантах будут различаться.
вау - вот спасибо так спасибо - очень полезно - давно хотела сделать программку для отрисовки схемок плетения бисером, теперь знаю с чего начать - огроменное спасибо!
Мне очень помог момент с проверкой массива с выходом чисел за его диапазон, подобное условие было в одной задачке на олимпиаде по прогр. Создавалась матрица 10х10 заполненная нулями и единицами, и если три единицы в ряд "111", то считаем как знак минус, при том что ни слева, ни справа, ни сверху и снизу не будет других единиц, и так же со знаком плюс, три единицы по горизонтали и вертикали. Надо было всего подсчитать кол-во + и - в матрице.
спасибо большое за ваши уроки :)
Стараюсь. Пожалуйста.
Спасибо за уроки, обязательно посмотрю весь Ваш курс по канвасу...
Продолжайте дальше учить на Ванильном JS... Это круто!!!!
А для идей и предложений, можно сделать Trello аккаунт и в него запихивать все идеи по видео, а заинтересованный народ сам туда подтянется и будет подсказывать ;)
Это только предложение...
Еще раз благодарю за уроки!
Тоже идея. Спасибо!
дякую за пророблену роботу
Большое спасибо. Прекрасный урок.
Так воот как QR коды делаются)
шикарно!
зачетный урок
Если у Вас Chrome, то оставив в index.html размеры канваса 800 * 800 и изменив их в CSS на 300*300, будут проблемы с распознаванием координат мыши и будет непонятная хрень. Ставьте сразу правильные размеры в тэге canvas
урааа
строка 55 .ошибка .mas==0, наверно mas=0 присваиваем же
Посмотрю. Спасибо за исправления.
делал такое на канвасе, правда сама "жизнь" не очень интересна, но путём модификаций удалось получить красивый эффект тлеющей бумаги =). весьма красиво, только точки нужно делать 1 на 1 пиксель.
Круто. можно глянуть где-то.
@@itgid у меня там некий "модифицированный" механизм, сам уже его толком не понимаю (давно делал), но решил поиграть с параметрами, вот тоже забавное поведение получилось:
jsfiddle.net/yg17b3dk/8/
делаю пару линий и запускаю. вначале растут быстро черные пятна, потом когда они заполняют весь экран, то уже начинают расти белые пятна, в итоге чернота полностью пропадает =). тоже интересно, как бы две стадии процесса.
UPD:
еще интересны параметры, когда получаются вяло расползающиеся пятна, как будто какой-то кристал растёт - jsfiddle.net/yg17b3dk/11/#
тоже забавно =).
@@mrgoodpeople Классно! Нужно разбираться, но мне нравится. Завораживает. И кстати, раз написал ошибочно анимацию на кенвасе, понравилась. Попробовал повторить - не, не получается.
Запостил ваш код на канале!
@@itgid ок, спасибо! я не против =). да я сам уже забыл что там и как. думаю можно всякие интересные модификации напридумывать, чтобы это выглядело ещё более интересно. Помню лишь, что я использовал не просто состояния 0 или 1, а у меня было любое возможное число, чем оно больше - тем более тёмной рисуется точка. А дальше соседние клетки могут по разному реагировать на такие состояния. 0 - это полностью белая клетка, то есть аналог "пустоты" в классической игре.
А я не понимаю проверку. 16:46 Мы же получается бегаем по всему ряду, а должны бегать левый, средний и правый сосед. Или я как то не понимаю эту проверку? Буду рад ответу
все ваши уроки понимал налету но здесь я завис глухо, если бы мне дали такое тз то это был бы полный провал...
пишите - разберемся.
спасибо большое, пересмотрю ещё раз это видео чтобы на писать более менее внятные вопросы...
урок отличный
только мне, как новичку, логика с массивами тоже очень тяжело дается
вот сижу второй день разбираюсь...
@@romakushnir2820 надеюсь разобрался.
@@jinke5935 к счастью, да
Спасибо за Ваши уроки , А почему при повторных нажатиях на кнопку старт скорость циклов увеличивается?
А это особенность работы таймера - для ее устранения нужно отключать клик при работающем таймере.
Пж сделайте продолжение
блээээд , мозг начинает кипеть просто !!!
Да ладно. Может запутано, но еще не самое страшное!
да в принципе вы не видели мой вчерашний гомнокод чата на быструю руку написанный. Строк 500 ереси, стыдно если кто-то увидит.
Я так и не понимаю обязательно нужно ставить в массивах i и j ?
нет, это врожденная и вбитая привычка на уроках программирования в школе, когда учили Pascal и Basic.
ааа! сложна! ))
ну такое
Есть возможность проиграть, если нарисовать прямую посередине поля)
здесь нельзя выиграть или проиграть
что делать если ошибка var ctx = canvas.getContext('2d'); TypeError: Cannot read properties of null (reading 'getContext')
Значит не получен элемент канваса в строке выше. Либо неправильно прописан id, либо в html при подключении script добавить атрибут defer.
@@vixazomova5899 А можно просто весь код запихнуть в функцию. Например load.
function load(){
let canvas....
......
}
Потом в html написать в body onload="load();"
Очень интересный урок!
Можете обьяснить действия с mas[i]=[ ] и mas[i] [j] = 0 ?
Посмотрел ваше видео про шахматную доску ruclips.net/video/gdNgcJG8uvw/видео.html но там иные действия.
Честно говоря не помню что и как. Это скорее всего из-за того что в js изначально нет синтаксиса двумерных массивов, поэтому создаю обычный массив а в него запихиваю пустые массивы - эмулирую двумерность.
Вот что это за "итэ" и "джитэ" ? почему переменную "ай" называет "итэ" ?
увы мне, увы. Удалю канал, стыдно, назвал переменную не корректно.
JavaScript решает
я всего лишь спросил, что за приставка "тэ", почему так говорят? Почему "и-тэ" и "джи-тэ", когда имеют ввиду квадратные скобки? По поводу произношения - мне вообще плевать) меня во всём интернете бесит только ударение в слове "стрОка")
я шутил. Вроде говорю итое ( i-тое) ну так в школе приучили :(
JavaScript решает да я не только у вас это слышал, и мне интересно, почему так говорят?) это же должно иметь какую-то причину, что переменные в скобках называют с окончанием "тэ"
JavaScript решает вы написали, что вас в школе так научили. И вы из Украины, насколько я знаю. И у другого видео блогера я тоже слышал "итэ" и "джитэ", и он тоже из Украины. Это как-то связано?
Не очень приятно, когда человек кушает, причмокивает и говорит одновременно.
Это звуки клавиатуры.