Оглавление:

(Очень просто) Моделирование болезни (с помощью Scratch): 5 шагов
(Очень просто) Моделирование болезни (с помощью Scratch): 5 шагов

Видео: (Очень просто) Моделирование болезни (с помощью Scratch): 5 шагов

Видео: (Очень просто) Моделирование болезни (с помощью Scratch): 5 шагов
Видео: Урок по Scratch - распространение эпидемии 2024, Июнь
Anonim
(Очень просто) Моделирование болезни (с помощью Scratch)
(Очень просто) Моделирование болезни (с помощью Scratch)

Сегодня мы будем моделировать вспышку заболевания, причем это будет любая болезнь, не обязательно 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 секунд, и если это правда, мы переключаем костюм на восстановленный костюм, чтобы мы не могли заразить, а затем удаляем элемент из таймера.

Рекомендуемые: