البرمجة

حل مشاكل تشغيل لعبة Tic Tac Toe في Python 2.7

في البداية، يجدر بنا أن نلاحظ أن الكود الذي قدمته يستخدم بيئة Python 2، حيث أنه يستخدم دالة print كجملة وليس كدالة كما هو الحال في Python 3. لذا يفضل ترقية الكود إلى Python 3 لتجنب مشاكل التوافق.

الخطأ الذي تواجهه يعود إلى عدم توفر الأقواس لدعم الدوال في Python 2. يجب أن تتأكد من أنك تستخدم أقواسًا حول النص الذي يُطبع بواسطة دالة print، ويجب أيضاً استخدام دالة raw_input بدلاً من input.

لتصحيح هذا، يمكنك تحديث الكود كما يلي:

python
# استخدام أقواس في دالة الطباعة واستخدام raw_input بدلاً من input print("To play this game, you use your 1-9 keys") print("This is layout of each number representing a square") print("7|8|9") print("4|5|6") print("1|2|3") print(" ") # ... # استخدام دالة raw_input بدلاً من input letter = raw_input("Do you want to be X or O? ").upper() # ... # استخدام دالة raw_input بدلاً من input print("Do you want to play again?(Y/N)") return raw_input("").lower().startswith('y') # ... # استخدام دالة raw_input بدلاً من input print("Flipping the coin...") sleep(2)

يرجى تحديث الأمور المشار إليها ومن ثم إعادة تشغيل البرنامج. إذا استمرت المشكلة، يمكنك مشاركة الأخطاء الجديدة التي تظهر لك حتى أتمكن من تقديم المساعدة بشكل أفضل.

المزيد من المعلومات

في محاولة لتحسين الكود وتوضيح الأخطاء، دعنا نقوم بإجراء بعض التعديلات. قد تواجه تحديات إضافية بناءً على التغييرات التي قد تطرأ على الأكواد الأخرى في المشروع. يرجى التأكد من تحديث الجزء التالف بالشكل الصحيح:

  1. استخدام دالة input() بدلاً من raw_input():
python
letter = input("Do you want to be X or O? ").upper()
  1. تحديث دوال raw_input في دوال أخرى أيضًا.

  2. في دالة choosemovefromlist, قم بتصحيح الأخطاء في استخدام اسم المتغير movelist بشكل صحيح، وكذلك في استخدام possiblemove بدلاً من possiblemoves:

python
def choosemovefromlist(board, movelist): possiblemoves = [] for i in movelist: if isspacefree(board, i): possiblemoves.append(i) if len(possiblemoves) != 0: return random.choice(possiblemoves) else: return None
  1. في دالة computerai, تأكد من تصحيح الأخطاء في الاستدعاءات لدوال getboardcopy و getplayermove:
python
def computerai(board, computerletter): if computerletter == 'X': playerletter = 'O' else: playerletter = 'X' for i in range(1,10): dupe = getboardcopy(board) if isspacefree(dupe, i): makemove(dupe, computerletter, i) if winner(dupe, computerletter): return i for i in range(1,10): dupe = getboardcopy(board) if isspacefree(dupe, i): makemove(dupe, playerletter, i) if winner(dupe, playerletter): return i move = choosemovefromlist(board, [1, 3, 7, 9]) if move != None: return move if isspacefree(board, 5): return 5 return choosemovefromlist(board, [2, 4, 6, 8])

تأكد من تنفيذ هذه التحسينات وإعادة تشغيل البرنامج. إذا واجهت أي أخطاء إضافية، يرجى مشاركتها لكي أتمكن من تقديم المساعدة المناسبة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر