Sommario:

(Molto semplice) Modellazione della malattia (usando Scratch): 5 passaggi
(Molto semplice) Modellazione della malattia (usando Scratch): 5 passaggi

Video: (Molto semplice) Modellazione della malattia (usando Scratch): 5 passaggi

Video: (Molto semplice) Modellazione della malattia (usando Scratch): 5 passaggi
Video: Come faccio?? 2024, Dicembre
Anonim
(Molto semplice) Modellazione della malattia (usando Scratch)
(Molto semplice) Modellazione della malattia (usando Scratch)

Oggi simuleremo un focolaio di malattia, trattandosi di qualsiasi malattia, non necessariamente COVID-19. Questa simulazione è stata ispirata da un video di 3blue1brown, a cui collegherò. Poiché si tratta di trascinare e rilasciare, non possiamo fare quanto possiamo con JS o Python, ma ci sono anche vantaggi nell'usare lo zero, quindi, se vuoi vedere come modellare un'epidemia con JS, puoi vedere il mio articolo che ho scritto sulla modellazione delle epidemie di malattie qui. Ora, cominciamo!

Nota: l'immagine sopra proviene da una simulazione di quantum9innovation (non un utente di Instructables) che puoi visualizzare qui.

Forniture:

Avrai bisogno:

  • Un account Scratch (puoi registrarti qui
  • Conoscenza di base del trascinamento della selezione (ma esaminerò comunque il codice)
  • Un computer o un dispositivo con cui puoi programmare (che probabilmente hai, dal momento che stai leggendo questo)
  • Opzionale - Guarda il video 3b1b, ti darà un'idea di cosa stiamo programmando.

Passaggio 1: configurazione di base

Configurazione di base
Configurazione di base

Per prima cosa, creiamo un progetto, intitolalo come vuoi, quindi elimini lo sprite esistente sulla tela. Puoi farlo facendo clic sul pulsante del cestino sullo sprite. Ora abbiamo una tela bianca e puoi cambiare il colore di sfondo con quello che vuoi.

Quindi, crea un nuovo sprite e, invece di usare uno sprite esistente, dipingi il tuo. Rendilo un punto blu. Questo sprite rappresenta la popolazione suscettibile della comunità, e avremo anche una popolazione recuperata/rimossa e infetta, da cui deriva il nome del modello, SIR (suscettibile, infetto, guarito/rimosso). Assicurati di nominare lo sprite "non infetto".

Ora, crea un nuovo sprite (di nuovo) e intitolalo sprite1, che dipingeremo anche noi stessi. Intitolalo "Sprite1" e crea 2 costumi, uno dovrebbe essere un punto rosso e l'altro un punto grigio. Rendili rispettivamente costume1 e costume2. Questi due rappresentano le popolazioni infette (il punto rosso) e quelle guarite/rimosse (il punto grigio).

Passaggio 2: impostazione del codice per la popolazione suscettibile

Impostazione del codice per la popolazione suscettibile
Impostazione del codice per la popolazione suscettibile

Ora impostiamo il codice della popolazione suscettibile. Per prima cosa creiamo 2 variabili: persone e infetti. La variabile "Persone" rappresenta la popolazione e può essere modificata in base a quante persone vogliamo nella nostra simulazione, e la simulazione cambierà di conseguenza. Creiamo anche una variabile infetta, e questa rappresenta la popolazione che ha/ha avuto la malattia. Entrambe queste variabili dovrebbero essere variabili globali, il che significa che possono essere utilizzate in tutti gli sprite.

Quindi, copia il codice sopra nello sprite non infetto. Esaminiamo cosa fa. All'avvio del programma, lo sprite è nascosto, ed è così che non dobbiamo inserire lo stesso codice per i cloni nello sprite stesso, il che aiuta. Quindi, impostiamo le due variabili (infetti e persone) su ciò che vogliamo che siano, in questo caso, impostiamo gli infetti su 1 e le persone su 100. Ciò significa che iniziamo con una persona infetta e 100 persone in totale, esclusa la persona infetta. Quindi eseguiamo un ciclo, che viene eseguito l'importo che la variabile persone è, in questo caso, 100. Andiamo in una posizione casuale e quindi creiamo un clone dello sprite. Andiamo in una posizione casuale perché in questo modo non abbiamo una linea di punti che si sposta in una direzione e invece si generano in posizioni casuali.

Passaggio 3: impostazione del codice per lo sprite infetto e rimosso

Impostazione del codice per lo sprite infetto e rimosso
Impostazione del codice per lo sprite infetto e rimosso

Ora, passa allo sprite "Sprite1" e quindi copia il codice sopra. Esaminiamolo. All'avvio del programma, lo sprite viene nascosto e quindi esegue un ciclo per l'importo impostato su cui è stato infettato. Va in una posizione casuale e crea un clone di se stesso.

Passaggio 4: completamento del codice della popolazione suscettibile

Completamento del codice della popolazione suscettibile
Completamento del codice della popolazione suscettibile

Esaminiamo le cose che dobbiamo fare:

  • Infettare
  • Spostare

Passa allo sprite Uninfected, copia il codice sopra e vediamo come completa l'infezione e lo spostamento. Innanzitutto, va al costume uno, e questo non è davvero necessario, ma ce l'abbiamo lì, quindi se decidiamo di aggiungerne altri, non dobbiamo preoccuparci di cambiare i costumi con quelli nuovi che abbiamo aggiunto. Successivamente, si mostra. Se ricordi, abbiamo nascosto lo sprite originale, quindi anche i cloni saranno nascosti, cosa che non vogliamo. Quindi eseguiamo un ciclo per sempre, che eseguirà l'intero programma finché qualcuno non farà clic sul segnale di stop da zero. Scivoliamo in una posizione casuale per 1 secondo, quindi controlliamo se siamo al limite, nel qual caso rimbalziamo. Successivamente, se tocchiamo il colore rosso, cloniamo Sprite1 (la popolazione infetta/rimossa) e aumentiamo la variabile infetta di 1, quindi eliminiamo il nostro sprite.

Passaggio 5: completamento del codice infetto/rimosso

Completamento del codice infetto/rimosso
Completamento del codice infetto/rimosso

Passando a Sprite1, creiamo una nuova lista, timer. Questo elenco tiene traccia di quanto tempo un punto è infetto e, dopo un certo periodo di tempo, muore o si riprende, diventa parte della popolazione rimossa/recuperata ed è rappresentato da un punto grigio, che non può essere reinfettato.

Copia il codice sopra e leggiamolo. Quando iniziamo come clone inseriamo la quantità totale di secondi da cui il programma è in esecuzione nell'elenco dei timer, e controlleremo questo per vedere da quanto tempo è stato infettato e lo modificheremo per essere recuperato di conseguenza. Nascondiamo l'elenco dei timer e poi cambiamo il costume clone con il costume infetto per ogni evenienza, quindi mostriamo il nostro sprite. Ora eseguiamo un ciclo per sempre, in cui accadono più cose: diciamo al clone di planare in una posizione casuale ogni secondo, controlliamo se la variabile infetta è maggiore della popolazione stessa, nel qual caso la impostiamo alla popolazione e infine, andiamo a controllare il primo elemento dell'elenco dei timer per vedere se sono trascorsi più di 5 secondi e, se è vero, cambiamo il costume con il costume recuperato in modo da non poter infettare, quindi eliminiamo l'elemento dal timer.

Consigliato: