قم ببناء لعبة الأعداد الممتعة هذه في Python لممارسة التلاعب بالسلسلة والتعرف على Tkinter.

FLAMES هي لعبة ممتعة للأطفال الذين يدافعون عن الأصدقاء والعشاق والحنين والزواج والأعداء. تأخذ اللعبة اسم شخصين وتحدد علاقتهما بسلسلة من الخطوات. للعب FLAMES ، قم بتدوين أسماء الشخصين ، وتخلص من الأحرف المطابقة ، واحصل على عدد الأحرف المتبقية.

كرر فوق أحرف الكلمة ، FLAMES باستخدام العد وإزالة هذا الحرف. على سبيل المثال ، إذا كان العدد أربعة ، فقم بإزالة الحرف M. يبدأ العد من E مرة أخرى. كرر هذه العملية حتى يتبقى حرف واحد فقط ، مما يدل على حالة العلاقة.

وحدة Tkinter

لبناء لعبة FLAMES ، سوف تستخدم وحدة Tkinter. Tkinter عبارة عن وحدة متعددة المنصات وبسيطة وسهلة الاستخدام يمكنك استخدامها لإنشاء واجهات مستخدم رسومية بسرعة. تتضمن بعض التطبيقات التي يمكنك إنشاؤها كمبتدئ باستخدام Tkinter ملف مشغل الموسيقى, تقويم, أداة تحويل الوزن، وأ لعبة كلمة الخليط.

لتثبيت tkinter في نظامك ، قم بتشغيل الأمر التالي في المحطة:

نقطة تثبيت tkinter

كيفية بناء لعبة النيران باستخدام بيثون

يمكنك العثور على الكود المصدري للعبة FLAMES باستخدام Python في هذا مستودع جيثب.

instagram viewer

قم باستيراد وحدة Tkinter. تحديد وظيفة ، remove_match_char () يقبل قائمتين كمدخلات. استخدم حلقة for المتداخلة للتكرار على كلتا القائمتين. تحقق مما إذا كان هناك حرف مطابق ؛ إذا كان هناك ، فقم بإزالته من كلتا القائمتين وإنشاء قائمة ثالثة تجمع بين كلتا القائمتين بعلامة النجمة بينهما. تعمل العلامة النجمية كمحدد.

أعد القائمة الثالثة مع التطابق الذي تم العثور عليه على أنه True. في حالة عدم تطابق الأحرف ، قم بإرجاع القائمة كما تم إنشاؤها أعلاه.

من tkinter يستورد *

defremove_match_char(list1، list2):
ل أنا في النطاق (لين (list1)):
ل ي في النطاق (لين (list2)):
لو list1 [i] == list2 [j]:
c = list1 [i]
list1.remove (c)
list2.remove (c)
list3 = list1 + ["*"] + list2
يعود [قائمة 3 ، حقيقي]
list3 = list1 + ["*"] + list2
يعود [قائمة 3 ، خطأ شنيع]

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

defاقول_الحالة():
p1 = Person1_field.get ()
p1 = p1.lower ()
p1.replace (" ", "")
p1_list = قائمة (p1)
p2 = Person2_field.get ()
p2 = p2.lower ()
p2.replace (" ", "")
p2_list = قائمة (p2)
تابع = حقيقي

حتى تصبح قيمة المتابعة صحيحة ، قم باستدعاء remove_match_char () وظيفة وتمرير القائمتين اللتين أنشأتهما للتو. قم بتخزين القائمة المتسلسلة وحالة العلم المستلمة من الوظيفة. ابحث عن فهرس علامة النجمة التي أدخلتها وقم بتقسيم السلاسل إلى قائمتين قبلها وبعدها.

احسب عدد الأحرف في القائمتين وحدد قائمة تخزن الحالة المختلفة التي يمكن أن تتمتع بها العلاقة وفقًا للعبة FLAMES.

بينما يتابع:
ret_list = remove_match_char (p1_list، p2_list)
con_list = ret_list [0]
تابع = ret_list [1]
star_index = con_list.index ("*")
p1_list = con_list [: star_index]
p2_list = con_list [star_index + 1:]

العد = len (p1_list) + len (p2_list)
النتيجة = ["أصدقاء", "حب", "عاطِفَة", "زواج", "العدو", "إخوة"]

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

أدخل النتيجة في حقل الحالة في موضع الحرف الأول لعرض حالة العلاقة.

بينما لين (نتيجة)> 1:
Split_index = (عدد٪ len (نتيجة) - 1)

لو Split_index> = 0:
صحيح = النتيجة [split_index + 1:]
اليسار = النتيجة [: split_index]
النتيجة = اليمين + اليسار
آخر:
النتيجة = النتيجة [: لين (نتيجة) - 1]

Status_field.insert (0، نتيجة[0])

تحديد وظيفة ، امسح الكل(). استخدم وظيفة delete () من الفهرس الأول إلى الأخير في حقول الإدخال الثلاثة لمسح المحتويات المعروضة على الشاشة. استخدم طريقة focus_set () في حقل الإدخال الأول للتنشيط والإشارة إلى المستخدم لإدخال القيم فيه.

defامسح الكل():
Person1_field.delete (0، نهاية)
Person2_field.delete (0، نهاية)
Status_field.delete (0، نهاية)
Person1_field.focus_set ()

قم بتهيئة مثيل Tkinter وعرض نافذة الجذر بتمريرها إلى الفئة. قم بتعيين لون الخلفية من اختيارك وحجم وعنوان التطبيق الخاص بك.

الجذر = Tk ()
root.configure (الخلفية ="# A020F0")
هندسة الجذر ("700 × 200")
الجذر. العنوان ("لعبة FLAMES")

حدد ثلاث تسميات للدلالة على الشخصين وحالة علاقتهما. عيّن النافذة الأصلية التي تريد وضعها فيها ، والنص الذي يجب أن يعرضه ، ولون الخط ، ولون الخلفية ، وأنماط الخط. أضف بعض الحشو في الاتجاه الأفقي.

label1 = تسمية (جذر ، نص ="الاسم 1:"، fg ="#ffffff"، bg ="# A020F0"، الخط = ("أريال",20,"عريض") ، بادكس ='20')
label2 = تسمية (جذر ، نص ="الاسم 2:"، fg ="#ffffff"، bg ="# A020F0"، الخط = ("أريال",20,"عريض") ، بادكس ='20')
label3 = تسمية (جذر ، نص ="الحالة الاجتماعية: "، fg ="#ffffff"، bg ="# A020F0"، الخط = ("أريال",20,"عريض") ، بادكس ='20')

استخدم مدير الشبكة لترتيب الحاجيات الثلاثة في العمود الأول. ضع التسمية الأولى في الصف الثاني ، والتسمية الثانية في الصف الثالث ، والتسمية الثالثة في الصف الرابع.

label1.grid (row =1، العمود =0)
label2.grid (row =2، العمود =0)
label3.grid (row =4، العمود =0)

حدد ثلاث أدوات إدخال للحصول على قيم الشخصين وعرض حالتهما. قم بتعيين النافذة الأصلية التي تريد وضع عناصر واجهة المستخدم فيها وأنماط الخط التي يجب أن تحتوي عليها.

Person1_field = إدخال (الجذر ، الخط = ("أريال", 15, "عريض"))
Person2_field = إدخال (الجذر ، الخط = ("أريال", 15, "عريض"))
Status_field = إدخال (الجذر ، الخط = ("أريال",15,"عريض"))

وبالمثل ، استخدم مدير الشبكة ، لتنظيم الحاجيات في العمود الثاني. استخدم ال ipadx الخاصية لتعيين عدد وحدات البكسل للوسادة داخل حدود عنصر واجهة المستخدم.

Person1_field.grid (row =1، العمود =1، ipadx ="50")
Person2_field.grid (row =2، العمود =1، ipadx ="50")
Status_field.grid (row =4، العمود =1، ipadx ="50")

حدد زرين ، يُقدِّم و واضح. عيّن النافذة الأصلية التي تريد وضعها فيها ، والنص الذي يجب أن تعرضه ، ولون الخلفية ، ولون الخط ، والوظائف التي يجب أن تنفذها عند النقر عليها ، وأنماط الخط.

استخدم مدير الشبكة لوضع الأزرار في الصف الرابع والسادس من العمود الثاني على التوالي.

button1 = زر (جذر ، نص ="يُقدِّم"، bg ="# 00ff00"، fg ="أسود"، الأمر = tell_status ، font = ("أريال",13,"عريض") )
button2 = زر (جذر ، نص ="واضح"، bg ="# 00ff00"، fg ="أسود"، الأمر = clear_all ، font = ("أريال",13,"عريض"))
button1.grid (row =3، العمود =1)
button2.grid (row =5، العمود =1)

ال mainloop () تخبر الوظيفة Python بتشغيل حلقة حدث Tkinter والاستماع إلى الأحداث حتى تغلق النافذة.

root.mainloop ()

ضع كل الكود معًا ، واستعد للعب لعبة FLAMES في متناول يدك.

إخراج عينة من لعبة FLAMES

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

ألعاب يمكنك بناءها باستخدام بايثون

Pygame و Arcade و Panda3D و PyOpenGL و Pyglet هي بعض الوحدات المفيدة التي يمكنك بناء ألعاب Python بها. باستخدام Pygame ، يمكنك إنشاء ألعاب ثنائية الأبعاد مثل Super Mario Bros و Flappy Bird و Snake. باستخدام Arcade ، يمكنك إنشاء نسخة من Pac-Man أو Asteroids أو Breakout.

يمكن أن يساعدك Panda3D في إنشاء ألعاب ثلاثية الأبعاد مثل Toontown Online و Pirates of the Caribbean Online و Disney's Virtual Magic Kingdom.