How do you program a TicTacToe game that allows one or two p
How do you program a TicTacToe game that allows one or two people to play within matlab?
Solution
function board = make_move(board, player)
 %MAKE_MOVE Determine the next move of a player for tic tac toe
 
 
 % The process is as folllows :
 % 1. Find a winning position. If found, make the move and exit
 % the function;
 % 2. Find a position to block the other player from winning. If
 % found, make the move and exit the function;
 % 3. Otherwise, make a move to a random free location
 
 n= size(board,1);
 m= size(board,1);
 rand1 = randi(n);
 rand2 = randi(m);
 done = 0;
 
 while done ~= 1; % Checking to see if while loop should still be running
 for i = 1:n % For each row
 for j = 1:m % For each column, in each row
 if board(i,j) == 0 % Is the vector 0, eg: empty?
 board(i,j) = player; % If it is, let\'s try making a move here with the player value
 check_win(board); % Is this a winning move? Has the game finished?
 if check_win(board) == player % If check_win says player value (1 or -1) has won, return
 return
 else % Let\'s try a blocking attempt
 board(j,i) = -1*player; % Switching the rows and column values around, and placing a move as opponent
 if check_win(board) == -1*player % Checking to see if this is a winning move for opponent
 board(j,i) = player; % If this is a winning move, block it by placing your move here
 return
 else % If cannot make winning move or cannot block a win
 if board(m,n) == 0 % Use rand to generate vector position, checking to see if it is 0 (empty)
 board(m,n) = player; % Place a move here
 return
 end
 end
 end
 else
 break
 done = 0; % Should restart the process again if the original vector is not empty
 end
 end
 end
 end

