He guys,
I made a Tictactoe game and since I am learning C++ myself, can you tell me how to improve my coding?
The main.cpp file isn't important, it only contains the menu.
Code:#include <iostream> #include <cstdlib> #include <windows.h> using namespace std; void pause(); void newgame(); void x(char board[10]); void y(char board[10]); void drawboard(char board[10]); void play(); int win(char board[10]); int win(char board[10]) { if(board[1] == 'X' && board[2] == 'X' && board[3] == 'X') { return 1; } else if(board[1] == 'O' && board[2] == 'O' && board[3] == 'O') { return 1; } else if(board[4] == 'X' && board[5] == 'X' && board[6] == 'X') { return 1; } else if(board[4] == 'O' && board[5] == 'O' && board[6] == 'O') { return 1; } else if(board[7] == 'X' && board[8] == 'X' && board[9] == 'X') { return 1; } else if(board[7] == 'O' && board[8] == 'O' && board[9] == 'O') { return 1; } else if(board[3] == 'X' && board[6] == 'X' && board[9] == 'X') { return 1; } else if(board[3] == 'O' && board[6] == 'O' && board[9] == 'O') { return 1; } else if(board[2] == 'X' && board[5] == 'X' && board[8] == 'X') { return 1; } else if(board[2] == 'O' && board[5] == 'O' && board[8] == 'O') { return 1; } else if(board[1] == 'X' && board[4] == 'X' && board[7] == 'X') { return 1; } else if(board[1] == 'O' && board[4] == 'O' && board[7] == 'O') { return 1; } else if(board[1] == 'X' && board[5] == 'X' && board[9] == 'X') { return 1; } else if(board[1] == 'O' && board[5] == 'O' && board[9] == 'O') { return 1; } else if(board[3] == 'X' && board[5] == 'X' && board[7] == 'X') { return 1; } else if(board[3] == 'O' && board[5] == 'O' && board[7] == 'O') { return 1; } else if(board[1] != ' ' && board[2] != ' ' && board[3] != ' ' && board[4] != ' ' && board[5] != ' ' && board[6] != ' ' && board[7] != ' ' && board[8] != ' ' && board[9] != ' ') { return -1; } else { return 0; } } void x(char board[10]) { bool full = true; int number; int won; bool cont = false; cout << "X turn, enter number (1-9): "; while(cont == false) { while(!(cin >> number)) { cin.clear(); cin.ignore(1000, '\n'); cout << "Invalid input! Please re-enter: "; } if(number > 9 || number < 1) { cout << "Number can't be smaller than 1 or larger than 9! "; cont = false; } else if(board[number] == ' ') { board[number] = 'X'; cont = true; } else { cout << "Not possible, try again! "; cont = false; } } system("cls"); drawboard(board); won = win(board); if(won == 1) { cout << "X won!\n"; return; } else if(won == -1) { cout << "Tie!\n"; return; } else { y(board); } } void y(char board[10]) { int number; int won; bool cont = false; cout << "O turn, enter number (1-9): "; while(cont == false) { while(!(cin >> number)) { cin.clear(); cin.ignore(1000, '\n'); cout << "Invalid input! Please re-enter: "; } if(number > 9 || number < 1) { cout << "Number can't be smaller than 1 or larger than 9! "; cont = false; } else if(board[number] == ' ') { board[number] = 'O'; cont = true; } else { cout << "Not possible, try again! "; cont = false; } } system("cls"); drawboard(board); won = win(board); if(won == 1) { cout << "O won!\n"; return; } else if(won == -1) { cout << "Tie!\n"; return; } else { x(board); } } void drawboard(char board[10]) { cout << board [1] << " | " << board[2] << " | " << board[3] << endl; cout << "---------" << endl; cout << board [4] << " | " << board[5] << " | " << board[6] << endl; cout << "---------" << endl; cout << board [7] << " | " << board[8] << " | " << board[9] << endl; } void newgame() { system("cls"); char board[10]; for(int i =1; i <=10; i++) { board[i] = ' '; } drawboard(board); x(board); } void pause() { cin.clear(); cin.ignore(1000, '\n'); cout << "Press enter to continue."; cin.get(); }