سؤال في لعبة hangman

اللعبة لو أنا خمنت الحرف صح مش ليظهر في خانة display ومش بتقف لو كتب الكلمة الصح اللي مخمنها الكمبيوتر ولو كتبت غلط بتقف عادي لما اخلص المحاولات فممكن اللي عارف السبب يساعدني وشكرا مقدما

3 إعجابات

ارسل الكود عشان نراجعه ونعطيك التصحيح بتاعه

إعجابَين (2)

المشكلة غالبًا في تحديث الـ display بعد التخمين الصح أو عند مقارنة الكلمة المخبأة. الحل كالآتي:

  1. تحديث display لما المستخدم يخمن حرف صح:

    for i in range(len(word)):
        if word[i] == guess:
            display[i] = guess
    
  2. إنهاء اللعبة لما الكلمة صح بالكامل:

    if "".join(display) == word:
        print("You win!")
        break
    
  3. التعامل مع المحاولات الغلط:

    if guess not in word:
        attempts -= 1
    

اتأكد إنك بتحدث display وتتحقق من الكلمة بعد كل تخمين.


إعجابَين (2)

ممكن تنسخ الكود كله وتلصقه هنا في رسالة عشان عدل على الكود واعطيك العطل في البرنامج

إعجاب واحد (1)

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!
********
“”")

إعجابَين (2)

الخطا هنا في سطر تبديل الحرف مكان الشارطة والسبب هو انك وضعت علامتين ياساوي وهم لازم علامة واحدة مش اثنين العلامتين يساوي تستدخم للتحقق مش للتحويل اذا بدك تحول فقط ضع علامة يساوي مرة واحدة اليك الكود المعدل وسيعمل باذن الله

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")
إعجاب واحد (1)

اشتغل الحمدلله شكرا لحضرتك

إعجابَين (2)

العفو . . . . . . . . .

إعجاب واحد (1)