İçindekiler:

(Çok Basit) Hastalık Modellemesi (Scratch Kullanarak): 5 Adım
(Çok Basit) Hastalık Modellemesi (Scratch Kullanarak): 5 Adım

Video: (Çok Basit) Hastalık Modellemesi (Scratch Kullanarak): 5 Adım

Video: (Çok Basit) Hastalık Modellemesi (Scratch Kullanarak): 5 Adım
Video: BU HAREKETİ SADECE KIZLAR YAPABİLİYOR! 2024, Temmuz
Anonim
(Çok Basit) Hastalık Modellemesi (Scratch Kullanarak)
(Çok Basit) Hastalık Modellemesi (Scratch Kullanarak)

Bugün, mutlaka COVID-19 olması gerekmeyen herhangi bir hastalık olan bir hastalık salgınını simüle edeceğiz. Bu simülasyon, bağlantı vereceğim 3blue1brown'ın bir videosundan ilham aldı. Bu sürükle ve bırak olduğundan, JS veya Python ile elimizden gelenin en iyisini yapamıyoruz, ancak sıfırdan kullanmanın da faydaları var, bu nedenle, JS ile bir salgının nasıl modelleneceğini görmek istiyorsanız, Burada hastalık salgınlarını modelleme üzerine yazdığım makale. Şimdi başlayalım!

Not: Yukarıdaki görüntü, burada görüntüleyebileceğiniz quantum9innovation (Instructables kullanıcısı değil) tarafından yapılan bir simülasyondan alınmıştır.

Gereçler:

İhtiyacın olacak:

  • Bir Kazı Kazan Hesabı (buradan kaydolabilirsiniz)
  • Temel sürükle ve bırak bilgisi (ancak yine de kodu inceleyeceğim)
  • Programlayabileceğiniz bir bilgisayar veya cihaz (bunu okuduğunuza göre muhtemelen sahip olduğunuz)
  • İsteğe bağlı - 3b1b videosunu izleyin, size ne programladığımız hakkında bir fikir verecektir.

Adım 1: Temel Kurulum

Temel kurulum
Temel kurulum

İlk önce bir proje oluşturalım, onu istediğiniz gibi adlandıralım ve ardından tuval üzerindeki mevcut hareketli grafiği silelim. Bunu, sprite üzerindeki çöp kutusu düğmesine tıklayarak yapabilirsiniz. Artık boş bir tuvalimiz var ve arka plan rengini istediğiniz gibi değiştirebilirsiniz.

Ardından, yeni bir hareketli grafik oluşturun ve mevcut bir hareketli grafiği kullanmak yerine kendinizinkini boyayın. Mavi nokta yap. Bu hareketli grafik, topluluğun hassas popülasyonunu temsil eder ve ayrıca, SIR (duyarlı, enfekte, iyileştirilmiş/kaldırılmış) modelin adının geldiği iyileştirilmiş/kaldırılmış ve enfekte olmuş bir popülasyonumuz olacaktır. Sprite'ı "enfekte edilmemiş" olarak adlandırdığınızdan emin olun.

Şimdi, yeni bir hareketli grafik oluşturun (tekrar) ve onu kendimiz de boyayacağımız hareketli grafik1 olarak adlandırın. "Sprite1" olarak adlandırın ve biri kırmızı, diğeri gri nokta olmak üzere 2 kostüm oluşturun. Onları sırasıyla kostüm1 ve kostüm2 yapın. Bu ikisi, enfekte olmuş (kırmızı nokta) ve kurtarılmış/kaldırılmış (gri nokta) popülasyonları temsil eder.

Adım 2: Duyarlı Nüfus için Kodu Ayarlama

Duyarlı Nüfus için Kodun Ayarlanması
Duyarlı Nüfus için Kodun Ayarlanması

Şimdi duyarlı popülasyon kodunu ayarladık. Önce 2 değişken oluşturuyoruz: insanlar ve enfekte. "Kişiler" değişkeni popülasyonu temsil eder ve simülasyonumuzda kaç kişi istediğimize göre değiştirilebilir ve simülasyon buna göre değişecektir. Ayrıca enfekte bir değişken yaratırız ve bu, hastalığı olan/hastalığı olan popülasyonu temsil eder. Bu değişkenlerin her ikisi de global değişkenler olmalıdır, yani tüm sprite'larda kullanılabilirler.

Ardından, yukarıdaki kodu virüs bulaşmamış hareketli grafiğin içine kopyalayın. Ne yaptığına geçelim. Program başladığında, hareketli grafik gizlenir ve bu, klonlar için aynı kodu hareketli grafiğin kendisine koymak zorunda kalmamamız içindir, bu da yardımcı olur. Ardından, iki değişkeni (enfekteli ve insanlar) olmasını istediğimiz şeye ayarladık, bu durumda enfekte olanı 1'e ve insanları 100'e ayarladık. Bu, enfekte olan bir kişi ve toplam 100 kişi ile başladığımız anlamına geliyor, enfekte kişi dahil değil. Daha sonra bir döngü çalıştırırız, bu durumda insanlar değişkeninin miktarı çalıştırılır, bu durumda, 100. Rastgele bir konuma gidiyoruz ve sonra hareketli grafiğin bir klonunu oluşturuyoruz. Rastgele bir konuma gidiyoruz çünkü bu şekilde tek yönde hareket eden bir nokta çizgimiz yok ve bunun yerine rastgele konumlarda ortaya çıkıyoruz.

Adım 3: Etkilenen ve Kaldırılan Sprite İçin Kodu Ayarlama

Etkilenen ve Kaldırılan Sprite İçin Kodu Ayarlama
Etkilenen ve Kaldırılan Sprite İçin Kodu Ayarlama

Şimdi "Sprite1" hareketli grafiğine geçin ve ardından yukarıdaki kodu kopyalayın. Onu geçelim. Program başladığında, hareketli grafik gizlenir ve ardından virüs bulaşan miktar için bir döngü çalıştırır. Rastgele bir konuma gider ve kendisinin bir klonunu oluşturur.

Adım 4: Duyarlı Nüfus Kodunun Tamamlanması

Duyarlı Nüfus Kodunun Doldurulması
Duyarlı Nüfus Kodunun Doldurulması

Gelelim yapmamız gerekenlere:

  • enfekte etmek
  • Hareket

Uninfected sprite'a geçin, yukarıdaki kodu kopyalayın ve bulaşmayı ve taşımayı nasıl tamamladığına geçelim. Birincisi, kostüm bire gidiyor ve bu gerçekten gerekli değil, ama biz orada var, bu yüzden daha fazlasını eklemeye karar verirsek, eklediğimiz kostümleri yenileriyle değiştirme konusunda endişelenmemize gerek yok. Daha sonra kendini gösterir. Hatırlarsanız, orijinal sprite'ı sakladık, böylece klonlar da gizlenecek, ki bu istemiyoruz. Ardından, birisi sıfırdan dur işaretine tıklayana kadar tüm programı çalıştıracak bir sonsuza kadar döngü çalıştırırız. 1 saniye boyunca rastgele bir pozisyona süzülür ve sonra kenarda olup olmadığımızı kontrol ederiz, bu durumda sekeriz. Daha sonra, kırmızı renge dokunuyorsak, Sprite1'i (enfekte/kaldırılan popülasyon) klonlarız ve virüslü değişkeni 1 artırırız ve ardından hareketli grafiğimizi sileriz.

Adım 5: Etkilenen/Kaldırılan Kodun Tamamlanması

Etkilenen/Kaldırılan Kodun Tamamlanması
Etkilenen/Kaldırılan Kodun Tamamlanması

Sprite1'e geçerek yeni bir liste oluşturuyoruz, zamanlayıcı. Bu liste, bir noktanın ne kadar süreyle enfekte olduğunu takip eder ve belirli bir süre sonra ya ölür ya da iyileşir, kaldırılan/kurtarılan popülasyonun bir parçası olur ve yeniden enfekte edilemeyen gri bir nokta ile temsil edilir.

Yukarıdaki kodu kopyalayın ve üzerinden geçelim. Bir klon olarak başladığımızda, programın çalıştığı toplam saniye miktarını zamanlayıcı listesine ekleriz ve ne kadar süredir bulaştığını görmek için bunu kontrol eder ve buna göre kurtarılması için değiştiririz. Zamanlayıcı listesini gizleriz ve sonra klon kostümünü her ihtimale karşı virüslü kostüme çeviririz ve ardından sprite'ımızı gösteririz. Şimdi, birden çok şeyin gerçekleştiği bir sonsuza kadar döngü çalıştırıyoruz: klona her saniyede bir rastgele bir konuma kaymasını söylüyoruz, virüslü değişkenin popülasyonun kendisinden büyük olup olmadığını kontrol ediyoruz, bu durumda onu popülasyona ayarladık ve son olarak, 5 saniyeden fazla olup olmadığını görmek için zamanlayıcı listesinin ilk öğesini kontrol ediyoruz ve eğer doğruysa, bulaşmamak için kostümü kurtarılan kostüme değiştiriyoruz ve ardından öğeyi zamanlayıcıdan siliyoruz.

Önerilen: