c++11 - A text based c++ game with a mystery in code error -
im trying make basic tic tac toe game in c++. while code compile , run keep getting error code above board game: 0x6fefec84. i'm very new c++. error segfault? or there kind of ub going on in code? appreciated. thanks!
#include <iostream> using namespace std; char square[10] = {'0','1','2','3','4','5','6','7','8','9'}; int checkwin(); int board(); int main() { int player = 1,i,choice; char mark; { board(); player=(player%2)?1:2; cout << "player" << player << ", enter number: "; cin >> choice; mark=(player == 1) ? 'x' : 'o'; if (choice == 1 && square [1] == '1') square [1] = mark; else if (choice == 2 && square [2] == '2') square [2] = mark; else if(choice == 3 && square [3] == '3') square [3] = mark; else if(choice == 4 && square [4] == '4') square [4] = mark; else if(choice == 5 && square [5] == '5') square [5] = mark; else if(choice == 6 && square [6] == '6') square [6] = mark; else if(choice == 7 && square [7] == '7') square [7] = mark; else if(choice == 8 && square [8] == '8') square [8] = mark; else if(choice == 9 && square [9] == '9') square [9] = mark; else { cout << "invalid move"; player--; cin.ignore(); cin.get(); } i=checkwin(); player++; }while(i==-1); board(); if(i==1) cout<<"==>\aplayer "<<--player<<" win "; else cout<<"==>\agame draw"; cin.ignore(); cin.get(); return 0; } int checkwin() { if(square[1] == square[2] && square [2] == square[3]) return 1; else if(square[4] == square[5] && square [5] == square[6]) return 1; else if(square[7] == square[8] && square[8] == square[9]) return 1; else if(square[1] == square[4] && square[4] == square[7]) return 1; else if(square[2] == square[5] && square[5] == square[8]) return 1; else if(square[3] == square[6] && square[6] == square[9]) return 1; else if(square[1] == square[5] && square[5] == square[9]) return 1; else if(square[3] == square[5] && square[5] == square[7]) return 1; else if(square[1] != '1' && square[2] != '2' && square [3] != '3' && square [4] != '4' && square[5] != '5' && square[6] != '6' && square[7] != '7' && square[8] != '8' && square [9] != '9') return 0; else return -1; } int board() { cout << "\n\n\ttic tac toe\n\n"; cout << "player 1 (x) - player 2 (o)" << endl << endl<< cout << endl; cout << " | | " << endl; cout << " " << square[1] << " | " << square[2] << " | " << square[3] << endl; cout << "----|----|----" << endl; cout << "----|----|----" << endl; cout << " " << square[4] << " | " << square[5] << " | " << square[6] << endl; cout << "----|----|----" << endl; cout << "----|----|----" << endl; cout << " " << square[7] << " | " << square[8] << " | " << square[9] <<endl; cout << " | | " << endl << endl; return 0; }
you're missing semicolon @ end of "player" output line.
cout << "player 1 (x) - player 2 (o)" << endl << endl;
with <<
@ end, output address of cout
, "0x6fefec84" value you're seeing.
Comments
Post a Comment