Spisu treści:

(Bardzo proste) Modelowanie choroby (przy użyciu Scratch): 5 kroków
(Bardzo proste) Modelowanie choroby (przy użyciu Scratch): 5 kroków

Wideo: (Bardzo proste) Modelowanie choroby (przy użyciu Scratch): 5 kroków

Wideo: (Bardzo proste) Modelowanie choroby (przy użyciu Scratch): 5 kroków
Wideo: Jak uszyć TRENCZ - Krok po kroku - Wykrój Strefa Kroju i Szycia 2024, Listopad
Anonim
(Bardzo proste) Modelowanie chorób (przy użyciu Scratch)
(Bardzo proste) Modelowanie chorób (przy użyciu Scratch)

Dzisiaj będziemy symulować wybuch choroby, przy czym będzie to jakakolwiek choroba, niekoniecznie COVID-19. Ta symulacja została zainspirowana filmem 3blue1brown, do którego podam link. Ponieważ jest to metoda przeciągania i upuszczania, nie możemy zrobić tyle, ile możemy z JS lub Python, ale są również korzyści z używania scratch, więc jeśli chcesz zobaczyć, jak modelować epidemię za pomocą JS, możesz wyświetlić moje artykuł, który napisałem na temat modelowania ognisk chorób tutaj. Teraz zacznijmy!

Uwaga: Powyższy obrazek pochodzi z symulacji przeprowadzonej przez quantum9innovation (nie użytkownika Instructables), którą możesz zobaczyć tutaj.

Kieszonkowe dzieci:

Będziesz potrzebował:

  • Konto Scratch (możesz się zarejestrować tutaj
  • Podstawowa wiedza na temat przeciągania i upuszczania (ale nadal przejdę przez kod)
  • Komputer lub urządzenie, które możesz zaprogramować (które prawdopodobnie masz, ponieważ to czytasz)
  • Opcjonalnie - obejrzyj film 3b1b, dzięki któremu dowiesz się, co programujemy.

Krok 1: Konfiguracja podstawowa

Podstawowe ustawienia
Podstawowe ustawienia

Najpierw stwórzmy projekt, nazwijmy go jak chcesz, a następnie usuńmy istniejącego duszka na kanwie. Możesz to zrobić, klikając przycisk kosza na duszku. Teraz mamy puste płótno i możesz zmienić kolor tła na dowolny.

Następnie utwórz nowego duszka i zamiast używać istniejącego duszka, namaluj własnego. Zrób z tego niebieską kropkę. Ten duszek reprezentuje podatną populację społeczności, będziemy też mieli populację odzyskaną/usuniętą i zainfekowaną, od której pochodzi nazwa modelu, SIR (podatny, zainfekowany, odzyskany/usunięty). Upewnij się, że nazwałeś duszka „niezainfekowany”.

Teraz utwórz nowego duszka (znowu) i nazwij go duszkiem1, którego również sami namalujemy. Nadaj mu nazwę „Sprite1” i utwórz 2 kostiumy, jeden powinien być czerwoną kropką, a drugi szarą kropką. Uczyń je odpowiednio kostiumem1 i kostiumem2. Te dwie reprezentują populacje zainfekowane (czerwona kropka) i odzyskane/usunięte (szara kropka).

Krok 2: Przygotowanie kodu dla podatnej populacji

Przygotowanie kodeksu dla podatnej populacji
Przygotowanie kodeksu dla podatnej populacji

Ustawiliśmy teraz kod populacji wrażliwej. Najpierw tworzymy 2 zmienne: ludzi i zainfekowanych. Zmienna „Ludzie” reprezentuje populację i może być zmieniana w zależności od tego, ile osób chcemy w naszej symulacji, a symulacja odpowiednio się zmieni. Tworzymy również zainfekowaną zmienną, która reprezentuje populację, która ma/miała chorobę. Obie te zmienne powinny być zmiennymi globalnymi, co oznacza, że mogą być używane we wszystkich duszkach.

Następnie skopiuj powyższy kod do niezainfekowanego duszka. Przejdźmy przez to, co robi. Kiedy program się uruchamia, duszek jest ukryty, dzięki czemu nie musimy umieszczać tego samego kodu dla klonów w samym duszku, co pomaga. Następnie ustawiamy dwie zmienne (zainfekowaną i ludzi) na takie, jakie chcemy, aby były, w tym przypadku ustawiamy zarażonych na 1, a ludzi na 100. Oznacza to, że zaczynamy od jednej osoby, która jest zarażona i łącznie 100 osób, nie wliczając osoby zakażonej. Następnie uruchamiamy pętlę, w której uruchamiamy kwotę, jaką zmienna people wynosi w tym przypadku 100. Przechodzimy do losowej pozycji, a następnie tworzymy klon duszka. Idziemy do losowej pozycji, ponieważ w ten sposób nie mamy linii kropek poruszających się w jednym kierunku, a zamiast tego odradzamy się w losowych pozycjach.

Krok 3: Konfigurowanie kodu dla zainfekowanego i usuniętego duszka

Konfigurowanie kodu dla zainfekowanego i usuniętego duszka
Konfigurowanie kodu dla zainfekowanego i usuniętego duszka

Teraz przełącz się na duszka „Sprite1”, a następnie skopiuj powyższy kod. Przejdźmy przez to. Gdy program się uruchamia, duszek jest ukrywany, a następnie uruchamia pętlę, aby ustalić wartość zainfekowania. Przechodzi do losowej pozycji i tworzy swojego klona.

Krok 4: Wypełnianie kodu podatnej populacji

Wypełnianie kodu podatnej populacji
Wypełnianie kodu podatnej populacji

Przejdźmy przez rzeczy, które musimy zrobić:

  • Infekować
  • Ruszaj się

Przełącz się na duszka Niezainfekowany, skopiuj powyższy kod i zobaczmy, jak kończy infekowanie i przenoszenie. Po pierwsze, chodzi o kostium pierwszy i naprawdę nie jest to konieczne, ale mamy go tam, więc jeśli zdecydujemy się dodać więcej, nie musimy się martwić, że zmienimy kostiumy na nowe, które dodaliśmy. Następnie pokazuje się. Jeśli pamiętasz, ukryliśmy oryginalnego duszka, więc i klony zostaną ukryte, czego nie chcemy. Następnie uruchamiamy pętlę w nieskończoność, która będzie uruchamiać cały program, dopóki ktoś nie kliknie znaku stop na zadrapaniu. Szybujemy do losowej pozycji przez 1 sekundę, a następnie sprawdzamy, czy jesteśmy na krawędzi, w takim przypadku odbijamy się od niej. Następnie, jeśli dotykamy koloru czerwonego, klonujemy Sprite1 (populację zainfekowaną/usuniętą) i zwiększamy zainfekowaną zmienną o 1, po czym usuwamy naszego duszka.

Krok 5: Uzupełnianie zainfekowanego/usuniętego kodu

Uzupełnianie zainfekowanego/usuniętego kodu
Uzupełnianie zainfekowanego/usuniętego kodu

Przełączając się do Sprite1, tworzymy nową listę, timer. Ta lista będzie śledzić, jak długo kropka jest zainfekowana, a po pewnym czasie albo umiera, albo wraca do zdrowia, staje się częścią usuniętej/odzyskanej populacji i jest reprezentowana przez szarą kropkę, której nie można ponownie zainfekować.

Skopiuj powyższy kod i przejdźmy przez to. Kiedy zaczynamy jako klon, wstawiamy łączną liczbę sekund, przez które program działał, na liście liczników czasu, a my sprawdzimy, jak długo był zainfekowany i odpowiednio zmienimy, aby został odzyskany. Ukrywamy listę timerów, a następnie na wszelki wypadek zmieniamy kostium klona na kostium zainfekowany, a następnie pokazujemy naszego duszka. Teraz uruchamiamy pętlę wieczną, w której dzieje się wiele rzeczy: mówimy klonowi, aby co sekundę przesuwał się do losowej pozycji, sprawdzamy, czy zainfekowana zmienna jest większa niż sama populacja, w takim przypadku ustawiamy ją na populację i na koniec sprawdzamy pierwszy element na liście timera, aby zobaczyć, czy minęło więcej niż 5 sekund, a jeśli to prawda, zmieniamy kostium na odzyskany, aby nie móc zainfekować, a następnie usuwamy element z timera.

Zalecana: