Оглавление:
- Шаг 1: базовая настройка
- Шаг 2: Установка кода для восприимчивой популяции
- Шаг 3. Настройка кода для зараженного и удаленного спрайта
- Шаг 4: Заполнение кода восприимчивого населения
- Шаг 5: Завершение зараженного / удаленного кода
Видео: (Очень просто) Моделирование болезни (с помощью Scratch): 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Сегодня мы будем моделировать вспышку заболевания, причем это будет любая болезнь, не обязательно COVID-19. Эта симуляция была вдохновлена видео от 3blue1brown, на которое я сделаю ссылку. Поскольку это перетаскивание, мы не можем сделать столько, сколько можем, с JS или Python, но есть и преимущества использования царапин, поэтому, если вы хотите увидеть, как смоделировать эпидемию с помощью JS, вы можете просмотреть мои статья о моделировании вспышек заболеваний, которую я написал здесь. А теперь приступим!
Примечание. Изображение выше получено в результате моделирования Quantum9innovation (не пользователем Instructables), которое вы можете просмотреть здесь.
Запасы:
Вам понадобиться:
- Скретч-аккаунт (вы можете зарегистрироваться здесь
- Базовые знания перетаскивания (но я все равно пройдусь по коду)
- Компьютер или устройство, на котором вы можете программировать (которое, вероятно, у вас есть, раз уж вы это читаете)
- Необязательно - посмотрите видео 3b1b, оно даст вам некоторое представление о том, что мы программируем.
Шаг 1: базовая настройка
Сначала давайте создадим проект, назовем его как хотите, а затем удалим существующий спрайт на холсте. Вы можете сделать это, нажав кнопку корзины на спрайте. Теперь у нас есть пустой холст, и вы можете изменить цвет фона на любой, какой захотите.
Затем создайте новый спрайт и вместо того, чтобы использовать существующий спрайт, нарисуйте свой собственный. Сделайте это синей точкой. Этот спрайт представляет восприимчивую популяцию сообщества, и у нас также будет восстановленная / удаленная и инфицированная популяция, откуда и происходит название модели, SIR (восприимчивый, инфицированный, восстановленный / удаленный). Обязательно назовите спрайт «незараженный».
Теперь создайте новый спрайт (снова) и назовите его sprite1, который мы также раскрасим сами. Назовите его «Sprite1» и создайте 2 костюма, один должен быть красной точкой, а другой серой точкой. Сделайте им костюм1 и костюм2 соответственно. Эти два представляют инфицированные (красная точка) и вылеченные / удаленные (серая точка) популяции.
Шаг 2: Установка кода для восприимчивой популяции
Теперь мы настраиваем код восприимчивого населения. Сначала мы создаем две переменные: люди и инфицированные. Переменная «Люди» представляет популяцию и может быть изменена в зависимости от того, сколько людей мы хотим в нашей симуляции, и симуляция изменится соответствующим образом. Мы также создаем инфицированную переменную, которая представляет популяцию, которая болела / болела. Обе эти переменные должны быть глобальными переменными, то есть их можно использовать во всех спрайтах.
Затем скопируйте приведенный выше код в незараженный спрайт. Давайте разберемся, что он делает. Когда программа запускается, спрайт скрывается, поэтому нам не нужно помещать один и тот же код для клонов в сам спрайт, что помогает. Затем мы устанавливаем для двух переменных (инфицированных и людей) то, что мы хотим, чтобы они были, в данном случае мы устанавливаем для инфицированных 1, а людей - 100. Это означает, что мы начинаем с одного инфицированного человека и всего 100 человек, не считая инфицированного человека. Затем мы запускаем цикл, в котором выполняется значение переменной people, в данном случае 100. Мы переходим в случайную позицию и затем создаем клон спрайта. Мы переходим в случайную позицию, потому что таким образом у нас не будет линии точек, движущихся в одном направлении, а вместо этого мы будем появляться в случайных позициях.
Шаг 3. Настройка кода для зараженного и удаленного спрайта
Теперь переключитесь на спрайт «Sprite1» и скопируйте приведенный выше код. Пройдем через это. При запуске программы спрайт скрывается, а затем запускается цикл для установленного количества зараженных. Он переходит в случайную позицию и создает свой клон.
Шаг 4: Заполнение кода восприимчивого населения
Давайте рассмотрим то, что нам нужно сделать:
- Заразить
- Двигаться
Переключитесь на незараженный спрайт, скопируйте приведенный выше код и давайте рассмотрим, как он завершает заражение и перемещение. Во-первых, он идет к костюму, и в этом нет необходимости, но он у нас есть, поэтому, если мы решим добавить еще, нам не нужно беспокоиться об этом, заменив костюмы на новые, которые мы добавили. Далее он показывает себя. Если вы помните, мы скрыли исходный спрайт, поэтому клоны также будут скрыты, что нам не нужно. Затем мы запускаем бесконечный цикл, который будет запускать всю программу, пока кто-нибудь не щелкнет знак остановки на пустом месте. Мы скользим в случайное положение в течение 1 секунды, а затем проверяем, находимся ли мы на краю, и в этом случае мы отскакиваем от него. Затем, если мы касаемся красного цвета, мы клонируем Sprite1 (зараженная / удаленная популяция) и увеличиваем зараженную переменную на 1, а затем удаляем наш спрайт.
Шаг 5: Завершение зараженного / удаленного кода
Перейдя на Sprite1, мы создаем новый список, таймер. В этом списке будет отслеживаться, как долго точка заражена, и по прошествии определенного времени она либо умирает, либо восстанавливается, становится частью удаленной / восстановленной популяции и отображается серой точкой, которая не может быть повторно инфицирована.
Скопируйте приведенный выше код и давайте рассмотрим его. Когда мы начинаем как клон, мы вставляем общее количество секунд, в течение которых программа работала, в список таймеров, и мы проверим это, чтобы увидеть, как долго она была заражена, и соответствующим образом изменим ее для восстановления. Мы скрываем список таймеров, а затем на всякий случай меняем костюм клона на зараженный, а затем показываем наш спрайт. Теперь мы запускаем бесконечный цикл, в котором происходит несколько вещей: мы говорим клону скользить в случайное положение каждую секунду, проверяем, больше ли зараженная переменная, чем сама популяция, и в этом случае мы устанавливаем ее на популяцию, и наконец, мы идем и проверяем первый элемент списка таймера, чтобы увидеть, не прошло ли больше 5 секунд, и если это правда, мы переключаем костюм на восстановленный костюм, чтобы мы не могли заразить, а затем удаляем элемент из таймера.
Рекомендуемые:
Как обнаружить болезни растений с помощью машинного обучения: 6 шагов
Как обнаруживать болезни растений с помощью машинного обучения: процесс обнаружения и распознавания больных растений всегда был ручным и утомительным процессом, требующим от людей визуального осмотра тела растения, что часто может приводить к неправильному диагнозу. Также было предсказано, что глобальный w
Не очень умное, но очень полезное, но немного жуткое зеркало: 5 шагов (с изображениями)
Не такое уж умное, но очень полезное, но слегка жуткое зеркало: Вам нужно зеркало, но вы не хотите добавить еще один умный объект в свой дом? Тогда это не очень умное, но очень полезное, но немного жуткое зеркало как раз для вас
Как сделать мини-динамик - очень просто: 4 шага (с изображениями)
Как сделать мини-динамик - очень просто: Привет, ребята, сегодня мы построим " Сделайте мини-динамик ''. Этот динамик очень миниатюрный, но качество звука и громкость довольно высоки. Этот динамик может стать простой заменой динамику для ноутбука или мобильного телефона
Восстановить удаленные файлы, очень просто и удобно: 7 шагов
Отменить удаление удаленных файлов, очень просто и удобно: Вы когда-нибудь удаляли файл со своего запасного жесткого диска, камеры, mp3 или даже очищали мусорную корзину, а затем понимали, что вам все еще нужен этот файл? Это простой способ восстановить эти файлы. Добавлен этот инструктивный материал, потому что я удалил все эпизоды семейной жизни
Очень простой но очень эффективный розыгрыш (компьютерный розыгрыш): 3 шага
Очень простой … но очень эффективный розыгрыш (компьютерный розыгрыш): это руководство ОЧЕНЬ простое, но ОЧЕНЬ эффективное! Что произойдет: вы скроете все значки на рабочем столе жертвы. Жертва будет волноваться, когда увидит компьютер после того, как вы разыграете. Это никак не может навредить компьютеру