Table des matières:

Modélisation (très simple) de la maladie (à l'aide de Scratch) : 5 étapes
Modélisation (très simple) de la maladie (à l'aide de Scratch) : 5 étapes

Vidéo: Modélisation (très simple) de la maladie (à l'aide de Scratch) : 5 étapes

Vidéo: Modélisation (très simple) de la maladie (à l'aide de Scratch) : 5 étapes
Vidéo: Elle Était Coincée Donc Ce Policier L'aide 2024, Novembre
Anonim
Modélisation (très simple) de la maladie (à l'aide de Scratch)
Modélisation (très simple) de la maladie (à l'aide de Scratch)

Aujourd'hui, nous simulerons une épidémie de maladie, n'importe quelle maladie, pas nécessairement COVID-19. Cette simulation a été inspirée par une vidéo de 3blue1brown, vers laquelle je vais créer un lien. Comme il s'agit de glisser-déposer, nous ne pouvons pas faire autant que possible avec JS ou Python, mais il y a aussi des avantages à utiliser scratch, donc, si vous voulez voir comment modéliser une épidémie avec JS, vous pouvez voir mon article que j'ai écrit sur la modélisation des épidémies ici. Maintenant, commençons !

Remarque: l'image ci-dessus provient d'une simulation de quantum9innovation (pas un utilisateur d'Instructables) que vous pouvez voir ici.

Fournitures:

Tu auras besoin:

  • Un compte Scratch (vous pouvez vous inscrire ici
  • Connaissance de base du glisser-déposer (mais je vais quand même passer en revue le code)
  • Un ordinateur ou un appareil avec lequel vous pouvez programmer (que vous possédez probablement, puisque vous lisez ceci)
  • Facultatif - Regardez la vidéo 3b1b, cela vous donnera une idée de ce que nous programmons.

Étape 1: configuration de base

Configuration de base
Configuration de base

Tout d'abord, créons un projet, intitulons-le comme vous le souhaitez, puis supprimons le sprite existant sur le canevas. Vous pouvez le faire en cliquant sur le bouton Corbeille sur le sprite. Nous avons maintenant une toile vierge et vous pouvez changer la couleur d'arrière-plan comme vous le souhaitez.

Ensuite, créez un nouveau sprite et au lieu d'utiliser un sprite existant, peignez le vôtre. Faites-en un point bleu. Ce sprite représente la population sensible de la communauté, et nous aurons également une population récupérée/retirée et infectée, d'où vient le nom du modèle, SIR (susceptible, infecté, récupéré/retiré). Assurez-vous de nommer le sprite "non infecté".

Maintenant, créez un nouveau sprite (encore une fois) et intitulez-le sprite1, que nous peindrons également nous-mêmes. Intitulez-le "Sprite1" et créez 2 costumes, l'un devrait être un point rouge et l'autre un point gris. Faites-les respectivement costume1 et costume2. Ces deux représentent les populations infectées (le point rouge) et récupérées/éliminées (le point gris).

Étape 2: Configuration du code pour la population sensible

Configuration du code pour la population sensible
Configuration du code pour la population sensible

Nous mettons maintenant en place le code de population sensible. Nous créons d'abord 2 variables: personnes et infectées. La variable "Personnes" représente la population et peut être modifiée en fonction du nombre de personnes que nous voulons dans notre simulation, et la simulation changera en conséquence. Nous créons également une variable infectée, qui représente la population qui a/a eu la maladie. Ces deux variables doivent être des variables globales, ce qui signifie qu'elles peuvent être utilisées dans tous les sprites.

Ensuite, copiez le code ci-dessus dans le sprite non infecté. Voyons ce qu'il fait. Lorsque le programme démarre, le sprite est caché, et c'est ainsi que nous n'avons pas à mettre le même code pour les clones dans le sprite lui-même, ce qui aide. Ensuite, nous définissons les deux variables (infectés et personnes) sur ce que nous voulons qu'elles soient, dans ce cas, nous définissons les personnes infectées sur 1 et les personnes sur 100. Cela signifie que nous commençons avec une personne infectée et 100 personnes au total, sans compter la personne infectée. Nous exécutons ensuite une boucle, qui exécute le montant que la variable people est, dans ce cas, 100. Nous allons à une position aléatoire, puis créons un clone du sprite. Nous allons à une position aléatoire car de cette façon, nous n'avons pas de ligne de points se déplaçant dans une direction, et au lieu de cela, nous frayons dans des positions aléatoires.

Étape 3: Configuration du code pour le sprite infecté et supprimé

Configuration du code pour le sprite infecté et supprimé
Configuration du code pour le sprite infecté et supprimé

Maintenant, passez au sprite "Sprite1", puis copiez le code ci-dessus. Passons-y. Lorsque le programme démarre, le sprite est masqué, puis exécute une boucle pour le montant infecté. Il va à une position aléatoire et crée un clone de lui-même.

Étape 4: Remplir le code de population sensible

Remplir le code de la population sensible
Remplir le code de la population sensible

Passons en revue les choses que nous devons faire:

  • Infecter
  • Se déplacer

Basculez vers le sprite Uninfected, copiez le code ci-dessus et voyons comment il termine l'infection et le déplacement. Premièrement, cela va au costume un, et ce n'est vraiment pas nécessaire, mais nous l'avons là, donc si nous décidons d'en ajouter plus, nous n'avons pas à nous soucier de changer les costumes pour les nouveaux que nous avons ajoutés. Ensuite, il se montre. Si vous vous en souvenez, nous avons caché le sprite d'origine, donc les clones seront également cachés, ce que nous ne voulons pas. Nous exécutons ensuite une boucle permanente, qui exécutera l'ensemble du programme jusqu'à ce que quelqu'un clique sur le signe d'arrêt à zéro. Nous glissons vers une position aléatoire pendant 1 seconde, puis vérifions si nous sommes sur le bord, auquel cas nous rebondissons. Ensuite, si nous touchons la couleur rouge, nous clonons ensuite Sprite1 (la population infectée/supprimée) et augmentons la variable infectée de 1, puis supprimons notre sprite.

Étape 5: Compléter le code infecté/supprimé

Remplir le code infecté/supprimé
Remplir le code infecté/supprimé

En passant à Sprite1, nous créons une nouvelle liste, timer. Cette liste gardera une trace de la durée d'infection d'un point et, après un certain temps, il meurt ou se rétablit, fait partie de la population supprimée/récupérée et est représenté par un point gris, qui ne peut pas être réinfecté.

Copiez le code ci-dessus et parcourons-le. Lorsque nous commençons en tant que clone, nous insérons le nombre total de secondes pendant lesquelles le programme s'est exécuté dans la liste des minuteurs, et nous vérifierons cela pour voir depuis combien de temps il a été infecté et le modifierons pour être récupéré en conséquence. Nous masquons la liste des minuteurs, puis basculons le costume de clone sur le costume infecté juste au cas où, puis affichons notre sprite. Nous exécutons maintenant une boucle permanente, dans laquelle plusieurs choses se produisent: nous disons au clone de glisser vers une position aléatoire toutes les secondes, vérifions si la variable infectée est supérieure à la population elle-même, auquel cas nous la définissons sur la population, et enfin, nous allons vérifier le premier élément de la liste du minuteur pour voir s'il a été plus de 5 secondes, et si c'est vrai, nous passons le costume au costume récupéré afin que nous ne puissions pas infecter, puis supprimons l'élément du minuteur.

Conseillé: