تغلب على لعبة كانسة الألغام من Google باستخدام هذا البرنامج النصي. المكتبات الضرورية: numpy ، opencv2 ، pyautogui .
قم بتنزيل هذا المشروع باستخدام هذا الأمر:
https://github.com/EnriqueMoran/google-minesweeper-bot.git
بعد ذلك، قم بتثبيت المكتبات الضرورية باستخدام الأمر التالي:
pip install pyautogui opencv-python numpy
بمجرد اكتمال التثبيت، انقر بزر الماوس الأيمن على ملف minesweeper.py وقم بتحريره باستخدام IDLE. افتح لعبة google minesweeper وتأكد من أن نافذة اللعبة مرئية بالكامل، ثم اضغط على python IDLE واضغط F5.
ملاحظة: في المرة الأولى التي تقوم فيها بتشغيل البرنامج النصي، سيتم فتح نوافذ جديدة يمكن وضعها فوق نافذة اللعبة، فقط اخرجها وقم بتغيير حجمها.
هام: إذا كنت بحاجة إلى إيقاف تنفيذ البرنامج النصي، ضع الماوس في الزاوية العلوية اليسرى من شاشتك.
في كل خطوة، يتم التقاط لقطة شاشة ويتم التعرف على كل خلية غير خضراء (خلية غير معروفة).
بعد ذلك، يتم فحص كل خلية لوضع علامة على أي من الخلايا المجاورة لها. الخوارزمية المستخدمة هي التالية:
إذا كان عدد الخلايا المجاورة التي تم وضع علامة عليها أقل من نتيجة الخلية المحددة وكان عدد الخلايا المجاورة غير المعروفة بالإضافة إلى الخلايا التي تم وضع علامة عليها أقل من النتيجة، فضع علامة على أي من الخلايا المجاورة غير المعروفة.
إذا كان عدد الخلايا المجاورة التي تم وضع علامة عليها يساوي النتيجة وعدد الخلايا المجاورة غير المعروفة أعلى من 0، فانقر على أي منها.
إذا لم تكن أي من الخلايا صالحة لأي إجراء، فسيتم النقر فوق خلية عشوائية غير معروفة.
بمجرد عدم وجود المزيد من الأعلام، يتم إنهاء اللعبة ويتوقف البرنامج النصي. إذا فقدت اللعبة عند النقر على خلية عشوائية، وإذا تم التعرف على نافذة النتيجة، فسيتوقف البرنامج النصي أيضًا.
يعتمد الأداء في الإصدار 1.0 على معلمة السرعة التي تحدد الوقت الذي سينتظره البرنامج النصي بعد النقر فوق خلية لالتقاط لقطة شاشة جديدة.
سرعة | لا ألعاب | فوز/هزيمة سهلة | فوز/هزيمة عادية | فوز/هزيمة صعبة | متوسط سهل. وقت | متوسط عادي. وقت | متوسط الثابت. وقت |
---|---|---|---|---|---|---|---|
0.05 | 10 | 9/1 | 5/5 | 3/7 | 27.55 | 258.6 | 854 |
0.10 | 10 | 8/2 | 8/2 | 0/10 | 28.875 | 235.83 | - |
0.15 | 10 | 9/1 | 10/0 | 2/8 | 27.2 | 214.66 | 812.5 |
في الإصدار 1.2، لم تعد مطابقة قالب opencv2 مستخدمة. يتم الحصول على الدرجات من لون البكسل الخاص بهم. تم تحسين أداء السرعة في الصعوبات السهلة والعادية. هناك حاجة إلى إضافة قواعد لتطبيقها عند النقر بشكل عشوائي.
سرعة | لا ألعاب | فوز/هزيمة سهلة | فوز/هزيمة عادية | فوز/هزيمة صعبة | متوسط سهل. وقت | متوسط عادي. وقت | متوسط الثابت. وقت |
---|---|---|---|---|---|---|---|
0.015 | 10 | 8/2 | 4/6 | 0/10 | 11.25 | 42 | - |
0.05 | 10 | 7/3 | 5/5 | 1/9 | 11.28 | 44.6 | 113 |
أضف قواعد للنقرات العشوائية.