• 0
KeepForward

لعبة كانسة الألغام MineSweeper على الكونسول

سؤال

لعبة كانسة الألغام عل كونسول إذا حدا حابب يستفاد بليرة

 

شاركونا آراءكم
 

جميع الدوال المستخدمة من مكتبة Windows.h



OmarsMineSweeper.rar

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

لعبة  جميلة  و  اتمنا  لك  المزيد  من التفوق

 

لكن  يا ريت لو  توضح  كيفية  سير  الاكواد  و  الافكار الاساسية :huh:   

 

اذا  ما  كان  عندك  مانع :blush:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تعتمد فكرة اللعبة بشكل أساسي على الدالة ReadConsoleInput التي تتحسس للدخل من الفأرة أو الكيبورد
وتقوم بإعطاء قيمة للمتغير الرابع في حال تحسس دخل.
الشرح يطول جدا في هذه الدالة الكبيرة والعظيمة لذلك أرفقت لك برنامج يوضح عملها بشكل جيد

Keyboard & Mouse Events.rar

 

وهذا مثال جميل من شركة مايكروسوفت لهذه الدالة

Cpp1.rar

 

 

وهنالك الدالة SetConsoleCursorPosition التي تقوم بنقل موضع مؤشر الكونسول إلى مكان معين للبدأ بالرسم من ذلك المكان

وهاك مثال بسيط جدا عن مبدأ عملها

Cpp1.rar

 

 

والدالة SetConsoleTextAttribute التي تقوم بتغير اللون


والآن نأتي للدوال المصنوعة :

في المكتبة Body تم وضع structure للقطع في اللعبة الذي يحوي على :

 

cont الرقم المضمن في الرقعة أو -33 : لغم

cont2 لتخزيم إذا ما تم وضع علم على الرقعة أم لا
x , y : إحداثيات الرقعة
mode : الرقعة مفتوحة أم مغلقة

المؤشرات : مؤشرات على الرقع المحيطة بالرقعة


المكتبة Drawer :

putvalues : تعين الاحداثيات لكل رقعة
drawflint : لرسم كل رقعة ( المدخلات : رقم الرقعة 1 , رقم الرقعة 2 , لون الرقعة عندما تكون مغلقة  , لون الرقعة عندما تكون مفتوحة )

connectflint : لتعين الرقع المجاورة لكل رقعة



المكتبة Libraries :

A : مصفوفة الرقع
pointed : مؤشر على الرقعة المعلمة
flint0 : تابع تعيين البرامترات الأولية
mytime : تابع تأخير زمني


المكتبة Events :

 

dopoint : التعيين بمؤشر الفأرة على رقعة مغلقة
unpoint : إزالة التعيين عن الرقعة بعد إنزياح المؤشر عنها
unlockflint : فتح رقعة معين عليها
markflint : تعيين رقعة بعلم على أنها تحتوي على لغم

checkothers : فتح الرقع المحيطة بالرقعة المفتوحة في حال كانت لا تحتوي على أي قيمة

boooooomb : فتح باقي الرقع في حال تم فتح رقعة ملغومة



roundmines : توزيع الألغام بشكل عشوائي
setcounts : توزيع القيم على الرقع بعد توزيع الألغام



You Welcome

 

4

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

...

تم تعديل بواسطه KeepForward
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك  الله   كل  خير  على  هذا  الشرح  الاكثر  من  رائع :D  :D  :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .