ماجد العماري نشر 10 أغسطس 2023 أرسل تقرير نشر 10 أغسطس 2023 (معدل) fullgame = { 1: " ", 2: " ", 3: " ", 4: " ", 5: " ", 6: " ", 7: " ", 8: " ", 9: " ", } def if_is_equl(a, b, c): if a == b == c and b != " ": print(f"game over you {b} win>>>>>>> ") cont = "x" for i in fullgame: print(f"{fullgame[1]} | {fullgame[2]} | {fullgame[3]} ") print("-------------") print(f"{fullgame[4]} | {fullgame[5]} | {fullgame[6]} ") print("-------------") print(f"{fullgame[7]} | {fullgame[8]} | {fullgame[9]} ") inp = int(input("Enter number: ")) if inp > 9: print("the number is beger than a limit 1 to 9 try again .....") if fullgame[i] == " " and cont != "o": fullgame.update({inp: cont}) cont = "o" elif fullgame[i] == " " and cont != "x": fullgame.update({inp: cont}) cont = "x" if_is_equl(fullgame[2], fullgame[5], fullgame[8]) if_is_equl(fullgame[1], fullgame[4], fullgame[7]) if_is_equl(fullgame[3], fullgame[6], fullgame[9]) if_is_equl(fullgame[1], fullgame[2], fullgame[3]) if_is_equl(fullgame[4], fullgame[5], fullgame[6]) if_is_equl(fullgame[7], fullgame[8], fullgame[9]) if_is_equl(fullgame[1], fullgame[5], fullgame[9]) if_is_equl(fullgame[3], fullgame[5], fullgame[7]) تم التعديل في 11 أغسطس 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال ونص السؤال اقتباس
1 Hessen Nasser نشر 11 أغسطس 2023 أرسل تقرير نشر 11 أغسطس 2023 لكي تستطيع أن تحتفظ بالتوالي بقيم الـX والـO بالشكل الصحيح في لوحة اللعبة لديك بعض الأخطاء في الكود التي قد تؤدي إلى عدم العمل الصحيح للعبة سأساعدك على تصحيحها وشرح ما تم تعديله. المشكلة 1: هناك مشكلة في توالي تبديل اللاعبين X و O الكود كان يحاول تغيير اللاعب بناءً على حالة الخلية الحالية ولكن هذا لا يعمل بشكل صحيح ولكي يتم حل المشكله قم باستخدام متغير cont لتتبع اللاعب الحالي عندما يتم الضغط على خلية صالحة سيتم تغيير اللاعب الحالي من "X" إلى "O" والعكس باستخدام هذا الشرط: cont = "o" if cont == "x" else "x" المشكلة 2: يوجد مشكلة في التحقق من حالة الخلية قبل تغييرها يجب عليك التحقق مما إذا كانت الخلية فارغة قبل تغييرها لتقوم بحل هذه المشكله قم بإضافة هذا الشرط: if fullgame[inp] == " ": fullgame[inp] = cont للتحقق مما إذا كانت الخلية الحالية فارغة قبل تغييرها إذا كانت الخلية محجوزة سيتم طباعة رسالة تعلم اللاعب بأنه يجب اختيار رقم آخر. هذا الكود كامل بعد التعديل : fullgame = {1: " ", 2: " ", 3: " ", 4: " ", 5: " ", 6: " ", 7: " ", 8: " ", 9: " "} def if_is_equal(a, b, c): if a == b == c and b != " ": print(f'Game over! Player {b} wins!') return True return False cont = "x" while True: # عرض لوحة اللعبة for i in range(1, 10): print(fullgame[i], " |", end=" ") if i % 3 == 0: print("\n-------------") inp = int(input("Enter number: ")) # التحقق من صحة الرقم if inp > 9: print("The number is greater than the limit (1 to 9). Please try again.") continue # التحقق من احتلال الخلية if fullgame[inp] == " ": fullgame[inp] = cont # التحقق من انتهاء اللعبة if if_is_equal(fullgame[1], fullgame[2], fullgame[3]) or \ if_is_equal(fullgame[4], fullgame[5], fullgame[6]) or \ if_is_equal(fullgame[7], fullgame[8], fullgame[9]) or \ if_is_equal(fullgame[1], fullgame[4], fullgame[7]) or \ if_is_equal(fullgame[2], fullgame[5], fullgame[8]) or \ if_is_equal(fullgame[3], fullgame[6], fullgame[9]) or \ if_is_equal(fullgame[1], fullgame[5], fullgame[9]) or \ if_is_equal(fullgame[3], fullgame[5], fullgame[7]): break # تغيير اللاعب الحالي cont = "o" if cont == "x" else "x" else: print("This cell is already occupied. Please choose another number.") ستعمل معك اللعبه بشكل صحيح كما هو موضح بالصوره: اقتباس
0 Mustafa Suleiman نشر 11 أغسطس 2023 أرسل تقرير نشر 11 أغسطس 2023 عليك باستخدام عبارة if للتحقق مما إذا كان الإدخال يساوي الحرف "o"، وإذا كان الأمر كذلك، يمكنك طباعة رسالة إلى المستخدم ومطالبته بإدخال رقم مختلف. مثل إضافة الكود التالي إلى الدالة if_is_equl(): if inp == 'o': print('لا يمكنك إدخال o. يرجى إدخال x أو 1 إلى 9.') inp = int(input('أدخل رقمًا: ')) سيتحقق الكود مما إذا كان الإدخال يساوي الحرف "o". إذا كان الأمر كذلك، فسيطبع رسالة إلى المستخدم ويطلب منه إدخال رقم مختلف. ثم سيُطلب من المستخدم إدخال رقم جديد. يمكنك أيضًا إضافة ذلك الكود إلى حلقة while في الوظيفة الرئيسية: while True: inp = int(input("أدخل رقمًا: ")) if inp > 9: print("الرقم أكبر من الحد الأقصى وهو 1 إلى 9. أعد المحاولة .....") elif inp == 'o': print('لا يمكنك إدخال o. يرجى إدخال x أو 1 إلى 9.') continue else: break وسيمنع ذلك المستخدم من إدخال الحرف "o" بدلاً من الحرف "x". اقتباس
السؤال
ماجد العماري
تعديل عنوان السؤال ونص السؤال
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.