حاولت في حل hangmane لكن الكود لم يشتغل
import random
#قائمة اشكال هانغ مان
HANGMANPICS = [‘’’
±–+
| |
|
|
|
|
=========‘’‘, ‘’’
±–+
| |
O |
|
|
|
=========‘’‘, ‘’’
±–+
| |
O |
| |
|
|
=========‘’‘, ‘’’
±–+
| |
O |
/| |
|
|
=========‘’‘, ‘’’
±–+
| |
O |
/|\ |
|
|
=========‘’‘, ‘’’
±–+
| |
O |
/|\ |
/ |
|
=========‘’‘, ‘’’
±–+
| |
O |
/|\ |
/ \ |
|
=========‘’']
#قائمة الكلمات العشوائية
words=[“ali”,“ahmed”,“amen”]
#متغير للكلمة العشوائية
random_word=random.choice(words)
#متغير لطول الكلمة العشوائية
display=[““]* len(random_word)
#طبع فراعات الكلمة العشوائية
print(” ".join (display))
#طبع اول شكل
print(HANGMANPICS[0])
print(random_word)
#while loop
tries=0
while "” in display and tries > 0:
geuss=input(“geuss a lettre: “)
#اذا التخمين صحيح
for position in range(len(random_word)):
if random_word [position] == geuss:
print(display)
print(f"you have {tries} more tries”)
continue
#اذا التخمين خاطئ
for position in range(len(random_word)):
if random_word [position] == geuss:
tries-=1
print(HANGMANPICS[position])
print(f"you have {tries} more tries”)
if geuss == geuss:
print(“you alredy gessed this. try again”)
print(f"you have {tries} more tries")
هل ممكن تعطوني تلمبح…؟؟؟
أخى حاول تاخد سكرين شوت من الكود علشان يبقي من السهل قراءته ومساعدتك فى حل المشكلة
هذا الكود اللذي كتبه
import random
#قائمة اشكال هانغ مان
HANGMANPICS = [‘’’
±–+
| |
|
|
|
|
=========‘’‘, ‘’’
±–+
| |
O |
|
|
|
=========‘’‘, ‘’’
±–+
| |
O |
| |
|
|
=========‘’‘, ‘’’
±–+
| |
O |
/| |
|
|
=========‘’‘, ‘’’
±–+
| |
O |
/|\ |
|
|
=========‘’‘, ‘’’
±–+
| |
O |
/|\ |
/ |
|
=========‘’‘, ‘’’
±–+
| |
O |
/|\ |
/ \ |
|
=========‘’']
#قائمة الكلمات العشوائية
words=[“ali”,“ahmed”,“amen”]
#متغير للكلمة العشوائية
random_word=random.choice(words)
#متغير لطول الكلمة العشوائية
display=[““]* len(random_word)
#طبع فراعات الكلمة العشوائية
print(” ".join (display))
#طبع اول شكل
print(HANGMANPICS[0])
print(random_word)
#while loop
tries=0
while "” in display and tries > 0:
geuss=input(“geuss a lettre: “)
#اذا التخمين صحيح
for position in range(len(random_word)):
if random_word [position] == geuss:
print(display)
print(f"you have {tries} more tries”)
continue
#اذا التخمين خاطئ
for position in range(len(random_word)):
if random_word [position] == geuss:
tries-=1
print(HANGMANPICS[position])
print(f"you have {tries} more tries”)
if geuss == geuss:
print(“you alredy gessed this. try again”)
print(f"you have {tries} more tries")
هل ممكن تعطوني تلمبح…؟؟؟
يبدو ان الكود اللذي ارسلته مليئ بالاخطاء في قواعد البرمجة
واول خطا ومشكلته كبيرة هو انك وضعت علامات تنصيص مخلتفة بتاتا عن علامات التنصيص المخصصة لبايثون فانت تضع هذه العلامات ‘’’ والاصل وضع هذه االعلامة " وتكررها ثلاث مرات وهذه العلامة للتنصيص تحصل عليها بمجرد ضغطك على مفتاحي Shift و حرف الـ ط كما في الصورة
والخطا الاخر انك لم تفعل محاذاة لسطور البرمجة فمثلا كل اوامر الل while اسفلها في نفس محاذاة الـ While رغم انه من المفترض ان تكون الاوامر متقدمة قليل في السطر عن اداة while
وخطا ايضا بان الـ While لن تعمل ابدا لانك وضعت بها شرطا بانه اذا كان منغير tries اكثر من صفر يعمل والمتغير قيمته صفر اذا فلن يعمل اللوب ابدا لان القيمة لسيت اكبر من صفر وهذا الشرط انت وضعته لكي يعمل اللوب اذا كان متغير المحاولات اكثر من صفر يعمل عليك ان تجعل قيمة المتغير 6 لكي يكون لدى المستخدم 6 محاولات او انت تختار عدد المحاولات
وايضا هناك الكثير من الاخطاء في الكود لا يسعني كتباتها هنا الان ولكن خذ هذا هو الكود بعد اعادة بناءه من جديد قران بينه وبين الكود اللذي عندك ومن ثم تعلم من الاخطاء لتستفيد
import random
# List of Hangman drawings (enhanced)
hangman = [
"""
+---+
| |
|
|
|
|
=========
""",
"""
+---+
| |
O |
|
|
|
=========
""",
"""
+---+
| |
O |
| |
|
|
=========
""",
"""
+---+
| |
O |
/| |
|
|
=========
""",
"""
+---+
| |
O |
/|\\ |
|
|
=========
""",
"""
+---+
| |
O |
/|\\ |
/ |
|
=========
""",
"""
+---+
| |
O |
/|\\ |
/ \\ |
|
=========
"""
]
# List of random words
words = ["ali", "ahmed", "amen"]
# Choose a random word
random_word = random.choice(words)
# List to display guessed letters
display = ["_"] * len(random_word)
# Print the initial underscores
print(" ".join(display))
# Remaining tries
tries = 6
while "_" in display and tries > 0:
guess = input("Guess a letter:")
# Check if the guess is correct
for position in range(len(random_word)):
if random_word[position] == guess:
display[position] = guess
print(" ".join(display))
print(f"You have {tries} more tries")
break
else:
tries -= 1
print(hangman[6 - tries])
print(f"You have {tries} more tries")
if "_" not in display:
print("Well done! You successfully guessed the word.")
else:
print(f"Unfortunately, the correct word was: {random_word}")
ارجو ان اكون قد ساعدتك بالشكل الجيد
اليك الكود اللذي انا انشاته عندما كنت في هذه الوحدة
onee = """
+---+
| |
|
|
|
|
=========
"""
tow = """
+---+
| |
O |
|
|
|
=========
"""
three = """
+---+
| |
O |
| |
|
|
=========
"""
four = """
+---+
| |
O |
/| |
|
|
=========
"""
five = """
+---+
| |
O |
/|\ |
|
|
=========
"""
six = """
+---+
| |
O |
/|\ |
/ |
|
=========
"""
hangman = [onee,tow,three,four,five,six,""]
import random
fruit = ["apple","fig","kiwi","grape","milon","banana","orange"]
a_piece_of_fruits = random.choice(fruit)
tries = 6
display = ["-"] * len(a_piece_of_fruits)
while "".join(display) != a_piece_of_fruits:
bask = " ".join(display)
wh = input(f"\n{bask}\n\nPlease guess a letter: ").lower()
if wh in display:
print("\nThe letter is present in the word try again.")
else:
for s in range(len(a_piece_of_fruits)):
if a_piece_of_fruits[s] == wh :
display[s] = wh
if "".join(display) == a_piece_of_fruits:
print("\nCongratulations.")
elif wh in display:
print("\nExcellent, keep going, you win.")
if wh not in display:
tries -= 1
print(hangman[0])
hangman.pop(0)
print("\nYou lost try again.")
if tries < 0:
break
if "".join(display) == a_piece_of_fruits:
print(f"""\n{" ".join(a_piece_of_fruits)}\n
+---+
|
|
O |
/|\ |
/ \ |
=========
---------
YOU WON
---------
\nThe correct answer is ({"".join(a_piece_of_fruits)})\n""")
else:
print(f"""\n
+---+
| |
O |
/|\ |
/ \ |
|
=========
----------
YOU LOST
----------
\nyour answer is ({"".join(display)})\nThe correct answer is ({"".join(a_piece_of_fruits)})\n""")
يبدو أنك على وشك إنشاء لعبة “Hangman” رائعة! لكن هناك بعض الأمور التي تحتاج إلى تحسين في الكود لضمان تشغيله بشكل صحيح. إليك بعض النصائح والتحسينات:
-
تصحيح القوائم النصية:
- استخدم علامات الاقتباس الصحيحة للأحرف المفردة في القوائم النصية. بدلاً من
"“
استخدم""
وبدلاً من‘’‘
استخدم'''
أو"""
.
- استخدم علامات الاقتباس الصحيحة للأحرف المفردة في القوائم النصية. بدلاً من
-
تحسين المنطق:
- عليك بتصحيح المنطق في الحلقة
while
للتأكد من استمرار اللعبة حتى يتم إما العثور على الكلمة كاملةً أو نفاد المحاولات.
- عليك بتصحيح المنطق في الحلقة
-
تصحيح الأخطاء الإملائية:
- تأكد من تصحيح الأخطاء الإملائية في الأوامر والرسائل مثل
geuss
إلىguess
وf"you have {tries} more tries”
إلىf"You have {tries} more tries"
.
- تأكد من تصحيح الأخطاء الإملائية في الأوامر والرسائل مثل
-
تحديث طريقة عرض الكلمة:
- تحديث
display
لإظهار الأحرف الصحيحة بعد كل تخمين.
- تحديث
إليك نسخة معدلة من الكود مع بعض التحسينات:
import random
# قائمة أشكال هانغ مان
HANGMANPICS = [
'''
+--+
| |
|
|
|
|
=========
''', '''
+--+
| |
O |
|
|
|
=========
''', '''
+--+
| |
O |
| |
|
|
=========
''', '''
+--+
| |
O |
/| |
|
|
=========
''', '''
+--+
| |
O |
/|\\ |
|
|
=========
''', '''
+--+
| |
O |
/|\\ |
/ |
|
=========
''', '''
+--+
| |
O |
/|\\ |
/ \\ |
|
=========
'''
]
# قائمة الكلمات العشوائية
words = ["ali", "ahmed", "amen"]
# اختيار كلمة عشوائية
random_word = random.choice(words)
# قائمة لعرض الكلمة
display = ["_"] * len(random_word)
# طبع الحالة الأولية
print(" ".join(display))
print(HANGMANPICS[0])
# عدد المحاولات
tries = 6
while "_" in display and tries > 0:
guess = input("Guess a letter: ").lower()
if len(guess) != 1 or not guess.isalpha():
print("Please enter a single letter.")
continue
if guess in display:
print("You already guessed this letter. Try again.")
continue
if guess in random_word:
for position in range(len(random_word)):
if random_word[position] == guess:
display[position] = guess
print("Correct guess!")
else:
tries -= 1
print(HANGMANPICS[6 - tries])
print(f"You have {tries} more tries.")
print(" ".join(display))
if "_" not in display:
print("Congratulations! You've guessed the word!")
else:
print(f"Game over. The word was '{random_word}'.")
نصائح تحفيزية:
- التعلم من الأخطاء: الأخطاء هي فرصة لتعلم أشياء جديدة. كلما قمت بتصحيح الأخطاء، كلما زادت مهارتك.
- الاستمرار في التجربة: استمر في العمل على مشاريع جديدة وتعلم تقنيات جديدة. كل تجربة تمنحك خبرة قيمة.
- استمتع بالبرمجة: البرمجة هي رحلة ممتعة. استمتع بالعملية وكن فخورًا بكل خطوة تقوم بها!
حافظ على حماسك واستمر في التعلم والتطوير!