اللعبة لو أنا خمنت الحرف صح مش ليظهر في خانة display ومش بتقف لو كتب الكلمة الصح اللي مخمنها الكمبيوتر ولو كتبت غلط بتقف عادي لما اخلص المحاولات فممكن اللي عارف السبب يساعدني وشكرا مقدما
ارسل الكود عشان نراجعه ونعطيك التصحيح بتاعه
المشكلة غالبًا في تحديث الـ display
بعد التخمين الصح أو عند مقارنة الكلمة المخبأة. الحل كالآتي:
-
تحديث
display
لما المستخدم يخمن حرف صح:for i in range(len(word)): if word[i] == guess: display[i] = guess
-
إنهاء اللعبة لما الكلمة صح بالكامل:
if "".join(display) == word: print("You win!") break
-
التعامل مع المحاولات الغلط:
if guess not in word: attempts -= 1
اتأكد إنك بتحدث display
وتتحقق من الكلمة بعد كل تخمين.
ممكن تنسخ الكود كله وتلصقه هنا في رسالة عشان عدل على الكود واعطيك العطل في البرنامج
import random
hangman_stage = [‘’’
±–+
| |
|
|
|
|
=========‘’‘, ‘’’
±–+
| |
O |
|
|
|
=========‘’‘, ‘’’
±–+
| |
O |
| |
|
|
=========‘’‘, ‘’’
±–+
| |
O |
/| |
|
|
=========‘’‘, ‘’’
±–+
| |
O |
/|\ |
|
|
=========‘’‘, ‘’’
±–+
| |
O |
/|\ |
/ |
|
=========‘’‘, ‘’’
±–+
| |
O |
/|\ |
/ \ |
|
=========‘’']
words = [“cat”, “dog”, “ant”]
random_word = random.choice(words)
display = [“_”] * len(random_word)
print(’ '.join(display))
chances = 6
guessed_letter =
print(hangman_stage[0])
while “_” in display and chances > 0:
guessed = input("Please guess a letter: ").lower()
if guessed in guessed_letter:
print(“You already guessed that. Try again.”)
print(f"You have {chances} more tries")
continue
guessed_letter.append(guessed)
if guessed not in random_word:
chances -= 1
print(hangman_stage[6 - chances])
else:
for position in range(len(random_word)):
if random_word[position] == guessed:
display[position] == guessed
print(’ '.join(display))
print()
print(f"You have {chances} more tries")
if chances == 0 :
print(“”"
You lose!
“”“)
print(hangman_stage[-1])
else:
print(”“”"
********
YOU WIN!
********
“”")
الخطا هنا في سطر تبديل الحرف مكان الشارطة والسبب هو انك وضعت علامتين ياساوي وهم لازم علامة واحدة مش اثنين العلامتين يساوي تستدخم للتحقق مش للتحويل اذا بدك تحول فقط ضع علامة يساوي مرة واحدة اليك الكود المعدل وسيعمل باذن الله
while "_" in display and chances > 0:
guessed = input("Please guess a letter: ").lower()
if guessed in guessed_letter:
print("You already guessed that. Try again.")
print(f"You have {chances} more tries")
continue
guessed_letter.append(guessed)
if guessed not in random_word:
chances -= 1
print(hangman_stage[6 - chances])
else:
for position in range(len(random_word)):
if random_word[position] == guessed:
display[position] = guessed
print(' '.join(display))
print()
print(f"You have {chances} more tries")
اشتغل الحمدلله شكرا لحضرتك
العفو . . . . . . . . .