สารบัญ:

(ง่ายมาก) การสร้างแบบจำลองโรค (โดยใช้ Scratch): 5 ขั้นตอน
(ง่ายมาก) การสร้างแบบจำลองโรค (โดยใช้ Scratch): 5 ขั้นตอน

วีดีโอ: (ง่ายมาก) การสร้างแบบจำลองโรค (โดยใช้ Scratch): 5 ขั้นตอน

วีดีโอ: (ง่ายมาก) การสร้างแบบจำลองโรค (โดยใช้ Scratch): 5 ขั้นตอน
วีดีโอ: 5 ขั้นตอนทำแอปบนมือถือแบบง่ายเว่อร์ | เฟื่องลดา 2024, พฤศจิกายน
Anonim
(ง่ายมาก) การสร้างแบบจำลองโรค (โดยใช้ Scratch)
(ง่ายมาก) การสร้างแบบจำลองโรค (โดยใช้ Scratch)

วันนี้เราจะจำลองการระบาดของโรค โดยให้เป็นโรคอะไรก็ได้ ไม่จำเป็นต้องเป็น COVID-19 การจำลองนี้ได้รับแรงบันดาลใจจากวิดีโอโดย 3blue1brown ซึ่งฉันจะลิงก์ไป เนื่องจากนี่คือการลากและวาง เราจึงไม่สามารถทำอะไรได้มากเท่ากับ JS หรือ Python แต่การใช้ scratch ก็มีประโยชน์เช่นกัน ดังนั้น หากคุณต้องการดูวิธีจำลองการระบาดด้วย JS คุณสามารถดู บทความที่ฉันเขียนเกี่ยวกับแบบจำลองการระบาดของโรคที่นี่ เอาล่ะ มาเริ่มกันเลย!

หมายเหตุ: ภาพด้านบนมาจากการจำลองโดย quantum9innovation (ไม่ใช่ผู้ใช้ Instructables) ซึ่งคุณสามารถดูได้ที่นี่

เสบียง:

คุณจะต้องการ:

  • บัญชี Scratch (คุณสามารถสมัครได้ที่นี่
  • ความรู้พื้นฐานเกี่ยวกับการลากและวาง (แต่ฉันจะยังอ่านโค้ดต่อไป)
  • คอมพิวเตอร์หรืออุปกรณ์ที่คุณใช้เขียนโปรแกรมได้ (ซึ่งคุณน่าจะมีอยู่แล้ว เนื่องจากคุณกำลังอ่านข้อความนี้อยู่)
  • ไม่บังคับ - ชมวิดีโอ 3b1b ซึ่งจะทำให้คุณทราบว่าเรากำลังเขียนโปรแกรมอะไร

ขั้นตอนที่ 1: การตั้งค่าพื้นฐาน

การตั้งค่าพื้นฐาน
การตั้งค่าพื้นฐาน

ขั้นแรก มาสร้างโปรเจ็กต์ ตั้งชื่อตามที่คุณต้องการ จากนั้นลบสไปรต์ที่มีอยู่บนผืนผ้าใบ คุณสามารถทำได้โดยคลิกปุ่มถังขยะบนสไปรท์ ตอนนี้ เรามีผ้าใบเปล่า และคุณสามารถเปลี่ยนสีพื้นหลังเป็นอะไรก็ได้ที่คุณต้องการ

ถัดไป สร้างสไปรท์ใหม่ แทนที่จะใช้สไปรท์ที่มีอยู่ ให้ระบายสีของคุณเอง ทำให้เป็นจุดสีน้ำเงิน เทพดานี้แสดงถึงประชากรที่อ่อนแอของชุมชน และเราจะมีประชากรที่ฟื้นตัว/ถูกลบและติดเชื้อ ซึ่งเป็นที่มาของชื่อของแบบจำลอง SIR (อ่อนแอ ติดเชื้อ ฟื้นตัว/ถูกลบออก) อย่าลืมตั้งชื่อสไปรต์ว่า "ไม่ติดเชื้อ"

ตอนนี้ สร้างสไปรท์ใหม่ (อีกครั้ง) และตั้งชื่อมันว่า sprite1 ซึ่งเราจะระบายสีเองด้วย ตั้งชื่อว่า "Sprite1" และสร้างชุด 2 ชุด ชุดหนึ่งควรเป็นจุดสีแดง และอีกชุดหนึ่งเป็นจุดสีเทา ทำให้เป็นชุดที่ 1 และชุดที่ 2 ตามลำดับ ทั้งสองเป็นตัวแทนของประชากรที่ติดเชื้อ (จุดสีแดง) และประชากรที่ฟื้นตัว/ถูกลบออก (จุดสีเทา)

ขั้นตอนที่ 2: การตั้งค่ารหัสสำหรับประชากรที่อ่อนแอ

การตั้งรหัสสำหรับประชากรที่อ่อนแอ
การตั้งรหัสสำหรับประชากรที่อ่อนแอ

ตอนนี้เราตั้งค่ารหัสประชากรที่อ่อนแอ ก่อนอื่นเราสร้างตัวแปร 2 ตัว: ผู้คนและผู้ติดเชื้อ ตัวแปร "ผู้คน" แสดงถึงประชากรและสามารถเปลี่ยนแปลงได้ตามจำนวนคนที่เราต้องการในการจำลองของเรา และการจำลองจะเปลี่ยนไปตามนั้น เรายังสร้างตัวแปรที่ติดเชื้อ ซึ่งแสดงถึงประชากรที่มี/มีโรค ตัวแปรทั้งสองนี้ควรเป็นตัวแปรส่วนกลาง ซึ่งหมายความว่าสามารถใช้ได้กับสไปรต์ทั้งหมด

ถัดไป คัดลอกโค้ดด้านบนลงในสไปรต์ที่ไม่ติดเชื้อ มาดูกันว่ามันทำอะไรได้บ้าง เมื่อโปรแกรมเริ่มทำงาน สไปรท์จะถูกซ่อนไว้ ดังนั้นเราจึงไม่ต้องใส่โค้ดเดียวกันสำหรับโคลนลงในสไปรต์เอง ซึ่งช่วยได้ จากนั้น เราตั้งค่าตัวแปรสองตัวแปร (ผู้ติดเชื้อและคน) ให้เป็นสิ่งที่เราต้องการให้เป็น ในกรณีนี้ เราตั้งค่าผู้ติดเชื้อเป็น 1 คน และคนเป็น 100 คน ซึ่งหมายความว่าเราเริ่มต้นด้วยผู้ติดเชื้อ 1 คน และคนทั้งหมด 100 คน ไม่รวมผู้ติดเชื้อ จากนั้นเราเรียกใช้ลูปซึ่งเรียกใช้จำนวนที่ตัวแปร people คือ ในกรณีนี้คือ 100 เราไปที่ตำแหน่งสุ่มแล้วสร้างโคลนของสไปรต์ เราไปที่ตำแหน่งสุ่มเพราะวิธีนี้เราไม่มีเส้นของจุดที่เคลื่อนที่ไปในทิศทางเดียว แต่จะวางไข่ในตำแหน่งแบบสุ่มแทน

ขั้นตอนที่ 3: การตั้งค่ารหัสสำหรับ Sprite ที่ติดเชื้อและถูกลบออก

การตั้งค่ารหัสสำหรับสไปรท์ที่ติดเชื้อและถูกลบออก
การตั้งค่ารหัสสำหรับสไปรท์ที่ติดเชื้อและถูกลบออก

ตอนนี้ เปลี่ยนเป็นสไปรท์ "Sprite1" แล้วคัดลอกโค้ดด้านบน ผ่านมันไปกันเถอะ เมื่อโปรแกรมเริ่มทำงาน สไปรต์จะถูกซ่อน จากนั้นรันวนซ้ำตามจำนวนที่ตั้งค่าการติดไวรัส มันไปที่ตำแหน่งสุ่มและสร้างโคลนของตัวเอง

ขั้นตอนที่ 4: กรอกรหัสประชากรที่อ่อนแอ

การกรอกรหัสประชากรที่อ่อนแอ
การกรอกรหัสประชากรที่อ่อนแอ

มาดูสิ่งที่เราต้องทำกัน:

  • ติดเชื้อ
  • เคลื่อนไหว

เปลี่ยนไปใช้สไปรต์ที่ไม่ติดเชื้อ คัดลอกโค้ดด้านบน และมาดูวิธีการทำให้การติดไวรัสและการย้ายเสร็จสมบูรณ์ อย่างแรก ไปที่คอสตูม 1 และไม่จำเป็นจริงๆ แต่เรามีมันอยู่แล้ว ดังนั้นถ้าเราตัดสินใจที่จะเพิ่มมากกว่านี้ เราไม่ต้องกังวลว่าจะเปลี่ยนคอสตูมเป็นชุดใหม่ที่เราเพิ่มเข้าไป ต่อไปก็แสดงให้เห็นเอง ถ้าคุณจำได้ เราซ่อนสไปรท์ดั้งเดิม ดังนั้นโคลนก็จะถูกซ่อนด้วย ซึ่งเราไม่ต้องการ จากนั้นเราจะเรียกใช้การวนซ้ำตลอดไป ซึ่งจะเรียกใช้โปรแกรมทั้งหมดจนกว่าจะมีคนคลิกเครื่องหมายหยุดตั้งแต่เริ่มต้น เราร่อนไปยังตำแหน่งสุ่มเป็นเวลา 1 วินาที จากนั้นตรวจสอบว่าเราอยู่บนขอบหรือไม่ ซึ่งในกรณีนี้เราจะกระเด็นไป ต่อไป หากเราแตะสีแดง เราจะโคลนสไปรท์1 (ประชากรที่ติดเชื้อ/ถูกลบ) และเพิ่มตัวแปรที่ติดเชื้อ 1 ตัว ตามด้วยการลบสไปรท์ของเรา

ขั้นตอนที่ 5: กรอกรหัสที่ติดไวรัส/ลบออก

กรอกรหัสที่ติดเชื้อ/ลบออก
กรอกรหัสที่ติดเชื้อ/ลบออก

เปลี่ยนเป็น Sprite1 เราสร้างรายการใหม่ ตัวจับเวลา รายการนี้จะติดตามระยะเวลาที่จุดติดเชื้อ และหลังจากระยะเวลาหนึ่ง จุดนั้นอาจตายหรือฟื้นตัว กลายเป็นส่วนหนึ่งของประชากรที่ถูกนำออก/ฟื้นตัว และมีจุดสีเทาแทน ซึ่งไม่สามารถแพร่เชื้อซ้ำได้

คัดลอกรหัสด้านบนและดำเนินการต่อไป เมื่อเราเริ่มต้นเป็นโคลน เราจะใส่จำนวนวินาทีทั้งหมดที่โปรแกรมทำงานอยู่ในรายการตัวจับเวลา และเราจะตรวจสอบสิ่งนี้เพื่อดูว่ามันติดไวรัสมานานแค่ไหนแล้วจึงเปลี่ยนเพื่อให้กู้คืนได้ตามนั้น เราซ่อนรายการตัวจับเวลาแล้วเปลี่ยนชุดโคลนเป็นชุดที่ติดเชื้อ เผื่อไว้ แล้วแสดงสไปรต์ของเรา ตอนนี้เรารันวนซ้ำแบบถาวร ซึ่งมีหลายสิ่งหลายอย่างเกิดขึ้น: เราบอกให้โคลนร่อนไปยังตำแหน่งสุ่มทุก ๆ วินาที ตรวจสอบว่าตัวแปรที่ติดเชื้อนั้นมากกว่าตัวประชากรเองหรือไม่ ในกรณีนี้ เราตั้งค่าให้เป็นจำนวนประชากร และ สุดท้ายเราไปตรวจสอบรายการแรกของตัวจับเวลาเพื่อดูว่าเกิน 5 วินาทีหรือไม่และถ้าเป็นจริงเราจะเปลี่ยนเครื่องแต่งกายเป็นชุดที่กู้คืนเพื่อไม่ให้ติดเชื้อแล้วจึงลบรายการออกจากตัวจับเวลา

แนะนำ: