جدول المحتويات:

(بسيط جدًا) نمذجة المرض (باستخدام سكراتش): 5 خطوات
(بسيط جدًا) نمذجة المرض (باستخدام سكراتش): 5 خطوات

فيديو: (بسيط جدًا) نمذجة المرض (باستخدام سكراتش): 5 خطوات

فيديو: (بسيط جدًا) نمذجة المرض (باستخدام سكراتش): 5 خطوات
فيديو: CoronaVirus protection Project in Scratch مشروع بلغة سكراتش للوقاية من كورونا فايروس وتأثيرها 2024, يوليو
Anonim
(بسيط جدًا) نمذجة المرض (باستخدام سكراتش)
(بسيط جدًا) نمذجة المرض (باستخدام سكراتش)

اليوم ، سنحاكي تفشي المرض ، مع كونه أي مرض ، وليس بالضرورة COVID-19. هذه المحاكاة مستوحاة من فيديو بثته 3blue1brown ، والذي سأرتبط به. نظرًا لأن هذا هو السحب والإفلات ، فلا يمكننا فعل ما يمكننا فعله باستخدام JS أو Python ، ولكن هناك فوائد لاستخدام نقطة الصفر أيضًا ، لذلك ، إذا كنت تريد معرفة كيفية تصميم نموذج لتفشي المرض باستخدام JS ، فيمكنك عرض مقال كتبته عن نمذجة تفشي الأمراض هنا. الآن ، لنبدأ!

ملاحظة: الصورة أعلاه مأخوذة من محاكاة بواسطة quantum9innovation (وليس مستخدم Instructables) والتي يمكنك عرضها هنا.

اللوازم:

انك سوف تحتاج:

  • حساب سكراتش (يمكنك التسجيل هنا
  • المعرفة الأساسية بالسحب والإفلات (لكنني سأستمر في تصفح الكود)
  • جهاز كمبيوتر أو جهاز يمكنك البرمجة به (والذي من المحتمل أن يكون لديك ، لأنك تقرأ هذا)
  • اختياري - شاهد فيديو 3b1b ، سيعطيك فكرة عما نقوم ببرمجته.

الخطوة 1: الإعداد الأساسي

الإعداد الأساسي
الإعداد الأساسي

أولاً ، دعنا ننشئ مشروعًا ، ونطلق عليه العنوان كما تريد ، ثم نحذف الكائن الموجود على اللوحة. يمكنك القيام بذلك عن طريق النقر فوق زر سلة المهملات على الكائن. الآن لدينا لوحة قماشية فارغة ، ويمكنك تغيير لون الخلفية إلى ما تريد.

بعد ذلك ، قم بإنشاء كائن جديد ، وبدلاً من استخدام كائن موجود ، قم برسم كائن خاص بك. اجعلها نقطة زرقاء. يمثل هذا الكائن السكان المعرضين للإصابة في المجتمع ، وسيكون لدينا أيضًا مجموعة مستردة / تمت إزالتها ومصابة ، حيث يأتي اسم النموذج ، SIR (حساس ، مصاب ، مسترد / تمت إزالته). تأكد من تسمية الكائن بأنه "غير مصاب".

الآن ، قم بإنشاء كائن جديد (مرة أخرى) ، وقم بتسميته sprite1 ، والذي سنقوم أيضًا برسمه على أنفسنا. أطلق عليها اسم "Sprite1" وأنشئ زيين ، يجب أن يكون أحدهما نقطة حمراء والآخر نقطة رمادية. اجعلهم زي 1 وزي 2 ، على التوالي. يمثل هذان الشخصان المصابان (النقطة الحمراء) والمجموعات المستعادة / المزالة (النقطة الرمادية).

الخطوة 2: إعداد التعليمات البرمجية للسكان المعرضين للإصابة

إعداد رمز للسكان المعرضين للإصابة
إعداد رمز للسكان المعرضين للإصابة

نقوم الآن بإعداد رمز السكان المعرضين للإصابة. نقوم أولاً بإنشاء متغيرين: الأشخاص والمصابين. يمثل متغير "الأشخاص" السكان ويمكن تغييره وفقًا لعدد الأشخاص الذين نريدهم في المحاكاة الخاصة بنا ، وستتغير المحاكاة وفقًا لذلك. نقوم أيضًا بإنشاء متغير مصاب ، وهذا يمثل السكان الذين أصيبوا / أصيبوا بالمرض. يجب أن يكون كلا هذين المتغيرين متغيرين عالميين ، مما يعني أنه يمكن استخدامهما في جميع الكائنات الحية.

بعد ذلك ، انسخ الكود أعلاه إلى الكائن غير المصاب. دعنا نتعرف على ما يفعله. عندما يبدأ البرنامج ، يكون الكائن مخفيًا ، وهذا حتى لا نضطر إلى وضع نفس الكود للنسخ في الكائن نفسه ، مما يساعد. بعد ذلك ، قمنا بتعيين المتغيرين (المصابين والأشخاص) على ما نريدهم أن يكونوا ، في هذه الحالة ، قمنا بتعيين المصاب إلى 1 والأشخاص إلى 100. وهذا يعني أننا نبدأ بشخص واحد مصاب وإجمالي 100 شخص ، لا يشمل الشخص المصاب. ثم نقوم بتشغيل حلقة ، والتي يتم تشغيل مقدار متغير الأشخاص ، في هذه الحالة ، 100. نذهب إلى موضع عشوائي ثم نقوم بإنشاء نسخة من الكائن. ننتقل إلى موضع عشوائي لأننا بهذه الطريقة ليس لدينا خط من النقاط يتحرك في اتجاه واحد ، وبدلاً من ذلك يتم وضع البيض في مواضع عشوائية.

الخطوة 3: إعداد الكود للكائن المصاب والمُزال

إعداد الكود الخاص بالكائن المصاب والمُزال
إعداد الكود الخاص بالكائن المصاب والمُزال

الآن ، قم بالتبديل إلى الكائن "Sprite1" ثم انسخ الكود أعلاه. دعنا نمر بها. عند بدء تشغيل البرنامج ، يكون الكائن مخفيًا ، ثم يقوم بتشغيل حلقة بالمقدار الذي تم ضبطه عليه. ينتقل إلى موضع عشوائي ويخلق نسخة منه.

الخطوة 4: استكمال قانون السكان المعرضين للخطر

استكمال قانون السكان المعرضين للإصابة
استكمال قانون السكان المعرضين للإصابة

لنستعرض الأشياء التي نحتاج إلى القيام بها:

  • تصيب
  • نقل

قم بالتبديل إلى الكائن غير المصاب ، وانسخ الكود أعلاه ، ودعنا نتعرف على كيفية إكماله للإصابة والتحرك. أولاً ، يذهب إلى زي واحد ، وهذا ليس ضروريًا حقًا ، لكن لدينا هناك لذلك إذا قررنا إضافة المزيد ، فلا داعي للقلق بشأن تغيير الأزياء إلى الأزياء الجديدة التي أضفناها. بعد ذلك ، يظهر نفسه. إذا كنت تتذكر ، فقد قمنا بإخفاء الكائن الأصلي ، وبالتالي سيتم إخفاء النسخ المستنسخة أيضًا ، وهو ما لا نريده. نقوم بعد ذلك بتشغيل حلقة إلى الأبد ، والتي ستعمل على تشغيل البرنامج بأكمله حتى ينقر شخص ما على علامة التوقف على نقطة الصفر. ننتقل إلى موضع عشوائي لمدة ثانية واحدة ، ثم نتحقق مما إذا كنا على الحافة ، وفي هذه الحالة نرتد منها. بعد ذلك ، إذا لمسنا اللون الأحمر ، فإننا ننسخ Sprite1 (المجموعة المصابة / التي تمت إزالتها) ونزيد المتغير المصاب بمقدار 1 ، متبوعًا بحذف الكائن الخاص بنا.

الخطوة 5: إكمال التعليمات البرمجية المصابة / التي تمت إزالتها

إكمال التعليمات البرمجية المصابة / التي تمت إزالتها
إكمال التعليمات البرمجية المصابة / التي تمت إزالتها

بالتبديل إلى Sprite1 ، نقوم بإنشاء قائمة جديدة ، مؤقت. ستعمل هذه القائمة على تتبع مدة إصابة نقطة ما ، وبعد فترة زمنية معينة ، إما أن تموت أو تتعافى ، وتصبح جزءًا من السكان الذين تمت إزالتهم / تعافوا ، ويتم تمثيلها بنقطة رمادية لا يمكن إعادة إصابتها.

انسخ الكود أعلاه ودعنا ننتقل إليه. عندما نبدأ كنسخة ، ندرج إجمالي عدد الثواني التي كان البرنامج يعمل فيها في قائمة المؤقت ، وسنتحقق من ذلك لمعرفة المدة التي أصيب فيها البرنامج وتغييره لاستعادته وفقًا لذلك. نقوم بإخفاء قائمة المؤقت ثم نحول زي الاستنساخ إلى الزي المصاب فقط في حالة وجوده ، ثم نعرض الكائن الخاص بنا. نقوم الآن بتشغيل حلقة إلى الأبد ، حيث تحدث أشياء متعددة: نقول للنسخة أن تنزلق إلى موضع عشوائي كل ثانية واحدة ، ونتحقق مما إذا كان المتغير المصاب أكبر من السكان نفسه ، وفي هذه الحالة نقوم بتعيينه على السكان ، و أخيرًا ، نذهب ونتحقق من العنصر الأول في قائمة المؤقت لمعرفة ما إذا كان قد مضى أكثر من 5 ثوانٍ ، وإذا كان هذا صحيحًا ، فإننا نحول الزي إلى الزي المسترد حتى لا نتمكن من الإصابة ، ثم نحذف العنصر من جهاز ضبط الوقت.

موصى به: