Hi I am a beginner and I am making a console tic tac toe c++ before I try to get it done in unity3d but that’s another story, I got stuck on the get_move1() function, as far as how can I check if the array has a 1 or a -1 if it does then is full and the function should say in an invalid move, can this be done any other way besides 2d array, my program just hangs with no error, I haven’t work on the other functions yet so they are just empty for now. Thanks for your help.
*init_board and board_state array
get_move function to determine if the move is legal if it is then
fill board_state array and show X or O on the board with another array
check_win
*/
/* layout of board
cout << " 1 | 2 | 3 \n"
" | | \n"
" - - - - - - \n"
" 4 | 5 | 6 \n"
" | | \n"
" - - - - - - \n"
" 7 | 8 | 9 \n"
" | | \n" << endl;
cout << " " <<board_array[0] <<" | " << board_array[1] << " | " << board_array[2] << "\n"
" | | \n"
" - - - - - - \n"
" " <<board_array[3] <<" | " << board_array[4] << " | " << board_array[5] << "\n"
" | | \n"
" - - - - - - \n"
" " <<board_array[6] <<" | " << board_array[7] << " | " << board_array[8] << "\n"
" | | \n" << endl;
*/
#include <iostream>
using namespace std;
//declare global variables
int board_state[3][3] = { {0,0,0}, //here the 2d array is initialized and set to 0 for empty
{0,1,0},
{0,0,0} };
char gui_state[3][3]; //2d array to represent the X and O on the board
//declare functions
void init_board();
void get_move1();
int main()
{
init_board();
get_move1();
}
void init_board()
{
cout << " 1 | 2 | 3 \n"
" | | \n"
" - - - - - - \n"
" 4 | 5 | 6 \n"
" | | \n"
" - - - - - - \n"
" 7 | 8 | 9 \n"
" | | \n"
" **Tic Tac Toe ** " << endl;
}
void get_move1() // In this function player's moves are taken and make sure they are valid if so update arrays
{
int player1_move;
int i;
int j;
bool invalid_move;
cout << "Player 1 enter move" << endl;
cin >> player1_move;
//need to check if the players's move is valid
for (i=0; i < 3; i++) //if array is 1 or -1 then move is invalid
{
for(j = 0; j < 3; i++)
if (board_state[i][j] == 1 || board_state[i][j] == -1)
{
invalid_move = true;
}
} cout << "You entered an invalid move" << endl;
}
void get_move2()
{
}
void game_state()
{
}
void check_win()
{
}
so I decided to go for a one dimensional array to keep it simple for now
int board_state[9] = {0,1,0,0,0,0,0,0,0}; //here the 1d array is initialized and set to 0 for empty
void get_move1() // In this function player's moves are taken and make sure they are valid if so update arrays
{
int player1_move;
int array_index;
int player1_fill = 1;
cout << "Player 1 enter move" << endl;
cin >> player1_move;
//need to check if the players's move is valid
array_index = player1_move -1;
if (board_state[array_index] == 1 || board_state[array_index] == -1)
{
cout << "Invalid move" << endl;
}
else board_state[array_index] = player1_fill;
Thanks for the help guys.
This line:
should be: