(Vrlo jednostavno) Modeliranje bolesti (pomoću grebanja): 5 koraka
(Vrlo jednostavno) Modeliranje bolesti (pomoću grebanja): 5 koraka
Anonim
(Vrlo jednostavno) Modeliranje bolesti (pomoću grebanja)
(Vrlo jednostavno) Modeliranje bolesti (pomoću grebanja)

Danas ćemo simulirati izbijanje bolesti, pri čemu je to bilo koja bolest, ne nužno COVID-19. Ova simulacija inspirisana je video zapisom 3blue1brown, na koji ću se povezati. Budući da je ovo povlačenje i ispuštanje, ne možemo učiniti onoliko koliko možemo s JS -om ili Pythonom, ali postoje i prednosti korištenja grebanja, pa ako želite vidjeti kako modelirati izbijanje s JS -om, možete pogledati moj članak koji sam napisao o modeliranju izbijanja bolesti ovdje. Sada, počnimo!

Napomena: Gornja slika je iz simulacije Quantum9innovation (nije korisnik Instructables) koju možete pogledati ovdje.

Potrošni materijal:

Trebat će vam:

  • Scratch račun (možete se registrirati ovdje
  • Osnovno znanje o povlačenju i ispuštanju (ali ipak ću proći kroz kod)
  • Računar ili uređaj s kojim možete programirati (koji vjerovatno imate, budući da ovo čitate)
  • Izborno - pogledajte 3b1b video zapis koji će vam dati neku ideju o tome šta programiramo.

Korak 1: Osnovno postavljanje

Osnovno podešavanje
Osnovno podešavanje

Prvo, kreirajmo projekt, dajte mu naslov kako želite, a zatim izbrišite postojeći sprite na platnu. To možete učiniti klikom na dugme za smeće na sprajtu. Sada imamo prazno platno i možete promijeniti boju pozadine na što god želite.

Zatim stvorite novi sprite i umjesto da koristite postojeći sprite, obojite svoj. Neka to bude plava tačka. Ovaj sprite predstavlja osjetljivu populaciju zajednice, a imat ćemo i oporavljenu/uklonjenu i zaraženu populaciju, odakle dolazi naziv modela, SIR (osjetljiv, zaražen, oporavljen/uklonjen). Imenujte sprajt "nezaražen".

Sada, stvorite novi sprite (ponovo) i naslovite ga sprite1, koji ćemo i sami oslikati. Naslovite ga "Sprite1" i stvorite 2 kostima, jedan bi trebao biti crvena tačka, a drugi siva tačka. Učinite ih kostimom1 i kostimom2. Ove dvije predstavljaju zaražene (crvena tačka) i oporavljene/uklonjene (sive tačke) populacije.

Korak 2: Postavljanje koda za osjetljivu populaciju

Postavljanje koda za osjetljivu populaciju
Postavljanje koda za osjetljivu populaciju

Sada smo postavili kôd osjetljive populacije. Prvo stvaramo 2 varijable: ljudi i zaraženi. Varijabla "Ljudi" predstavlja populaciju i može se promijeniti ovisno o tome koliko ljudi želimo u našoj simulaciji, a simulacija će se promijeniti u skladu s tim. Također stvaramo inficiranu varijablu, a ona predstavlja populaciju koja je imala/imala bolest. Obje ove varijable bi trebale biti globalne, što znači da se mogu koristiti u svim spritovima.

Zatim kopirajte gornji kôd u nezaraženi sprite. Hajde da prođemo kroz ono što radi. Kada se program pokrene, sprite je skriven, i to je tako da ne moramo stavljati isti kod za klonove u sam sprite, što pomaže. Zatim postavljamo dvije varijable (zaražene i osobe) na ono što želimo da budu, u ovom slučaju postavljamo zaražene na 1, a ljude na 100. To znači da počinjemo s jednom zaraženom osobom i 100 ukupno ljudi, ne uključujući zaraženu osobu. Zatim pokrećemo petlju, koja pokreće iznos koji je varijabla people u ovom slučaju 100. Idemo na slučajni položaj, a zatim stvaramo klon sprite. Idemo na slučajni položaj jer na ovaj način nemamo liniju točkica koja se kreće u jednom smjeru, već se mrijeste u nasumičnim pozicijama.

Korak 3: Postavljanje koda za zaraženog i uklonjenog sprajta

Postavljanje koda za zaraženog i uklonjenog sprajta
Postavljanje koda za zaraženog i uklonjenog sprajta

Sada se prebacite na sprite "Sprite1", a zatim kopirajte gornji kod. Idemo kroz to. Kada se program pokrene, sprite je skriven, a zatim pokreće petlju za iznos na koji je zaraženo postavljeno. Odlazi u slučajni položaj i stvara klon sebe.

Korak 4: Dovršenje koda o osjetljivom stanovništvu

Popunjavanje koda o osjetljivom stanovništvu
Popunjavanje koda o osjetljivom stanovništvu

Hajdemo proći kroz stvari koje trebamo učiniti:

  • Infect
  • Makni se

Prebacite se na nezaraženi sprite, kopirajte gornji kôd i provjerimo kako dovršava infekciju i kretanje. Prvo, ide u kostim jedan, a to zaista nije potrebno, ali imamo ga tako da, ako odlučimo dodati još, ne moramo brinuti hoće li kostime promijeniti u nove koje smo dodali. Zatim se pokazuje. Ako se sjećate, sakrili smo originalni sprite, pa će i klonovi biti skriveni, što ne želimo. Zatim pokrećemo zauvijek petlju, koja će izvoditi cijeli program dok netko ne klikne znak stop na ogrebotini. Klizimo u slučajni položaj 1 sekundu, a zatim provjeravamo jesmo li na rubu, u tom slučaju odskačemo od nje. Zatim, ako dodirujemo crvenu boju, tada kloniramo Sprite1 (zaraženu/uklonjenu populaciju) i povećamo zaraženu varijablu za 1, a zatim brišemo naš sprite.

Korak 5: Dovršite zaraženi/uklonjeni kôd

Dovršavanje zaraženog/uklonjenog koda
Dovršavanje zaraženog/uklonjenog koda

Prelaskom na Sprite1, kreiramo novu listu, mjerač vremena. Ova lista će pratiti koliko je tačka zaražena, a nakon određenog vremena ili umire ili se oporavlja, postaje dio uklonjene/oporavljene populacije i predstavljena je sivom točkom koja se ne može ponovno zaraziti.

Kopirajte gornji kod i prođimo kroz njega. Kad počnemo kao klon, u popis vremena odbrojavamo ukupnu količinu sekundi koliko je program radio, a mi ćemo to provjeriti da vidimo koliko je zaražen i promijeniti ga u skladu s tim da se oporavi. Skrivamo listu mjerača vremena, a zatim za svaki slučaj prebacujemo kostim klona u zaraženi kostim, a zatim pokazujemo naš duh. Sada pokrećemo vječnu petlju u kojoj se događa više stvari: govorimo klonu da klizi u slučajni položaj svake sekunde, provjeravamo je li zaražena varijabla veća od same populacije, u tom slučaju postavljamo je na populaciju, i na kraju, idemo provjeriti prvu stavku liste mjerača vremena da provjerimo je li prošlo više od 5 sekundi, a ako je istina, prebacujemo kostim na vraćeni kostim kako ne bismo mogli zaraziti, a zatim brišemo stavku s tajmera.