الانتقال إلى المحتوى

ألعاب إلكترونية

Totometeo

لعبة إلكترونية لتوقع الطقس ضمن دوريات: يتوقع اللاعبون الأحوال الفعلية، وتُحسب النقاط تلقائيًا من بيانات Open-Meteo.

النوعألعاب إلكترونية

المشكلة

كل شخص يظن أنه قادر على توقع الطقس. وكانت فكرة Totometeo تحويل ذلك إلى لعبة تُلعب ضمن دوريات، على غرار لعبة توقعات كرة القدم TotoMondiale: يتوقع اللاعبون طقس مدينة ما في ساعة محددة، والبيانات الحقيقية هي التي تحدد من يسجّل النقاط. وكان على اللعبة أن تعمل من تلقاء نفسها: إغلاق التوقعات في موعدها، وجلب الطقس الفعلي، وحساب النقاط، وتحديث الترتيب، دون أن يقوم أحد بذلك يدويًا.

ما الذي بنيته

بنيت Totometeo، وهي لعبة إلكترونية لتوقع الطقس فيها دوريات عامة وخاصة، وتُحسب نقاطها تلقائيًا من بيانات الطقس الحقيقية.

  • الدوريات — ينشئ اللاعبون دوريات عامة أو خاصة ويدعون أصدقاءهم برمز من 6 أحرف يستبعد الأحرف المتشابهة مثل I وO و0 و1. ويوجد دوري عام يضم الجميع.
  • الجولات والتوقعات — تضم كل جولة أحداثًا جوية لكل منها مدينة ووقت وموعد نهائي. ولكل حدث يتوقع اللاعب حالة السماء، ودرجة الحرارة، وهل ستمطر أم لا، وكمية المطر بالمليمتر، وسرعة الرياح، ويمكنه اختياريًا توقع حدث نادر مثل البَرَد أو الرياح القوية. ويمكن تعديل التوقعات حتى الموعد النهائي، ثم تُقفل.
  • بيانات طقس حقيقية — بعد الحدث يقرأ التطبيق القيم الساعية من Open-Meteo، ويلجأ إلى الأرشيف التاريخي إذا غابت بيانات التوقعات. وتُربط رموز الطقس WMO بحالات اللعبة الـ 7، وتُرصد الأحداث النادرة من البيانات، مثل رياح بسرعة 50 km/h أو أكثر.
  • محرك النقاط — 10 قواعد للنقاط و2 من هوامش التسامح، من 5 نقاط لتوقع الحالة بدقة إلى مكافأة 10 نقاط للحدث النادر. ويُحفظ كل رصيد مع تفصيله، فيعرف اللاعب بالضبط مصدر كل نقطة.
  • الأتمتة — مهمة مجدولة تغلق الأحداث المنتهية كل دقيقة؛ وأخرى تجلب الطقس الفعلي كل 15 دقيقة وتحسب نقاط ما يصل إلى 25 حدثًا في كل دورة.
  • الترتيب والإدارة — ترتيب الدوري والترتيب العام والترتيب التاريخي، ولوحة إدارة للجولات والأحداث وجلب بيانات الطقس والنقاط والقواعد والمستخدمين والدوريات، مع سجل لإجراءات المشرفين.

التقنيات المستخدمة

Node.js وExpress مع صفحات EJS تُعرض من جهة الخادم. وMySQL أو MariaDB عبر Prisma ORM، مع 10 نماذج بيانات. والجلسات عبر express-session، وكلمات المرور مجزّأة بـ bcrypt. والمهام المجدولة عبر node-cron، والعمليات تديرها PM2 خلف Nginx. وبيانات الطقس من Open-Meteo، التي لا تحتاج إلى مفتاح API.

لماذا بهذه الطريقة

قواعد النقاط محفوظة في قاعدة البيانات لا في الكود. تُحمَّل القيم الافتراضية من مواصفات اللعبة مرة واحدة عند الإعداد، ثم يستطيع المشرف تغيير النقاط وهوامش التسامح من اللوحة دون إصدار جديد. ولأن كل رصيد يحتفظ بتفصيله، يبقى أي تغيير في القواعد شفافًا أمام اللاعبين.

لديك فكرة؟
لنتحدث.

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

تواصل معي
  • نابولي
  • أفكار
  • مشاريع
  • أشخاص
  • إلى الأمام دائمًا