Inhoudsopgave:
- Stap 1: Basisinstallatie
- Stap 2: De code instellen voor de vatbare populatie
- Stap 3: De code instellen voor de geïnfecteerde en verwijderde sprite
- Stap 4: De code voor gevoelige populaties invullen
- Stap 5: De geïnfecteerde/verwijderde code invullen
Video: (Zeer eenvoudige) ziektemodellering (met behulp van Scratch): 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Vandaag simuleren we een uitbraak van een ziekte, waarbij het een ziekte is, niet noodzakelijkerwijs COVID-19. Deze simulatie is geïnspireerd op een video van 3blue1brown, waarnaar ik zal linken. Aangezien dit slepen en neerzetten is, kunnen we niet zoveel doen met JS of Python, maar er zijn ook voordelen aan het gebruik van scratch, dus als je wilt zien hoe je een uitbraak met JS kunt modelleren, kun je mijn artikel dat ik hier schreef over het modelleren van ziekte-uitbraken. Laten we nu beginnen!
Opmerking: de bovenstaande afbeelding is van een simulatie door quantum9innovation (geen Instructables-gebruiker) die u hier kunt bekijken.
Benodigdheden:
Je hebt nodig:
- Een Scratch-account (u kunt zich hier aanmelden
- Basiskennis van slepen en neerzetten (maar ik ga nog steeds door de code)
- Een computer of apparaat waarmee je kunt programmeren (wat je waarschijnlijk hebt, aangezien je dit leest)
- Optioneel - Bekijk de 3b1b-video, deze geeft je een idee van wat we aan het programmeren zijn.
Stap 1: Basisinstallatie
Laten we eerst een project maken, het een naam geven wat u maar wilt en vervolgens de bestaande sprite op het canvas verwijderen. U kunt dit doen door op de prullenbak op de sprite te klikken. Nu hebben we een leeg canvas en kunt u de achtergrondkleur wijzigen in wat u maar wilt.
Maak vervolgens een nieuwe sprite en schilder in plaats van een bestaande sprite je eigen sprite. Maak er een blauwe stip van. Deze sprite vertegenwoordigt de vatbare populatie van de gemeenschap, en we zullen ook een herstelde/verwijderde en geïnfecteerde populatie hebben, waar de naam van het model, SIR (vatbaar, geïnfecteerd, hersteld/verwijderd), vandaan komt. Zorg ervoor dat u de sprite "niet-geïnfecteerd" noemt.
Maak nu (opnieuw) een nieuwe sprite en noem deze sprite1, die we ook zelf gaan schilderen. Geef het de titel "Sprite1" en maak 2 kostuums, de ene moet een rode stip zijn en de andere een grijze stip. Maak ze respectievelijk kostuum1 en kostuum2. Deze twee vertegenwoordigen de geïnfecteerde (de rode stip) en herstelde/verwijderde (de grijze stip) populaties.
Stap 2: De code instellen voor de vatbare populatie
We stellen nu de vatbare populatiecode op. We maken eerst 2 variabelen aan: mensen en geïnfecteerd. De variabele "Mensen" vertegenwoordigt de populatie en kan worden gewijzigd op basis van het aantal mensen dat we in onze simulatie willen, en de simulatie zal dienovereenkomstig veranderen. We creëren ook een geïnfecteerde variabele, en deze vertegenwoordigt de populatie die de ziekte heeft/had. Beide variabelen moeten globale variabelen zijn, wat betekent dat ze in alle sprites kunnen worden gebruikt.
Kopieer vervolgens de bovenstaande code naar de niet-geïnfecteerde sprite. Laten we eens kijken wat het doet. Wanneer het programma start, is de sprite verborgen, en dit is zodat we niet dezelfde code voor klonen in de sprite zelf hoeven te plaatsen, wat helpt. Vervolgens stellen we de twee variabelen (geïnfecteerd en mensen) in op wat we willen dat ze zijn, in dit geval stellen we de geïnfecteerde in op 1 en mensen op 100. Dit betekent dat we beginnen met één persoon die besmet is en 100 in totaal mensen, exclusief de besmette persoon. We voeren dan een lus uit, waarbij de variabele people wordt uitgevoerd, in dit geval 100. We gaan naar een willekeurige positie en maken dan een kloon van de sprite. We gaan naar een willekeurige positie omdat we op deze manier geen lijn met stippen in één richting hebben, maar in plaats daarvan in willekeurige posities spawnen.
Stap 3: De code instellen voor de geïnfecteerde en verwijderde sprite
Schakel nu over naar de sprite "Sprite1" en kopieer de bovenstaande code. Laten we er doorheen gaan. Wanneer het programma start, wordt de sprite verborgen en voert vervolgens een lus uit voor het aantal geïnfecteerde personen. Het gaat naar een willekeurige positie en creëert een kloon van zichzelf.
Stap 4: De code voor gevoelige populaties invullen
Laten we de dingen doornemen die we moeten doen:
- Infecteren
- Beweging
Schakel over naar de niet-geïnfecteerde sprite, kopieer de bovenstaande code en laten we doornemen hoe het het infecteren en verplaatsen voltooit. Ten eerste gaat het naar kostuum één, en dit is echt niet nodig, maar we hebben het daar, dus als we besluiten om meer toe te voegen, hoeven we ons geen zorgen te maken dat het kostuums verandert in de nieuwe die we hebben toegevoegd. Vervolgens laat het zich zien. Als je het je herinnert, hebben we de originele sprite verborgen, dus de klonen zullen ook verborgen zijn, wat we niet willen. We voeren dan een eeuwige lus uit, die het hele programma zal uitvoeren totdat iemand opnieuw op het stopteken klikt. We glijden 1 seconde naar een willekeurige positie en controleren dan of we op de rand staan, in welk geval we er vanaf stuiteren. Als we vervolgens de kleur rood aanraken, klonen we Sprite1 (de geïnfecteerde/verwijderde populatie) en verhogen we de geïnfecteerde variabele met 1, gevolgd door het verwijderen van onze sprite.
Stap 5: De geïnfecteerde/verwijderde code invullen
Als we overschakelen naar Sprite1, maken we een nieuwe lijst, timer. Deze lijst houdt bij hoe lang een stip is geïnfecteerd en na een bepaalde tijd sterft hij of herstelt hij, wordt hij onderdeel van de verwijderde/herstelde populatie en wordt weergegeven door een grijze stip, die niet opnieuw kan worden geïnfecteerd.
Kopieer de bovenstaande code en laten we er doorheen gaan. Wanneer we als een kloon beginnen, voegen we het totale aantal seconden dat het programma heeft gelopen in de timerlijst in, en we zullen dit controleren om te zien hoe lang het geïnfecteerd is en veranderen het om dienovereenkomstig te worden hersteld. We verbergen de timerlijst en schakelen dan het kloonkostuum naar het geïnfecteerde kostuum voor het geval dat, en laten dan onze sprite zien. We draaien nu een eeuwige lus, waarin meerdere dingen gebeuren: we vertellen de kloon om elke seconde naar een willekeurige positie te glijden, controleren of de geïnfecteerde variabele groter is dan de populatie zelf, in welk geval we het instellen op de populatie, en ten slotte gaan we het eerste item van de timerlijst controleren om te zien of het meer dan 5 seconden is geweest, en als dat waar is, schakelen we het kostuum over naar het herstelde kostuum zodat we het niet kunnen infecteren, en verwijderen dan het item uit de timer.
Aanbevolen:
RC V.E.P. Zeer eenvoudig vliegtuig, gebouwd met behulp van polystyreen pizzatrays - Ajarnpa
RC V.E.P. Zeer eenvoudig vliegtuig, gebouwd met behulp van polystyreen pizzatrays: ik heb meegedaan aan de wedstrijd Epilog VIII, als je dit project leuk vindt, stem dan alsjeblieft!https://www.instructables.com/contest/epilog8/Na het bouwen van 9 prototypes van de X- 37ABC, zonder een romp te kunnen ontwerpen die voldoende lift genereert, heb ik besloten om
Controle geleid over de hele wereld met behulp van internet met behulp van Arduino - Ajarnpa
Controle over de hele wereld via internet met Arduino: Hallo, ik ben Rithik. We gaan een internetgestuurde led maken met je telefoon. We gaan software gebruiken zoals Arduino IDE en Blynk. Het is eenvoudig en als het je gelukt is, kun je zoveel elektronische componenten bedienen als je wilt Dingen die we nodig hebben: Hardware:
Zeer helder fietslicht met behulp van aangepaste lichtpaneel-printplaten - Ajarnpa
Zeer helder fietslicht met behulp van aangepaste lichtpaneel-printplaten: als u een fiets bezit, weet u hoe onaangenaam kuilen in uw banden en uw lichaam kunnen zijn. Ik had genoeg van het opblazen van mijn banden, dus besloot ik mijn eigen led-paneel te ontwerpen met de bedoeling het als fietslicht te gebruiken. Een die zich richt op het zijn van E
Autonome regeling van het toerental van de motor met behulp van een feedbacksysteem van een op IR gebaseerde toerenteller - Ajarnpa
Autonome regeling van het toerental van de motor met behulp van feedbacksysteem van een op IR gebaseerde toerenteller: er is altijd behoefte aan automatisering van een proces, of het nu een eenvoudig/monsterlijk proces is. methoden om ons kleine stukje land water te geven / te irrigeren. Het probleem van geen huidige toevoerleiding
Zeer eenvoudige maar zeer effectieve grap (computergrap): 3 stappen
Zeer eenvoudige… maar zeer effectieve grap (Computer Prank): Deze Instructable is zeer eenvoudig, maar zeer effectief! Wat er zal gebeuren is: je verbergt alle pictogrammen op het bureaublad van het slachtoffer. Het slachtoffer zal in paniek raken als ze de computer zien nadat je de grap hebt uitgehaald. Dit kan de computer op geen enkele manier schaden