كاسحة ألغام
كاسحة الألغام... نعم، تلك اللعبة الكلاسيكية القديمة التي تتذكر أنك كنت تلعبها على نظام التشغيل Windows '95 الجيد في الماضي (في الواقع تم تطبيقها في تحديثات برامج Microsoft حتى نظام التشغيل Windows 8). تعود أصول لعبة كاسحة الألغام إلى أقدم ألعاب الحاسوب المركزي في الستينيات والسبعينيات. كان أول أسلاف كاسحة الألغام هو مكعب جيريماك راتليف. أصبح أسلوب اللعب الأساسي جزءًا شائعًا من نوع ألعاب الألغاز خلال الثمانينيات.
قم بتحسين تاريخ كاسحة الألغام الخاص بك هنا.
هل تعرف ما هي كاسحة الألغام الفعلية؟ ولم أفعل ذلك حتى قرأت هذا.
أتذكر تجربتي الأولى مع أجهزة الكمبيوتر في التسعينيات والتي تضمنت لعب هذه اللعبة كثيرًا، لذلك فكرت في أي لعبة أفضل من هذه لتكتمل الدائرة؟
نسختي
ابدء
العب اللعبة هنا!
طريقة اللعب الأساسية
- حدد مستوى الصعوبة الخاص بك.
- سهل = 9×9، 10 ألغام
- المتوسطة = 16×16، 40 لغماً
- الصعب = 30×30، 160 لغماً
- انقر في أي مكان على اللوحة لبدء وبدء تشغيل المؤقت. *توضح الأرقام عدد الألغام المجاورة لأي خلية معينة.
- استخدم "Shift + Click" لإضافة علامات إلى الخلية إذا كنت تعتقد أنها منجم.
الفوز/الخسارة
- إذا اصطدمت بلغم... انتهت اللعبة يا صديقي.
- اربح من خلال الكشف عن جميع الخلايا التي لا تحتوي على ألغام!
(فهمت... الألغام... الكناس...؟)
التقنيات المستخدمة
الأصدقاء الثلاثة الطيبون:
HTML
كما ترون من الكود المصدري، فإن HTML موجز للغاية، حيث أن معظم الإجراءات تحدث في JavaScript. ناهيك عن أن لوحة اللعب نفسها هي مجرد طاولة بسيطة.
CSS
لقد استمتعت كثيرًا بتصميم هذا المظهر القديم لعرض سطح المكتب لنظام التشغيل Windows '95. ما زلت أرغب في العبث به قليلاً حتى يصبح مثاليًا (تعذر العثور على الخط الدقيق الذي يستخدمه MS).
كان التحدي الأكبر الذي واجهته في CSS هو معرفة أنماط الجدول (الحدود، وأحجام td، وما إلى ذلك)
جافا سكريبت
نظرًا لأن هذه كانت المرة الأولى التي أقوم فيها بكتابة تطبيق ويب فعال باستخدام JavaScript، فليس من المفاجئ أن يكون هذا القسم هو التحدي الأكبر للمشروع بالنسبة لي.
فيما يلي بعض النقاط البارزة:
- تغيير حجم الجدول ديناميكيًا عند النقر فوق مستوى الصعوبة
- لقد قمت بإنشاء وظيفة (بمساعدة جيم بالطبع) تقوم بتحليل الرقم من المعرف الموجود في الجدول والذي يحوله إلى متغير ${size} والذي يقوم بشكل أساسي بإلحاق الصفوف/الأعمدة بناءً على الرقم الذي يلتقطه. هذا المفهوم فجر ذهني.
- وفي المقابل، يتم إنشاء مصفوفة من المصفوفات ديناميكيًا لمطابقة الجدول المرئي.
- إنشاء فئة "خلية" استخدمتها لإنشاء "كائنات خلية" فردية قمت بتعيين الكثير من الخصائص لها: الصف #، العمود #، القنبلة t/f، # القنابل المجاورة (تحدي آخر في حد ذاته، راجع للشغل) ، وكشف t/f، ووضع علامة t/f.
- سهّل هذا الأسلوب كتابة تعليمات برمجية أكثر إيجازًا وعدم تكرارها مرارًا وتكرارًا، بالإضافة إلى إنشاء أساليب في الفصل يمكن تشغيلها لكل كائن خلية.
- إنشاء مؤقت وظيفي يعرض الثواني المنقضية.
- وضع القنبلة بطريقة عشوائية على المصفوفة.
- تقديم كل شيء في DOM.
- تعيين معالجات النقر لأحداث مختلفة.
- إنشاء منطق الفوز/الخسارة
- معرفة تدفق التحكم في كيفية ربط جميع الوظائف معًا بشكل متزامن.
- التعرف على العودية وكيفية كتابة دالة بشكل صحيح تخلق مثل هذا التأثير.
اختياراتي للتصميم
قررت أن أستخدم مظهر OG Windows '95. أنا من أشد المؤمنين بفكرة "التقليد، الاستيعاب، الابتكار". نموذج للتعلم، لذلك فكرت في مشروعي الأول أنني بحاجة إلى المشي قبل أن أتمكن من الركض والبدء بمرحلة التقليد في عملية التعلم.
أنا سعيد للغاية لأنني اخترت هذا المسار، لأنني تعلمت الكثير من خلال محاولة مطابقة الأنماط من اللعبة الأصلية.
ومع ذلك، سأقوم بالتأكيد بإنشاء نسخة حديثة من هذا يومًا ما قريبًا.
الخطوات التالية!
لقد كان هذا المشروع ممتعًا حقًا بالنسبة لي. وأخطط لمواصلة تحسينه والرجوع إلى الدروس العديدة المستفادة لسنوات قادمة.
- كما ذكرت سابقًا، أرغب في إجراء "تبديل العرض" الذي يقلب CSS إلى واجهة مستخدم حديثة ونظيفة ومسطحة وبسيطة.
- هناك بعض الأخطاء الجمالية الصغيرة الغبية التي تجعلني أسحب شعري للخارج، مثل كيفية تعديل عرض/ارتفاع الخلية ببضعة بكسلات عندما يتم الكشف عن اللوحة بالكامل. أنا بحاجة لإصلاح ذلك.
- أود أيضًا أن أقوم بتجسيد نظام التشغيل Windows '95 بشكل أكبر، مما يجعل زر "ابدأ" يفعل شيئًا ما، ويضيف ساعة إلى الزاوية اليمنى السفلية، وبعض أيقونات سطح المكتب الوظيفية.
- الميزة الصعبة حقًا التي أود معالجتها هي إنشاء ميزة يمكن للمستخدم من خلالها اختيار الصعوبة عن طريق إدخال الأرقام (أرقام الصف/العمود/أرقام الألغام).
سيكون ذلك ليوم ممطر.
شكرا لك على القراءة! أتمنى أن تستمتع باللعبة :)