تعتبر الألعاب النصية البسيطة التي يمكنك لعبها على سطر الأوامر مشاريع رائعة للمبتدئين.
هل أنت في مزاج للعب لعبة كتبتها بنفسك؟ حسنًا ، أنت في المكان الصحيح. Hangman هي لعبة شائعة لتخمين الكلمات ويمكنك إنشاء نسختك الخاصة بأقل جهد.
هذه اللعبة هي لعبة ترفيهية مثالية ، مألوفة من برامج ومسلسلات الألعاب التلفزيونية الشهيرة مثل Wheel of Fortune و Letterbox و Party Time. و Python هي لغة مناسبة لاستخدامها لبناء استنساخ الجلاد.
كيف تلعب لعبة الجلاد
Hangman هي لعبة مشهورة حيث يفكر أحد اللاعبين في كلمة ما ويحاول اللاعب الآخر تخمينها من خلال اقتراح أحرف بعدد محدد من التخمينات. يقدم لاعب واحد (في هذه الحالة البرنامج) سلسلة من الشرطات التي تمثل كل حرف من أحرف الكلمة ، جنبًا إلى جنب مع حرف كنقطة بداية. يقوم اللاعب الآخر (أو المستخدم) بتخمين الأحرف الموجودة في الكلمة واحدة تلو الأخرى.
إذا كان الحرف الذي يخمنونه موجودًا في الكلمة المستهدفة ، فإن البرنامج يملأ الشرطة بالحرف. خلاف ذلك ، يفقد اللاعب فرصة واحدة ، ويرسم البرنامج عنصرًا من عنصر العصا كحصيلة. في مجموع سبع فرص ، إذا خمن المستخدم الكلمة بشكل صحيح ، يفوز باللعبة. إذا لم يكن الأمر كذلك ، يكمل البرنامج رسم رجل العصا.
يمكنك إنشاء قائمة بكلماتك المفضلة أو تنزيل واحدة مثل قائمة Mieliestronk التي تضم أكثر من 58000 كلمة إنجليزية. يمكنك أيضًا استكشاف وبناء ألعاب نصية ممتعة أخرى مثل لعبة مسابقة تفاعلية أو أ لعبة مغامرة نصية في بايثون.
كيفية بناء لعبة الجلاد
الكود المصدري للعبة Hangman هذه ، جنبًا إلى جنب مع ملف قائمة الكلمات ، موجود في هذا مستودع جيثب وهو مجاني للاستخدام.
قم باستيراد ملف عشوائي وحدة وتعريف وظيفة ، get_random_word_from_wordlist ()، لاختيار كلمة عشوائية من الملف. قد يحتوي الملف النصي على أسماء شائعة أو أسماء أماكن وحيوانات وأفلام وغير ذلك بناءً على رغبتك. حدد قائمة باستخدام الأقواس المستطيلة ([]).
استخدم ال مع بيان لفتح الملف وتمرير الوضع باسم 'r' تشير إلى وضع القراءة فقط. هذا يعتني تلقائيًا بإغلاق الملف في نهاية الكتلة حتى في حالات الأخطاء. إذا قمت بعرض ملف hangman_wordlist.txt ملف ، ستلاحظ وجود كلمة واحدة في كل سطر ، لذلك يفصل الملف كل كلمة بحرف سطر جديد.
مرر حرف الهروب لسطر جديد (\ن) إلى ينقسم() وظيفة لتخزين كل كلمة في القائمة التي حددتها سابقًا. يستخدم اختيار عشوائي () لإرجاع كلمة عشوائية من القائمة.
import random
defget_random_word_from_wordlist():
wordlist = []
with open("hangman_wordlist.txt", 'r') as file:
wordlist = file.read().split("\n")
word = random.choice(wordlist)
return word
بعد ذلك ، حدد وظيفة ، get_some_letters ()، هذا يأخذ الكلمة المختارة عشوائيًا كمعامل. ستعرض هذه الوظيفة سلسلة من الشرطات الفارغة (_) وبعض الرسائل إلى المستخدم.
تحديد قائمة فارغة حروف لتخزين جميع الأحرف الموجودة في الكلمة. استخدم ال درجة حرارة متغير لتخزين سلسلة تحتوي على عدد الشرطات الفارغة التي تساوي طول الكلمة. يستخدم قائمة() لتحويل السلسلة إلى قائمة من الأحرف وتكرارها. يستخدم ألحق() لإضافة الحرف إلى القائمة إذا لم يكن موجودًا بالفعل.
يستخدم اختيار عشوائي () لاختيار حرف عشوائي ستقدمه للمستخدم مع الشرطات الفارغة. كرر على أحرف الكلمة باستخدام عد لتتبع فهرس كل حرف.
عندما تعثر على الحرف المحدد عشوائيًا ، استبدل الشرطة الفارغة به. يستخدم ينضم() لتوحيد قائمة الأحرف في سلسلة كاملة وإعادتها.
defget_some_letters(word):
letters = []
temp = '_' * len(word)
for char in list(word):
ifchar not in letters:
letters.append(char)
character = random.choice(letters)
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
return temp
تحديد وظيفة draw_hangman () يأخذ عدد الفرص كمعامل. توفر هذه الوظيفة شخصية الرجل المعلق. مع استمرار انخفاض عدد الفرص ، تقل فرص البقاء على قيد الحياة. عندما يستنفد ، يكتمل الشكل وتنتهي اللعبة.
defdraw_hangman(chances):
if chances == 6:
print("________ ")
print("| | ")
print("| ")
print("| ")
print("| ")
print("| ")
elif chances == 5:
print("________ ")
print("| | ")
print("| 0 ")
print("| ")
print("| ")
print("| ")
elif chances == 4:
print("________ ")
print("| | ")
print("| 0 ")
print("| / ")
print("| ")
print("| ")
elif chances == 3:
print("________ ")
print("| | ")
print("| 0 ")
print("| /| ")
print("| ")
print("| ")
elif chances == 2:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| ")
print("| ")
elif chances == 1:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / ")
print("| ")
elif chances == 0:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / \ ")
print("| ")
تعلن وظيفة ، start_hangman_game ()، الذي يحدد المنطق الرئيسي للبرنامج. احصل على كلمة عشوائية عن طريق استدعاء get_random_word_from_wordlist () وظيفة والحصول على التسلسل لعرضه على المستخدم باستخدام get_some_letters () وظيفة.
اضبط عدد الفرص على سبعة وقم بتهيئة متغير ، وجدكاذبة. سوف تقوم بتعيين هذا على حقيقي إذا كان الحرف المخمن موجودًا في الكلمة.
defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False
قم بتعريف حلقة تنتهي عندما يخمن المستخدم الكلمة بشكل صحيح أو تنفد الفرص. ابدأ اللعبة بعرض التسلسل وعدد الأحرف في الكلمة والفرص المتبقية. اطلب من المستخدم تخمين خطاب واستلامه باستخدام ملف مدخل() وظيفة. تحقق من صحة إدخال المستخدم عن طريق التحقق من طول الحرف وما إذا كان أبجديًا.
whileTrue:
if chances == 0:
print(f"Sorry! You Lost, the word was: {word}")
print("Better luck next time")
break
print(" Guess the word ")
print(temp, end='')
print(f"\t(word has {len(word)} letters)")
print(f"Chances left: {chances}")
character = input("Enter the character you think the word may have: ")
iflen(character) > 1 ornotcharacter.isalpha():
print("Please enter a single alphabet only")
continue
إذا كان الإدخال صحيحًا ، فتحقق مما إذا كان الحرف موجودًا في الكلمة واستبدله باستخدام العملية التي تمت مشاهدتها سابقًا وقم بتحديث القيمة التي تم العثور عليها. إذا كانت الشخصية غير موجودة ، قلل من عدد الفرص. إذا كان موجودًا ، أعد قيمة found إلى القيمة الأولية false.
إذا لم يكن هناك شرطات فارغة متبقية ، اعرض فوز المستخدم مع عدد التخمينات التي تم إجراؤها وإلا اعرض رسم الجلاد وفقًا لعدد الفرص المتبقية.
else:
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
found = True
if found:
found = False
else:
chances -= 1
if'_' not in temp:
print(f"\nYou Won! The word was: {word}")
print(f"You got it in {7 - chances} guess")
break
else:
draw_hangman(chances)
print()
تحديد وظيفة للعب لعبة الجلاد. إذا قام المستخدم بإدخال نعم ، اتصل بـ start_hangman_game () وظيفة وإلا قم بإنهاء اللعبة بالرسالة المناسبة. في حالة الإدخال غير الصحيح اطلب من المستخدم الدخول مرة أخرى.
print(" Welcome to the Hangman Game ")
whileTrue:
choice = input("Do you wanna play hangman? (yes/no): ")
if'yes'in choice.lower():
start_hangman_game()
elif'no'in choice.lower():
print('Quitting the game...')
break
else:
print("Please enter a valid choice.")
print("\n")
إخراج لعبة الجلاد
سترى النتيجة التالية إذا فزت باللعبة:
سترى الناتج التالي إذا خسرت اللعبة:
استخدم Python لبناء الألعاب
يمكنك استخدام Python لإنشاء ألعاب سطر أوامر بالإضافة إلى ألعاب رسومية. تتضمن بعض ألعاب سطر الأوامر المثيرة للاهتمام التي يمكنك إنشاؤها باستخدام Python لعبة تخمين الأرقام ولعبة Magic 8 Ball و Mad Libs و Rock / Paper / Scissors ولعبة مغامرة نصية.
تتضمن بعض الألعاب الرسومية الممتعة التي قد تنشئها باستخدام بيثون Tic Tac Toe و Maze و Snake و Pacman و Memory و Life. أفضل جزء في هذه الألعاب هو أنه يمكنك بناؤها باستخدام مكتبة Python القياسية فقط.