Innholdsfortegnelse:

(Veldig enkel) Sykdomsmodellering (ved bruk av Scratch): 5 trinn
(Veldig enkel) Sykdomsmodellering (ved bruk av Scratch): 5 trinn

Video: (Veldig enkel) Sykdomsmodellering (ved bruk av Scratch): 5 trinn

Video: (Veldig enkel) Sykdomsmodellering (ved bruk av Scratch): 5 trinn
Video: Стабилизация биохимических показателей крови. Большой восстановительный рефлекторный каскад 2024, November
Anonim
(Veldig enkel) Sykdomsmodellering (ved bruk av Scratch)
(Veldig enkel) Sykdomsmodellering (ved bruk av Scratch)

I dag vil vi simulere et sykdomsutbrudd, ettersom det er en hvilken som helst sykdom, ikke nødvendigvis COVID-19. Denne simuleringen ble inspirert av en video av 3blue1brown, som jeg vil koble til. Siden dette er dra og slipp, kan vi ikke gjøre så mye vi kan med JS eller Python, men det er fordeler med å bruke scratch også, så hvis du vil se hvordan du modellerer et utbrudd med JS, kan du se min artikkel som jeg skrev om modellering av sykdomsutbrudd her. La oss begynne!

Merk: Bildet ovenfor er fra en simulering ved quantum9innovation (ikke en Instructables -bruker) som du kan se her.

Rekvisita:

Du vil trenge:

  • En skrapekonto (du kan registrere deg her
  • Grunnleggende kunnskap om dra og slipp (men jeg skal fortsatt gå gjennom koden)
  • En datamaskin eller enhet du kan programmere med (som du sannsynligvis har siden du leser dette)
  • Valgfritt - Se 3b1b -videoen, den gir deg en ide om hva vi programmerer.

Trinn 1: Grunnleggende oppsett

Grunnleggende oppsett
Grunnleggende oppsett

La oss først lage et prosjekt, gi det tittelen du vil, og deretter slette den eksisterende spriteen på lerretet. Du kan gjøre dette ved å klikke på papirkurven på sprite. Nå har vi et tomt lerret, og du kan endre bakgrunnsfargen til det du vil.

Deretter lager du en ny sprite, og i stedet for å bruke en eksisterende sprite må du male din egen. Gjør det til en blå prikk. Denne sprite representerer den mottakelige befolkningen i samfunnet, og vi vil også ha en gjenopprettet/fjernet og infisert befolkning, det er her navnet på modellen, SIR (mottagelig, infisert, gjenopprettet/fjernet), kommer fra. Sørg for å gi spriten navnet "uinfisert".

Lag nå en ny sprite (igjen), og gi den tittelen sprite1, som vi også skal male selv. Gi den tittelen "Sprite1" og lag to kostymer, den ene skal være en rød prikk, og den andre en grå prikk. Lag dem henholdsvis kostyme1 og kostyme2. Disse to representerer den infiserte (den røde prikken) og gjenopprettede/fjernede (den grå prikken) populasjonene.

Trinn 2: Konfigurere koden for den mottakelige befolkningen

Sette opp koden for den mottakelige befolkningen
Sette opp koden for den mottakelige befolkningen

Vi har nå satt opp den mottakelige befolkningskoden. Vi lager først to variabler: mennesker og infiserte. Variabelen "People" representerer populasjonen og kan endres i henhold til hvor mange mennesker vi vil ha i vår simulering, og simuleringen vil endre seg deretter. Vi lager også en infisert variabel, og dette representerer befolkningen som har/hadde sykdommen. Begge disse variablene bør være globale variabler, noe som betyr at de kan brukes i alle sprites.

Deretter kopierer du koden ovenfor til den uinfiserte sprite. La oss gå gjennom det den gjør. Når programmet starter, er sprite skjult, og dette er slik at vi ikke trenger å sette den samme koden for kloner i selve sprite, noe som hjelper. Deretter setter vi de to variablene (infisert og mennesker) til det vi vil at de skal være, i dette tilfellet setter vi de smittede til 1 og personer til 100. Dette betyr at vi starter med en person som er infisert og 100 totalt mennesker, ikke inkludert den smittede. Vi kjører deretter en sløyfe, som kjøres mengden som personvariabelen er, i dette tilfellet 100. Vi går til en tilfeldig posisjon og lager deretter en klon av sprite. Vi går til en tilfeldig posisjon fordi vi på denne måten ikke har en linje med prikker som beveger seg i en retning, og i stedet gyter i tilfeldige posisjoner.

Trinn 3: Konfigurere koden for den infiserte og fjernede sprite

Sette opp koden for infisert og fjernet sprite
Sette opp koden for infisert og fjernet sprite

Nå, bytt til "Sprite1" sprite og kopier deretter koden ovenfor. La oss gå igjennom det. Når programmet starter, er sprite skjult, og deretter kjører en loop for mengden som infiserte er satt til. Den går til en tilfeldig posisjon og skaper en klon av seg selv.

Trinn 4: Fullføring av den mottakelige befolkningskoden

Fullføring av den mottakelige befolkningskoden
Fullføring av den mottakelige befolkningskoden

La oss gå gjennom tingene vi må gjøre:

  • Infisere
  • Bevege seg

Bytt til den uinfiserte sprite, kopier koden ovenfor, og la oss gå gjennom hvordan den fullfører smittingen og bevegelsen. Først går det til kostyme en, og dette er virkelig ikke nødvendig, men vi har det der, så hvis vi bestemmer oss for å legge til flere, trenger vi ikke å bekymre oss for at det endrer kostymer til de nye vi la til. Deretter viser det seg. Hvis du husker, gjemte vi den originale spriten, så klonene blir også skjult, noe vi ikke vil ha. Vi kjører deretter en evig løkke, som vil kjøre hele programmet til noen klikker på stoppskiltet på bunnen. Vi glir til en tilfeldig posisjon i 1 sekund, og kontrollerer deretter om vi er på kanten, i så fall spretter vi av den. Deretter, hvis vi berører fargen rød, kloner vi deretter Sprite1 (den infiserte/fjernede populasjonen) og øker den infiserte variabelen med 1, etterfulgt av å slette vår sprite.

Trinn 5: Fullfør den infiserte/fjernede koden

Fullfører den infiserte/fjernede koden
Fullfører den infiserte/fjernede koden

Ved å bytte til Sprite1 lager vi en ny liste, timer. Denne listen vil holde oversikt over hvor lenge en prikk er infisert, og etter en viss tid dør den eller gjenoppretter, blir en del av den fjernede/gjenopprettede befolkningen og representeres av en grå prikk, som ikke kan infiseres på nytt.

Kopier koden ovenfor, og la oss gå gjennom den. Når vi starter som en klon, setter vi inn det totale antallet sekunder programmet har kjørt i timelisten, og vi sjekker dette for å se hvor lenge det har blitt infisert og endrer det for å bli gjenopprettet tilsvarende. Vi skjuler timerlisten og bytter deretter klonedrakten til det infiserte kostymet for sikkerhets skyld, og viser deretter spriteen vår. Vi kjører nå en evig sløyfe, der flere ting skjer: vi forteller klonen om å glide til en tilfeldig posisjon hvert sekund, sjekke om den infiserte variabelen er større enn populasjonen selv, i så fall setter vi den til populasjonen, og Til slutt går vi og sjekker timerlistens første element for å se om det har gått mer enn 5 sekunder, og hvis det er sant, bytter vi drakten til det gjenopprettede kostymet slik at vi ikke kan smitte, og sletter deretter elementet fra timeren.

Anbefalt: