diff --git a/X o game b/X o game new file mode 100644 index 0000000..154114e --- /dev/null +++ b/X o game @@ -0,0 +1,86 @@ +#include +using namespace std; +cout<<"welcome to (x,o) game:"<> choice; + + // تحويل الرقم إلى row و col + row = (choice - 1) / 3; + col = (choice - 1) % 3; + + // التأكد إن الخانة فاضية + if (g[row][col] == 'X' || g[row][col] == 'O') { + cout << "This slot is already taken! Try again.\n"; + player--; // نرجّع الدور لنفس اللاعب + continue; + } + + // وضع العلامة + g[row][col] = mark; + + // التحقق من الفوز + // صفوف + for (int i = 0; i < 3; i++) { + if (g[i][0] == mark && g[i][1] == mark && g[i][2] == mark) { + cout << "\nPlayer " << mark << " wins!\n"; + return 0; + } + } + + // أعمدة + for (int i = 0; i < 3; i++) { + if (g[0][i] == mark && g[1][i] == mark && g[2][i] == mark) { + cout << "\nPlayer " << mark << " wins!\n"; + return 0; + } + } + + // قطر + if (g[0][0] == mark && g[1][1] == mark && g[2][2] == mark) { + cout << "\nPlayer " << mark << " wins!\n"; + return 0; + } + + // قطر عكسي + if (g[0][2] == mark && g[1][1] == mark && g[2][0] == mark) { + cout << "\nPlayer " << mark << " wins!\n"; + return 0; + } + } + + // لو خلصت الـ 9 لَفّات → تعادل + cout << "\nIt's a draw!\n"; + return 0; +}