This code always exits no matter what the user enters:
Code://This quality application allows you to play Tic-Tac-Toe and not pay attention in class. #include <iostream.h> #include <stdlib.h> #include <time.h> char board[3][3]; int hAxis; int vAxis; int lineCheck; char uRes; char cWin; int pTurn = 0; long xWins = 0; long oWins = 0; long cWins = 0; void endGame(char); char isWinner(); void mainGame(); void main() { srand(time(NULL)); board[0][0] = ' '; board[0][1] = ' '; board[0][2] = ' '; board[1][0] = ' '; board[1][1] = ' '; board[1][2] = ' '; board[2][0] = ' '; board[2][1] = ' '; board[2][2] = ' '; cout << "Welcome to Tic-Tac-Toe!\nYou are player 'X'" << endl; mainGame(); cout << "\n\nThanks for playing!"; } void mainGame() { cout << endl << "MainGame" << endl; int hComp; int vComp; do{ do{ cout << "\n 1 2 3\n" << "1" << board[0][0] << "|" << board[0][1] << "|" << board[0][2] << "\n -+-+-\n" << "2" << board[1][0] << "|" << board[1][1] << "|" << board[1][2] << "\n -+-+-\n" << "3" << board[2][0] << "|" << board[2][1] << "|" << board[2][2] << endl << endl; do{ cout << "Enter Horizontal: "; cin >> hAxis; }while (hAxis > 3 && hAxis < 1); do{ cout << "Enter Vertical: "; cin >> vAxis; }while (vAxis > 3 && vAxis < 1); if (board[vAxis - 1][hAxis - 1] != ' '){cout << "\nThat space is already occupied by '" << board[vAxis - 1][hAxis - 1] << "'!" << endl;}; }while(board[vAxis - 1][hAxis - 1] != ' '); board[vAxis - 1][hAxis - 1] = 'X'; cWin = isWinner(); if(cWin != ' ') endGame(cWin); else{ if (pTurn < 4){ do{ hComp = rand() % 3; vComp = rand() % 3; }while (board[vComp][hComp] != ' '); board[vComp][hComp] = 'O'; }; cWin = isWinner(); if(cWin != ' ') endGame(cWin); else pTurn = pTurn + 1; } }while(pTurn < 5); endGame(isWinner()); mainGame(); } char isWinner() { lineCheck = (int)board[0][0] + (int)board[0][1] + (int)board[0][2]; if(lineCheck == 264 || lineCheck == 237) return (char)(lineCheck / 3); lineCheck = (int)board[1][0] + (int)board[1][1] + (int)board[1][2]; if(lineCheck == 264 || lineCheck == 237) return (char)(lineCheck / 3); lineCheck = (int)board[2][0] + (int)board[2][1] + (int)board[2][2]; if(lineCheck == 264 || lineCheck == 237) return (char)(lineCheck / 3); lineCheck = (int)board[0][0] + (int)board[1][0] + (int)board[2][0]; if(lineCheck == 264 || lineCheck == 237) return (char)(lineCheck / 3); lineCheck = (int)board[0][1] + (int)board[1][1] + (int)board[2][1]; if(lineCheck == 264 || lineCheck == 237) return (char)(lineCheck / 3); lineCheck = (int)board[0][2] + (int)board[1][2] + (int)board[2][2]; if(lineCheck == 264 || lineCheck == 237) return (char)(lineCheck / 3); lineCheck = (int)board[0][0] + (int)board[1][1] + (int)board[2][2]; if(lineCheck == 264 || lineCheck == 237) return (char)(lineCheck / 3); lineCheck = (int)board[0][2] + (int)board[1][1] + (int)board[2][0]; if(lineCheck == 264 || lineCheck == 237) return (char)(lineCheck / 3); return ' '; } void endGame(char winner) { cout << "\n 1 2 3\n" << "1" << board[0][0] << "|" << board[0][1] << "|" << board[0][2] << "\n -+-+-\n" << "2" << board[1][0] << "|" << board[1][1] << "|" << board[1][2] << "\n -+-+-\n" << "3" << board[2][0] << "|" << board[2][1] << "|" << board[2][2] << "\n\n"; switch(cWin) {case 'X': cout << "'X' wins the game!"; xWins = xWins + 1; break; case 'O': cout << "'O' wins the game!"; oWins = oWins + 1; break; case ' ': cout << "It's a cat's game!"; cWins = cWins + 1; break;} cout << "\n\nScoreboard:\n-----------\nX Wins: " << xWins << "\nO Wins: " << oWins << "\nCat's Games: " << cWins << "\n\nWould you like to play again? (Y/N): "; board[0][0] = ' '; board[0][1] = ' '; board[0][2] = ' '; board[1][0] = ' '; board[1][1] = ' '; board[1][2] = ' '; board[2][0] = ' '; board[2][1] = ' '; board[2][2] = ' '; pTurn = 0; cin >> uRes; if (uRes != 'Y' || uRes != 'y') exit(0); else mainGame(); }




Reply With Quote