Mundarija:
- 1 -qadam: Asosiy sozlash
- 2 -qadam: Xavfli aholi uchun kodni o'rnatish
- 3 -qadam: yuqtirgan va o'chirilgan Sprite uchun kodni o'rnatish
- 4 -qadam: Aholining sezgir kodeksini to'ldirish
- 5 -qadam: zararlangan/o'chirilgan kodni to'ldirish
Video: (Juda oddiy) Kasalliklarni modellashtirish (Scratch yordamida): 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:22
Bugun biz kasallikning simulyatsiyasi bo'lamiz, bu har qanday kasallik emas, balki COVID-19. Bu simulyatsiya men havola qiladigan 3blue1brown videosidan ilhomlangan. Bu tortish va tushirish bo'lgani uchun, biz JS yoki Python bilan iloji boricha ko'proq ish qila olmaymiz, lekin chizishdan foydalanishning afzalliklari bor, shuning uchun agar siz JS bilan epidemiyani qanday modellashtirishni ko'rishni istasangiz, mening Men bu erda kasalliklarning tarqalishini modellashtirish haqida yozgan maqola. Endi, boshlaylik!
Eslatma: yuqoridagi rasm kvant9innovatsiyaning simulyatsiyasidan olingan (Instructables foydalanuvchisi emas), bu erda ko'rishingiz mumkin.
Ta'minot:
Sizga kerak bo'ladi:
- Scratch hisobi (bu erda ro'yxatdan o'tishingiz mumkin
- Sudrab tashlash haqidagi asosiy bilimlar (lekin men hali ham kodni o'taman)
- Siz dasturlashtira oladigan kompyuter yoki qurilma (ehtimol sizda, chunki siz buni o'qiyapsiz)
- Majburiy emas - 3b1b videoni tomosha qiling, bu sizga nima dasturlashimiz haqida tushuncha beradi.
1 -qadam: Asosiy sozlash
Birinchidan, loyiha tuzamiz, xohlagan narsangizga nom beramiz va keyin tuvaldagi mavjud sprite -ni o'chirib tashlaymiz. Buni spritdagi axlat tugmasini bosish orqali qilishingiz mumkin. Endi bizda bo'sh tuval bor va siz fon rangini xohlaganingizga o'zgartirishingiz mumkin.
Keyin, yangi sprite yarating va mavjud sprite -ni ishlatishning o'rniga, o'zingiznikini bo'yang. Buni ko'k nuqta qiling. Bu sprite jamoaning sezgir aholisini ifodalaydi, shuningdek bizda tiklangan/olib tashlangan va yuqtirgan populyatsiya bo'ladi, bu erda SIR (sezgir, yuqtirgan, tiklangan/olib tashlangan) modelining nomi kelib chiqadi. Spritni "yuqmagan" deb nomlaganingizga ishonch hosil qiling.
Endi yangi sprite yarating (yana) va uni sprite1 deb nomlang, biz ham o'zimizni bo'yab olamiz. Unga "Sprite1" deb nom bering va ikkita kostyum yarating, biri qizil nuqta, ikkinchisi kulrang nuqta bo'lishi kerak. Ularni mos ravishda kostyum1 va kostyum2 qiling. Bu ikkalasi yuqtirgan (qizil nuqta) va tiklangan/olib tashlangan (kulrang nuqta) populyatsiyalarni ifodalaydi.
2 -qadam: Xavfli aholi uchun kodni o'rnatish
Endi biz sezgir aholi kodini o'rnatdik. Biz birinchi navbatda ikkita o'zgaruvchini yaratamiz: odamlar va yuqtirganlar. "Odamlar" o'zgaruvchisi aholi sonini ifodalaydi va biz simulyatsiyamizda qancha odam bo'lishini xohlaganimizga qarab o'zgartirilishi mumkin va simulyatsiya shunga mos ravishda o'zgaradi. Biz, shuningdek, yuqtirgan o'zgaruvchini yaratamiz va bu kasallikka chalingan aholini ko'rsatadi. Bu ikkala o'zgaruvchi ham global o'zgaruvchilar bo'lishi kerak, ya'ni ularni barcha spritlarda ishlatish mumkin.
Keyin yuqoridagi kodni infektsiyalanmagan spritga nusxalash. Keling, u nima qilayotganini ko'rib chiqaylik. Dastur boshlanganda, sprite yashiringan va shuning uchun biz klonlar uchun bir xil kodni spritga kiritmasligimiz kerak, bu yordam beradi. Keyin, biz ikkita o'zgaruvchini (yuqtirganlar va odamlar) o'zimiz xohlagan darajaga qo'yamiz, bu holda biz yuqtirganlarni 1 va odamlarni 100 ga qo'yamiz. Bu shuni anglatadiki, biz infektsiyani bitta odamdan boshlaymiz va jami 100 kishi, yuqtirgan odamni hisobga olmaganda. Biz loopni ishga tushiramiz, bu odamlarning o'zgaruvchisiga teng bo'lgan miqdorni bajaradi, bu holda 100. Biz tasodifiy pozitsiyaga o'tamiz va keyin sprite klonini yaratamiz. Biz tasodifiy pozitsiyaga boramiz, chunki bizda bir yo'nalishda harakatlanadigan nuqta chizig'i yo'q va uning o'rniga tasodifiy joylashuvlar paydo bo'ladi.
3 -qadam: yuqtirgan va o'chirilgan Sprite uchun kodni o'rnatish
Endi "Sprite1" sprite -ga o'ting va yuqoridagi kodni nusxa ko'chiring. Keling, buni ko'rib chiqaylik. Dastur ishga tushganda, sprite yashiriladi, so'ngra zararlangan miqdor uchun pastadir ishlaydi. U tasodifiy pozitsiyaga o'tadi va o'z klonini yaratadi.
4 -qadam: Aholining sezgir kodeksini to'ldirish
Keling, nima qilishimiz kerakligini ko'rib chiqaylik:
- Infektsiya
- Ko'chirish
Infektsiyalanmagan sprite -ga o'ting, yuqoridagi kodni nusxa ko'chiring va uning infektsiya va harakatni qanday yakunlaganini ko'rib chiqamiz. Birinchidan, bu bitta kostyumga to'g'ri keladi va bu haqiqatan ham kerak emas, lekin bizda u bor, shuning uchun agar biz qo'shimcha qo'shishga qaror qilsak, biz kostyumlarni yangilariga almashtirishdan xavotirlanmasligimiz kerak. Keyinchalik, u o'zini ko'rsatadi. Agar eslasangiz, biz asl spritni yashirdik, shuning uchun klonlar ham yashiriladi, biz xohlamaymiz. Keyin biz abadiy tsiklni ishga tushiramiz, u butun dasturni kimdir to'xtatish belgisini bosmaguncha ishlaydi. Biz tasodifiy pozitsiyani 1 soniya davomida siljitamiz va keyin chekkada ekanligimizni tekshiramiz, bu holda biz undan sakrab chiqamiz. Agar biz qizil rangga tegmoqchi bo'lsak, biz Sprite1 -ni (zararlangan/olib tashlangan populyatsiyani) klonlaymiz va zararlangan o'zgaruvchini 1 ga ko'paytiramiz, so'ngra bizning sprite -ni o'chirib tashlaymiz.
5 -qadam: zararlangan/o'chirilgan kodni to'ldirish
Sprite1 -ga o'tib, biz yangi ro'yxat tuzamiz, taymer. Bu ro'yxat nuqta qancha vaqt zararlanganligini kuzatib boradi va ma'lum vaqtdan so'ng u o'ladi yoki tiklanadi, olib tashlangan/tiklangan populyatsiyaning bir qismiga aylanadi va kulrang nuqta bilan ifodalanadi, uni qayta infektsiyalash mumkin emas.
Yuqoridagi kodni nusxa ko'chiring va o'taylik. Biz klon sifatida boshlaganimizda, biz taymerlar ro'yxatiga dastur ishlagan soniyalar sonini kiritamiz va biz uni tekshiramiz, u qancha vaqt davomida zararlanganligini va shunga mos ravishda tiklanishini o'zgartiramiz. Biz taymerlar ro'yxatini yashiramiz, shundan keyingina klon kostyumini zararlangan kostyumga o'tkazamiz va keyin spreyimizni ko'rsatamiz. Biz hozirda abadiy tsiklni ishga tushiramiz, unda bir nechta narsalar sodir bo'ladi: biz klonga har soniyada tasodifiy holatga o'tishni aytamiz, zararlangan o'zgaruvchining populyatsiyadan kattaroqligini tekshiramiz, bu holda biz uni populyatsiyaga o'rnatamiz va Nihoyat, biz boramiz va taymerlar ro'yxatining birinchi bandini 5 soniyadan ko'proq vaqt o'tganini tekshiramiz va agar rost bo'lsa, biz kostyumni tiklangan kostyumga o'tkazamiz, shuning uchun yuqtirolmaymiz va taymerdan elementni o'chirib tashlaymiz.
Tavsiya:
Juda oddiy arzon USB -LED (lar) (va boshqa narsalar): 16 qadam
Super oddiy arzon USB -LED (lar) va boshqa narsalar hamma osonlikcha tugaydigan batareyalarga qaramasdan, o'z USB -larimizni ishlab chiqarishni o'rgandi
USB Type-C PD Powerbank-ni yaratish juda oddiy usul: 5 qadam
USB Type-C PD Powerbank-ni yaratish juda oddiy usul: Men sizga bu kichik loyihada DIY USB Type-C PD-ni qanday qilib oddiy usulda yaratishni ko'rsataman. Buning uchun men birinchi navbatda Aliexpress -dan olgan IP5328P IC -ga asoslangan powerbank PCB -ni sinab ko'raman. O'lchovlar bizga qanchalik mos ekanligini ko'rsatadi
DIY modullari yordamida uyni avtomatlashtirishni boshlashning juda oddiy usuli: 6 qadam
DIY modullaridan foydalangan holda uyni avtomatlashtirishni boshlashning juda oddiy usuli: men uy yordamchisiga bir nechta DIY sensorlarini qo'shishga qaror qilganimda, juda hayron bo'ldim. ESPHome -dan foydalanish juda oddiy va bu postda biz GPIO pinini boshqarishni, shuningdek, haroratni olishni o'rganamiz. namlik ma'lumotlari simsiz tarmoqdan
DIY - juda arzon va juda ajoyib boshq reaktor: 8 qadam (rasmlar bilan)
DIY - Super arzon va juda ajoyib boshq reaktor: Men sizga ko'rsataman, qanday qilib siz uyda juda arzon boshq reaktor yasashingiz mumkin. Ishni boshlaylik. Umumiy loyiha menga 1 dollardan kam, men faqat LED va har birini sotib olishim kerak edi. LED menga 2,5 INRga tushdi va men 25 dan foydalandim, shuning uchun umumiy xarajat 1dan kam
Juda oddiy Lekin juda samarali prank (kompyuter prank): 3 qadam
Juda oddiy … Lekin juda samarali prank (kompyuter prank): Bu ko'rsatma juda oddiy, lekin juda samarali! Nima bo'ladi: Siz jabrlanuvchining ish stolidagi barcha ikonkalarni yashirasiz. Kompyuterni ko'rganingizdan so'ng, jabrlanuvchi dahshatga tushadi. Bu kompyuterga hech qanday zarar etkaza olmaydi