I'm making a tic tac toe game but it's not working properly. Sometimes it work properly for a while but then becomes unresponsive.
Code:#include <iostream> #include "pause.h" #include "gotoxy.h" #include "mouse.h" #include "random.h" const char cross = 197, vline = 179, hline = 196; #define COMPUTER 0 #define PLAYER 1 namespace game{ int turn = random()%2; char board[3][3] = {{' ',' ',' '},{' ',' ',' '},{' ',' ',' '}}; int boardpos[3] = {10, 12, 14}; int x, y, click; void draw(); void p1move(); void compmove(); int checkwin(); } using namespace game; int main(){ int Continue = true; while (Continue){ Continue = play(); } } void game::draw(){ gotoxy(10,10);cout<<board[0][0]<<vline<<board[1][0]<<vline<<board[2][0]; gotoxy(10,11);cout<< hline <<cross<< hline <<cross<< hline ; gotoxy(10,12);cout<<board[0][1]<<vline<<board[1][1]<<vline<<board[2][1]; gotoxy(10,13);cout<< hline <<cross<< hline <<cross<< hline ; gotoxy(10,14);cout<<board[0][2]<<vline<<board[1][2]<<vline<<board[2][2]; } void game::p1move(){ mouse(x, y, click); if (x == boardpos[0] && y == boardpos[0] && click && board[0][0] == ' '){ board[0][0] = 'X'; turn = COMPUTER; } if (x == boardpos[1] && y == boardpos[0] && click && board[0][0] == ' '){ board[1][0] = 'X'; turn = COMPUTER; } if (x == boardpos[2] && y == boardpos[0] && click && board[0][0] == ' '){ board[2][0] = 'X'; turn = COMPUTER; } if (x == boardpos[0] && y == boardpos[1] && click && board[0][0] == ' '){ board[0][1] = 'X'; turn = COMPUTER; } if (x == boardpos[1] && y == boardpos[1] && click && board[0][0] == ' '){ board[1][1] = 'X'; turn = COMPUTER; } if (x == boardpos[2] && y == boardpos[1] && click && board[0][0] == ' '){ board[2][1] = 'X'; turn = COMPUTER; } if (x == boardpos[0] && y == boardpos[2] && click && board[0][0] == ' '){ board[0][2] = 'X'; turn = COMPUTER; } if (x == boardpos[1] && y == boardpos[2] && click && board[0][0] == ' '){ board[1][2] = 'X'; turn = COMPUTER; } if (x == boardpos[2] && y == boardpos[2] && click && board[0][0] == ' '){ board[2][2] = 'X'; turn = COMPUTER; } } void game::compmove(){ if (board[0][0] == 'O' && board[1][0] == 'O' && board[2][0] == ' ')//horizontally board[2][0] = 'O'; else if (board[0][0] == 'O' && board[2][0] == 'O' && board[1][0] == ' ') board[1][0] = 'O'; else if (board[1][0] == 'O' && board[2][0] == 'O' && board[0][0] == ' ') board[0][0] = 'O'; else if (board[0][1] == 'O' && board[1][1] == 'O' && board[2][1] == ' ') board[2][1] = 'O'; else if (board[0][1] == 'O' && board[2][1] == 'O' && board[1][1] == ' ') board[1][1] = 'O'; else if (board[1][1] == 'O' && board[2][1] == 'O' && board[0][1] == ' ') board[0][1] = 'O'; else if (board[0][2] == 'O' && board[1][2] == 'O' && board[2][2] == ' ') board[2][2] = 'O'; else if (board[0][2] == 'O' && board[2][2] == 'O' && board[1][2] == ' ') board[1][2] = 'O'; else if (board[1][2] == 'O' && board[2][2] == 'O' && board[0][2] == ' ') board[0][2] = 'O'; else if (board[0][0] == 'O' && board[1][1] == 'O' && board[2][2] == ' ')//diagonally board[2][2] = 'O'; else if (board[0][0] == 'O' && board[2][2] == 'O' && board[1][1] == ' ') board[1][1] = 'O'; else if (board[1][1] == 'O' && board[2][2] == 'O' && board[0][0] == ' ') board[0][0] = 'O'; else if (board[2][0] == 'O' && board[1][1] == 'O' && board[0][2] == ' ') board[0][2] = 'O'; else if (board[2][0] == 'O' && board[0][2] == 'O' && board[1][1] == ' ') board[1][1] = 'O'; else if (board[1][1] == 'O' && board[0][2] == 'O' && board[2][0] == ' ') board[2][0] = 'O'; else if (board[0][0] == 'O' && board[0][1] == 'O' && board[0][2] == ' ')//vertically board[0][2] = 'O'; else if (board[0][0] == 'O' && board[0][2] == 'O' && board[0][1] == ' ') board[0][1] = 'O'; else if (board[0][1] == 'O' && board[0][2] == 'O' && board[0][0] == ' ') board[0][0] = 'O'; else if (board[1][0] == 'O' && board[1][1] == 'O' && board[1][2] == ' ') board[1][2] = 'O'; else if (board[1][0] == 'O' && board[1][2] == 'O' && board[1][1] == ' ') board[1][1] = 'O'; else if (board[1][1] == 'O' && board[1][2] == 'O' && board[1][0] == ' ') board[1][0] = 'O'; else if (board[2][0] == 'O' && board[2][1] == 'O' && board[2][2] == ' ') board[2][2] = 'O'; else if (board[2][0] == 'O' && board[2][2] == 'O' && board[2][1] == ' ') board[2][1] = 'O'; else if (board[2][1] == 'O' && board[2][2] == 'O' && board[2][0] == ' ') board[2][0] = 'O'; else if (board[1][1] == ' ')//searches empty spaces board[1][1] = 'O'; else if (board[1][0] == ' ') board[1][0] = 'O'; else if (board[2][0] == ' ') board[2][0] = 'O'; else if (board[2][1] == ' ') board[2][1] = 'O'; else if (board[2][2] == ' ') board[2][2] = 'O'; else if (board[1][2] == ' ') board[1][2] = 'O'; else if (board[0][2] == ' ') board[0][1] = 'O'; else if (board[0][1] == ' ') board[0][1] = 'O'; else if (board[0][0] == ' ') board[0][0] = 'O'; } int game::checkwin(){ if ((board[0][0] == 'O' && board[1][0] == 'O' && board[2][0] == 'O')|| (board[0][1] == 'O' && board[1][1] == 'O' && board[2][1] == 'O')|| (board[0][2] == 'O' && board[1][2] == 'O' && board[2][2] == 'O')|| (board[0][0] == 'O' && board[1][1] == 'O' && board[2][2] == 'O')|| (board[2][0] == 'O' && board[1][1] == 'O' && board[0][2] == 'O')|| (board[0][0] == 'O' && board[0][1] == 'O' && board[0][2] == 'O')|| (board[1][0] == 'O' && board[1][1] == 'O' && board[1][2] == 'O')|| (board[2][0] == 'O' && board[2][1] == 'O' && board[2][2] == 'O')){ gotoxy(1,1); cout<<"The computer won"; gotoxy(1,2); cout<<"Play again? (y/n)"; } else if ((board[0][0] == 'X' && board[1][0] == 'X' && board[2][0] == 'X')|| (board[0][1] == 'X' && board[1][1] == 'X' && board[2][1] == 'X')|| (board[0][2] == 'X' && board[1][2] == 'X' && board[2][2] == 'X')|| (board[0][0] == 'X' && board[1][1] == 'X' && board[2][2] == 'X')|| (board[2][0] == 'X' && board[1][1] == 'X' && board[0][2] == 'X')|| (board[0][0] == 'X' && board[0][1] == 'X' && board[0][2] == 'X')|| (board[1][0] == 'X' && board[1][1] == 'X' && board[1][2] == 'X')|| (board[2][0] == 'X' && board[2][1] == 'X' && board[2][2] == 'X')){ gotoxy(1,1); cout<<"You won!"; gotoxy(1,2); cout<<"Play again? (y/n)"; } } int play(){ no_cursor(); int play = true; while (play){ //---------------------------------------------------------------------------------------------------- //---------- draw -------------------------------------------------------------------------------START //---------------------------------------------------------------------------------------------------- draw(); gotoxy(1,1); cout<<turn; pause(1000); //---------------------------------------------------------------------------------------------------- //---------- p1 move ----------------------------------------------------------------------------START //---------------------------------------------------------------------------------------------------- while (turn == PLAYER){ p1move(); } gotoxy(1,1); cout<<turn; pause(1000); draw(); checkwin(); //---------------------------------------------------------------------------------------------------- //---------- comp move --------------------------------------------------------------------------START //---------------------------------------------------------------------------------------------------- if (turn == COMPUTER){ compmove(); turn = PLAYER; } gotoxy(1,1); cout<<turn; pause(1000); //---------------------------------------------------------------------------------------------------- //---------- wins/loss --------------------------------------------------------------------------START //---------------------------------------------------------------------------------------------------- checkwin(); gotoxy(1,1); cout<<turn; pause(1000); } }



LinkBack URL
About LinkBacks


