Question: Matlab Problem How to modify the following matlab script of the move computer, which makes it impossible to win the computer (the computer never loses).

Matlab Problem

How to modify the following matlab script of the move computer, which makes it impossible to win the computer (the computer never loses).

This is tic tac toe game, thanks!

The 1- 2 pic are the main script of the game:

Matlab Problem How to modify the following matlab script of the move

computer, which makes it impossible to win the computer (the computer never

The following pics are the CompMove script

loses). This is tic tac toe game, thanks! The 1- 2 pic

are the main script of the game: The following pics are theCompMove script function [P1move_index]=MyMove(board) turn=(board~=0); x1=(board==2)*-1; x2=(board==1); win_or_block = x1+x2; if sum(sum(turn))==0

P1move_index=1; return elseif sum(sum(turn))==1 if(board(5)==0) P1move_index=5; return else P1move_index=1; return end elseif

function [P1move_index]=MyMove(board)

turn=(board~=0);

x1=(board==2)*-1;

x2=(board==1);

win_or_block = x1+x2;

if sum(sum(turn))==0

P1move_index=1;

return

elseif sum(sum(turn))==1

if(board(5)==0)

P1move_index=5;

return

else

P1move_index=1;

return

end

elseif sum(sum(turn))==2

if board(5)~=0

P1move_index = 9;

return

elseif board(9)~= 0

P1move_index = 3;

return

else

P1move_index = 5;

return

end

end

for i=1:3

if sum(win_or_block(i,:))==2

temp = [ find(win_or_block(i,:)==0)];

P1move_index = (temp-1)*3+i;

return

elseif sum(win_or_block(:,i))==2

temp =[find(win_or_block(:,i)==0)];

P1move_index= (i-1)*3 + temp;

return

end

end

if sum(win_or_block([1 5 9]))==2

if find(win_or_block([1 5 9])==0)==3

P1move_index = 9;

return

elseif find(win_or_block([1 5 9])==0)==2

P1move_index = 5;

return

elseif find(win_or_block([1 5 9])==0)==1

P1move_index = 1;

return

end

end

if sum(win_or_block([3 5 7]))==2

if find(win_or_block([3 5 7 ])==0)==3

P1move_index = 7;

return

elseif find(win_or_block([3 5 7])==0)==2

P1move_index = 5;

return

elseif find(win_or_block([3 5 7])==0)==1

P1move_index = 3;

return

end

end

for i=1:3

if sum(win_or_block(:,i))==-2

temp =[find(win_or_block(:,i)==0)];

P1move_index= (i-1)*3 + temp;

elseif sum(win_or_block(i,:))==-2

temp = [ find(win_or_block(i,:)==0)];

P1move_index = (temp-1)*3+i;

return

end

end

if sum(win_or_block([1 5 9]))==-2

if find(win_or_block([1 5 9])==0)==3

P1move_index = 9;

return

elseif find(win_or_block([1 5 9])==0)==2

P1move_index = 5;

return

elseif find(win_or_block([1 5 9])==0)==1

P1move_index = 1;

return

end

end

if sum(win_or_block([3 5 7]))==-2

if find(win_or_block([3 5 7 ])==0)==3

P1move_index = 7;

return

elseif find(win_or_block([3 5 7])==0)==2

P1move_index = 5;

return

elseif find(win_or_block([3 5 7])==0)==1

P1move_index = 3;

return

end

end

P1move_index = 1+min(find(board==0));

P1move_index = min(find(board==0));

end

FILE NAVIGATE EDIT BREAKPOINTS RUN board = zeros(3,3); % Determines starting player randomly % playerturn 1 indicates Player 1 starting % playe rturn 2 indicates Player 2 starting playerturn = round (rand ) +1 ; step = 0; winplayer = 0; playing=1; %initialize %Display message disp Welcome to E7 tic-tac-toe.'); disp (board); if playe rturn = 1 4 12 disp( 'Player 1 will start first' else 15 disp( Player 2 will start first' end %Iterate the game while playing == 1 8 disp(['Player num2str(playerturn)'1) % Player1's turn if playe rturn 1 1 zeroind find ( board-=0); P1move-index = Human (board); % Change Player 1 function here if -any ( ze ro ind P1move-index P1move-index) zero!nd (1); = end board (P|move-index) playe rturn = 2; currentplayer = 1; step = step + 1; 1; = 28 % Player2's turn 2else zeroind = find ( board=0)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!