بالنسبة لأولئك الذين لا يعرفون، الجلاد هي لعبة تخمين الكلمات التي يتم لعبها تقليديًا باستخدام القلم والورق. يتم اختيار الكلمة سرًا، والشيء الوحيد المعروف عنها هو عدد الحروف التي تحتوي عليها. يقوم اللاعب بتخمين الحرف، وإذا كان موجودًا في الكلمة، فسيتم الكشف عن موضعه. التخمينات غير الصحيحة تحسب ضد اللاعب. إذا خمنت الكلمة التي فزت بها، قم بإجراء الكثير من التخمينات الخاطئة وتنتهي اللعبة.
حسنًا، الآن نعلم جميعًا ما تستلزمه اللعبة، فلنرى كيف قد يبدو هذا عند اللعب في بايثون.
Word: --- Wrong guesses: Guess a letter > a Word: -a- Wrong guesses: Guess a letter > g Word: -a- Wrong guesses: g Guess a letter > t Word: -at Wrong guesses: g Guess a letter > c Word: cat Well done! You guessed the word with 1 wrong guesses.
لنبدأ برنامج بايثون جديد لصنع هذه اللعبة. سنحتاج إلى كلمة للتخمين وطريقة لتتبع التخمينات الصحيحة وغير الصحيحة.
word = "something" guessed_letters = [] incorrect_letters = []
ما المشكلة بين الأقواس المربعة؟ هذا بايثون يتحدث عن قائمة جديدة. القائمة هي متغير يمكنه تخزين أكثر من قيمة واحدة. في هذه الحالة سنقوم بتخزين الحروف في القوائم، لكن بايثون ستسمح لك بوضع أي شيء هناك.
ستكون لعبتنا في الأساس عبارة عن حلقة تظهر للاعب أجزاء الكلمة التي تم تخمينها حتى الآن، ثم تطلب منه تخمينًا آخر. يمكننا استخدام حلقة while لتنفيذ ذلك. ولكن ماذا يجب أن يكون شرطنا لإنهاء الحلقة؟ حسنًا، هناك سببان وراء رغبتنا في إنهاء اللعبة:
يتحقق الشرط الأول عندما يكون عدد الحروف في قائمة الحروف_المخمنة هو نفس عدد الحروف في الكلمة. لذلك تحتاج حلقتنا إلى التشغيل بينما ليس هذا هو الحال. في بايثون يمكن كتابة هذا بالشكل len(guessed_letters) != len(word). تخبرك الدالة len() بطول القائمة أو السلسلة.
يتم استيفاء الشرط الثاني عندما يكون عدد الأحرف في قائمة الحروف غير الصحيحة أكبر من الحد الأقصى لعدد التخمينات المسموح بها. لذلك تحتاج حلقتنا أيضًا إلى التشغيل بينما ليس هذا هو الحال. في Python، يمكن كتابة هذا بالشكل len(incorrect_letters) بجمع كل ذلك معًا، تبدأ حلقة while الخاصة بنا على هذا النحو. داخل حلقتنا، سنحتاج إلى القيام بأربعة أشياء: دعونا نتعامل معها بالترتيب. نحتاج إلى إظهار الكلمة للاعب، ولكن يجب الكشف فقط عن الحروف التي خمنها بشكل صحيح. يجب استبدال بقية الحروف بحرف شرطة. لنكتب دالة تقوم بذلك من أجلنا. سوف يستغرق الأمر وسيطتين، الكلمة المراد إظهارها وقائمة بالأحرف التي تم تخمينها بشكل صحيح. نقوم بتكرار كل حرف في الكلمة باستخدام حلقة for. نقوم بعد ذلك بالتحقق مما إذا كان الحرف موجودًا في قائمة الحروف باستخدام عامل التشغيل in. إذا كان كذلك، فإننا نطبعه. إذا لم يكن الأمر كذلك، فإننا نطبع شرطة بدلاً من ذلك. نستخدم الوسيطة end = "" في استدعاءات الطباعة لإيقاف طباعة سطر جديد. لنكتب دالة أخرى لإظهار التخمينات الخاطئة. هذا هو أبسط بكثير من الأخير. يستغرق الأمر وسيطة واحدة، وقائمة من التخمينات الخاطئة، ويستخدم حلقة for مرة أخرى لطباعة كل واحدة. وظيفتنا التالية هي الحصول على تخمين من اللاعب. للتأكد من أن اللاعب يكتب شيئًا ما بالفعل، سنستخدم حلقة while. سنستمر في مطالبتهم بالتخمين حتى يكتبوا واحدًا. وأخيرًا، يجب أن يكون التخمين مجرد حرف واحد، لذلك نعيد فقط الحرف الأول الذي يكتبونه. بمجرد أن نتلقى خطابًا من اللاعب، يمكننا أن نقرر أي من القائمتين يجب أن نضيفه أيضًا. إذا كان الحرف في الكلمة، فهو تخمين صحيح. يمكننا إضافتها إلى قائمة الحروف التخمينية باستخدام طريقة الإلحاق (). إذا لم يكن موجودًا في الكلمة، فيجب إضافته إلى قائمة الحروف غير الصحيحة. ولكن يجب علينا أيضًا التحقق مما إذا كان قد تم بالفعل تخمين الرسالة من قبل. نقوم بذلك عن طريق التحقق مما إذا كانت إحدى القوائم التي تحتوي على عامل التشغيل. (وبهذه الطريقة يتم تسجيل كل تخمين مرة واحدة فقط.) أخيرًا وليس آخرًا، نحتاج إلى عرض رسالة مناسبة للاعب عند انتهاء حلقة اللعبة. اعتمادًا على ما إذا كانوا قد خمنوا الكلمة أم لا، ستكون الرسالة رسالة نجاح أو فشل. كيف نعرف إذا كانوا قد خمنوا الكلمة بشكل صحيح؟ سيكون عدد الحروف في قائمة الحروف_المخمنة بنفس طول الكلمة. هذا كل شيء! لدينا لعبة الجلاد كاملة. لجعل اللعبة أصعب أو أسهل، قم بتغيير عدد التخمينات الخاطئة المسموح بها.# Game loop.
MAX_WRONG_GUESSES = 5
while len(guessed_letters) != len(word) and len(incorrect_letters)
إظهار الكلمة
def show_word(word, letters):
print("Word: ", end="")
for letter in word:
if letter in letters:
print(letter, end="")
else:
print("-", end="")
print()
عرض التخمينات الخاطئة
def show_wrong_guesses(guesses):
print("Wrong guesses: ", end="")
for letter in guesses:
print(letter, end="")
print()
الحصول على تخمين اللاعب
def get_letter():
letter = ""
while letter == "":
letter = input("Guess a letter > ")
return letter[0]
تسجيل التخمين
if letter in word and letter not in guessed_letters:
guessed_letters.append(letter)
elif letter not in incorrect_letters:
incorrect_letters.append(letter)
الانتهاء من اللعبة
# End of game message.
if len(guessed_letters) == len(word):
show_word(word, guessed_letters)
print(f"Well done! You guessed the word with {len(incorrect_letters)} wrong guesses.")
else:
print(f"Too many wrong guesses! The word was '{word}'")
قائمة البرنامج كاملة
def show_word(word, letters):
print("Word: ", end="")
for letter in word:
if letter in letters:
print(letter, end="")
else:
print("-", end="")
print()
def show_wrong_guesses(guesses):
print("Wrong guesses: ", end="")
for letter in guesses:
print(letter, end="")
print()
def get_letter():
letter = ""
while letter == "":
letter = input("Guess a letter > ")
return letter[0]
word = "something"
guessed_letters = []
incorrect_letters = []
# Game loop.
MAX_WRONG_GUESSES = 5
while len(guessed_letters) != len(word) and len(incorrect_letters)
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3