Porteurs sains, période d'incubation

Durée estimée: 45 minutes

Distinguer les malades symptomatiques ou non ?

Un malade ne sait pas qu'il est contaminé avant l'arrivée des symptômes. A partir de là, faisons l'hypothèse :

  • que les décideurs sont immédiatement au courant,
  • que la période d'incubation est de quatre jours,
  • et que chaque malade contamine quelqu'un tous les 2 jours.
Dans ce cas, quand un malade apprend qu'il est contaminé (malade), il a déjà contaminé 2 autres personnes qui ont elles même contaminé 1 personne chacune : 4 au total !!!

Dans la version 2 du simulateur, nous allons prendre en compte ce délai d'incubation (asymptomatique : porteur sain). C'est le nombre de malades symptomatiques (la courbe orange) qui sera disponible pour la prise de décisions.

Dans cette 2°version, nous ajouterons aussi lapossibilité d'étudier la manière dont l'épidémie se propage en fonction de la densité de la population et de la vitesse à laquelle les personnes se déplacent.

(Nous vous rappelons que ce modèle sommaire ne permet pas d'évaluation quantitative mais peut aider à comprendre les mécanismes)

Ce que vous allez faire :

Vous allez modifier la 1°version du simulateur pour distinguer la période asymptomatique (contamination invisible) et augmenter la capacité d'analyse.
Vous allez aussi améliorer l'ergonomie pour faire suspendre/reprendre ou redémarrer les scénarios avec les touches "espace" et "s".

Résultat attendu

Dans cette version, vous pouvez

  • visualiser le moment où les personnes contaminées deviennent symptomatiques. Elles apparaissent avec un point noir et arrêtent de se déplacer (mais continuent à contaminer les personnes qui passent les voir,
    La courbe orange correspond aux malades ayant des symptomes.
  • suspendre et reprendre le scénario avec la touche espace
  • relancer le scénario avec la touche s
Cliquez sur le drapeau vert pour démarrer une simulation.

Essais et discussion :

Dans vos essais :

  • Quelle est la relation entre la courbe des malades (en bleu) et celle des malades asymptomatiques ?
  • Quelle proportion des contaminations est due aux porteurs sains (ou malades sans symptômes) ?
  • Quelles actions complémentaires recommandez vous pour réduire la contamination (pour un même niveau de confinement) ?

Réalisation :

Ressources de départ : Pour cette deuxième version, vous pouvez continuer à partir de la version que vous avez réalisée, ou partir du canevas suivant https://scratch.mit.edu/projects/379394866

Prise en compte de la durée d'incubation :

  1. Nouveau costume:
    Dans le sprite principal ("personne") on duplique le costume "malade" pour créer le costume "malade avec symptomes" dans lequel on ajoute un point nor. Ce costume doit rester de la même couleur que le costume "malade".
  2. Nouvelles variables globales :
    • "durée-avant-symptomes" et on l'initialise à 50 dans la procédure "conditionsDePropagation"(soit ici, la moitié de la durée-de-contamination),
    • "nombre-de-symptomatiques" qui va compter le nombre de malades avec symptomes et on l'initialise à 0 dans la procédure "conditionsDePropagation".
  3. Tester l'apparition des symptomes :
    Renommer la procédure "tester-si-je-suis-guéri" en "tester-si-je-suis-symptomatique-ou-guéri", et ajouter un test pour savoir si "temps-depuis-contamination" est supérieur à "durée-avant-symptomes" et si oui
    • confiner le clone en mettant à 0 la variable "besoindeBouger"
    • si le numéro de costume vaut 2 (qui doit être le costume "malade"), ça veut dire que ce clone n'était pas encore symptmatique au clic précédent, donc il faut ajouter 1 au "nombre-de-symptomatiques" puis basculer sur le costume "Malade avec symptomes" qui est normalement le 4°.
  4. Graphique du nombre de personnes symptomatiques :
    Pour tracer le graphique du nombre de personnes symptomatiques, on duplqiue le sprite "Gr-malades" pour créer le sprite "Gr-Symptomatiques" dans lequel
    • On ajoute le choix de couleur dans le script du drapeau vert
    • on remplace le nom de la variable "nombre-de-malades" par "nombre-de-symptomatiques"

Ergonomie, touches de contrôle :

Pour contrôler le déroulement des scénarios, on va utiliser les touches du clavier :

  • la touche espace pour faire une pause ou redémarrer
  • la touche s pour redémarrer (start)
  • et d'autres que vous pourrez définir
Si on met les scripts correspondants dans le sprite principal (personne), ils vont être executés autant de fois que de clones. Ce qu'on ne veut pas!
Donc on va les mettre dans le code de la scène (ou du fond d'écran).

  1. Pause/continue avec la touche espace :
    Pour suspendre et reprendre le déroulement du scénario, on va simplement suspendre ou reprendre l'émission des tics-horloge en fonction de la valeur d'une variable :
    • définir la variable globale "pause"
    • dans le sprite principal: "personne"
      1. mettre sa valeur à "oui" dans le script du drapeau vert
      2. et ajouter un test avant d'envoyer le message "tic-horloge"
    Dans le code de la scène ajouter un script (cf.ci-dessus)pour l'évènement "quand touche espace pressée":
    • Quand la touche espace est pressée :
    • si "pause" = oui alors mettre "pause" à non
    • sinon : mettre pause à "oui"
    • et attendre 0.5 secondes pour éviter que la touche soit prise en compte plusieurs fois
  2. Afficher un menu pour présenter les touches :
    Pour afficher un manuel utilisateur, créer un nouveau sprite "menu" qui va afficher la liste des touches et leur rôle.
    Ce menu va s'effacer lorsque l'utilisateur touche la barre d'espace(pour l'instant la touche a et les flèches ne sont pas utilisées).


  3. start/restart avec la touche s :
    Pour pouvoir redémarrer sans réinitialiser toutes les variables, au lieu de démarrer directement dans le sript du drapeau vert, on va le faire à la réception du message "start" et envoyer ce message dans le script du drapeau vert :

    Ensuite, pour redémarrr quand on appuei ssur la touche s :

    1. Envoyer le message "start" dans un script de la scène
      Il vaut mieux le faire dans le code de la scène pour éviter que cet appel soit fait par chaque clone du sprite principal "personne".
    2. et, dans le sprite principal "personne" supprimer chacun des clones existants quand on appuie sur la touche s.

    L'application va redémarrer, mais les valeurs de paramètres que vous avez déjà choisies ne seront pas effacées comme c'est le cas avec le drapeau vert.

    Enfin, comme le messsage "start" remplace le drapeau vert, vous devez aussi faire le changement dans les trois autres sprites, l'évènement "quand clic sur drapeau vert" par l'évènement "quand je reçois start", par exemple :

     

Densité de la population et vitesse de déplacement :

Plus il y a de monde et plus les gens se déplacent, plus l'épidémie va se propager. Pour évaluer cet aspect nous allons utiliser :

  • La touche P pour basculer entre 100 à 200 personnes
  • les flèches haut et bas pour faire varier la vitesse de déplacement.

  1. modification de la vitesse de déplacement (flèches) :

    Pour modifier la vitesse de déplacement on ajoute simplement deux scripts dans le code de la scène.

  2. changement de la population (P) :
    1. Dans le code de la scène on ajoute un script qui bascule entre les valeurs 100 et 200 et qui relance la création des clones avec le message start.
    2. dans le sprite principal "personne" (comme pour le redémarrage avec la touche s) on ajoute un script qui supprime chacun des clones existants.