Innehållsförteckning:

(Mycket enkel) Sjukdomsmodellering (med Scratch): 5 steg
(Mycket enkel) Sjukdomsmodellering (med Scratch): 5 steg

Video: (Mycket enkel) Sjukdomsmodellering (med Scratch): 5 steg

Video: (Mycket enkel) Sjukdomsmodellering (med Scratch): 5 steg
Video: Mycket enkel och snabb dessert med ljuvlig chokladsmak!| Smarrig.tv 2024, Juli
Anonim
(Mycket enkel) Sjukdomsmodellering (med Scratch)
(Mycket enkel) Sjukdomsmodellering (med Scratch)

Idag simulerar vi ett sjukdomsutbrott, eftersom det är någon sjukdom, inte nödvändigtvis COVID-19. Denna simulering inspirerades av en video av 3blue1brown, som jag länkar till. Eftersom detta är dra och släpp kan vi inte göra så mycket vi kan med JS eller Python, men det finns fördelar med att använda scratch också, så om du vill se hur du modellerar ett utbrott med JS kan du se min artikel som jag skrev om modellering av sjukdomsutbrott här. Nu ska vi börja!

Obs! Bilden ovan är från en simulering genom quantum9innovation (inte en Instructables -användare) som du kan se här.

Tillbehör:

Du kommer att behöva:

  • Ett Scratch -konto (du kan registrera dig här
  • Grundläggande kunskap om dra och släpp (men jag går fortfarande igenom koden)
  • En dator eller enhet du kan programmera med (vilket du förmodligen har, eftersom du läser detta)
  • Valfritt - Titta på 3b1b -videon, det ger dig en uppfattning om vad vi programmerar.

Steg 1: Grundläggande installation

Grundläggande installation
Grundläggande installation

Låt oss först skapa ett projekt, namnge det vad du vill och sedan ta bort den befintliga spriten på duken. Du kan göra detta genom att klicka på papperskorgen på sprite. Nu har vi en tom duk, och du kan ändra bakgrundsfärgen till vad du vill.

Skapa sedan en ny sprite, och istället för att använda en befintlig sprite, måla din egen. Gör det till en blå prick. Denna sprite representerar den mottagliga befolkningen i samhället, och vi kommer också att ha en återhämtad/borttagen och infekterad befolkning, det är här namnet på modellen, SIR (mottagligt, infekterat, återhämtat/borttaget), kommer ifrån. Se till att namnge spriten "oinfekterad".

Skapa nu en ny sprite (igen) och benämn den sprite1, som vi också målar själva. Titel "Sprite1" och skapa 2 kostymer, den ena ska vara en röd prick och den andra en grå prick. Gör dem costume1 respektive costume2. Dessa två representerar de infekterade (den röda pricken) och återhämtade/borttagna (den gråa punkten) populationerna.

Steg 2: Konfigurera koden för den mottagliga befolkningen

Konfigurera koden för den mottagliga befolkningen
Konfigurera koden för den mottagliga befolkningen

Vi har nu satt upp den mottagliga befolkningskoden. Vi skapar först två variabler: människor och infekterade. Variabeln "Människor" representerar befolkningen och kan ändras beroende på hur många människor vi vill ha i vår simulering, och simuleringen kommer att förändras därefter. Vi skapar också en infekterad variabel, och detta representerar befolkningen som har/haft sjukdomen. Båda dessa variabler bör vara globala variabler, vilket innebär att de kan användas i alla sprites.

Kopiera sedan koden ovan till den oinfekterade spriten. Låt oss gå igenom vad det gör. När programmet startar är spriten dold, och det är så att vi inte behöver lägga samma kod för kloner i själva spriten, vilket hjälper. Sedan ställer vi in de två variablerna (infekterade och människor) till vad vi vill att de ska vara, i det här fallet sätter vi de infekterade till 1 och personer till 100. Det betyder att vi börjar med en person som är infekterad och 100 totalt personer, inklusive den infekterade personen. Vi kör sedan en loop, som körs det belopp som personvariabeln är, i det här fallet 100. Vi går till en slumpmässig position och skapar sedan en klon av spriten. Vi går till en slumpmässig position eftersom vi på så sätt inte har en rad prickar som rör sig i en riktning och istället gyter i slumpmässiga positioner.

Steg 3: Konfigurera koden för den infekterade och borttagna spriten

Konfigurera koden för den infekterade och borttagna spriten
Konfigurera koden för den infekterade och borttagna spriten

Byt nu till spriten "Sprite1" och kopiera sedan koden ovan. Låt oss gå igenom det. När programmet startar är spriten dold och kör sedan en loop för den mängd som infekterats är inställd på. Den går till en slumpmässig position och skapar en klon av sig själv.

Steg 4: Slutföra den mottagliga befolkningskoden

Slutföra den mottagliga befolkningskoden
Slutföra den mottagliga befolkningskoden

Låt oss gå igenom de saker vi behöver göra:

  • Infektera
  • Flytta

Byt till den oinfekterade spriten, kopiera koden ovan och låt oss gå igenom hur den slutför infekteringen och rörelsen. Först går det till kostym ett, och det här är verkligen inte nödvändigt, men vi har det där, så om vi bestämmer oss för att lägga till fler behöver vi inte oroa oss för att det ska byta dräkter till de nya vi lade till. Därefter visar det sig. Om du kommer ihåg gömde vi den ursprungliga spriten, så klonerna kommer också att döljas, vilket vi inte vill ha. Vi kör sedan en forever loop, som kommer att köra hela programmet tills någon klickar på stoppskylten från början. Vi glider till en slumpmässig position i 1 sekund och kontrollerar sedan om vi är på kanten, i vilket fall vi studsar av det. Om vi vidrör den röda färgen klonar vi sedan Sprite1 (den infekterade/borttagna populationen) och ökar den infekterade variabeln med 1, följt av att vi tar bort vår sprite.

Steg 5: Slutföra den infekterade/borttagna koden

Slutför den infekterade/borttagna koden
Slutför den infekterade/borttagna koden

När vi byter till Sprite1 skapar vi en ny lista, timer. Denna lista kommer att hålla reda på hur länge en prick är infekterad, och efter en viss tid dör den eller återhämtar sig, blir en del av den borttagna/återhämtade befolkningen och representeras av en grå prick som inte kan infekteras igen.

Kopiera koden ovan och låt oss gå igenom den. När vi börjar som en klon sätter vi in det totala antalet sekunder som programmet har körts i timarlistan, och vi kommer att kontrollera detta för att se hur länge det har infekterats och ändra det för att återställas i enlighet med detta. Vi döljer timerlistan och byter sedan klondräkten till den infekterade kostymen för säkerhets skull och visar sedan vår sprite. Vi kör nu en evighetsslinga, där flera saker händer: vi säger till klonen att glida till en slumpmässig position varannan sekund, kontrollera om den infekterade variabeln är större än populationen själv, i så fall sätter vi den till populationen och Slutligen går vi och kontrollerar timerlistans första objekt för att se om det har gått mer än 5 sekunder, och om det är sant byter vi kostym till den återställda kostymen så att vi inte kan infektera och tar sedan bort objektet från timern.

Rekommenderad: