Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

game = [1 0 0;0 0 0;0 0 0]

k = ply2 (game,0,0,0,8)

total_games = sum(k(1:3))
play_1_win_rate = k (1) /total_games
play_2_win_rate = k (2) /total_games
draw_rate = k (3) /total_gamesA

function k=checknext1(game)
if (any(sum(game) == 2)||any(sum(game,2) ==
2)||(sum(game(1,1)+game(2,2)+game(3,3))==2)||(sum(game(3,1)+game(2,2)+game(3,1
))==2))
k = 1;
else
k = 0;
end
end

function k=checknext2(game)
if (any(sum(game) == -2)||any(sum(game,2) == -
2)||(sum(game(1,1)+game(2,2)+game(3,3))==-
2)||(sum(game(3,1)+game(2,2)+game(3,1))==-2))
k = 1;
else
k = 0;
end
end

function r = ply1(game,w1,w2,dr,n)
r = [w1 w2 dr n];
p=0;
if(n==0)
r(3) = r(3)+1;
else
k=0;
if(checknext1(game) == 1)
r(1)= r(1)+1;
k=1;
elseif(checknext2(game) == 1)
p=0;
for i1=1:3
for j1 = 1:3
t=game;
if(t(i1,j1)==0)
t(i1,j1)=1;
end
if(checknext2(t) == 0)
p = 1;
r=ply2(t,r(1),r(2),r(3),n-1);
break;
end
end
if p==1
break;
end
end
if(p==0)
r(2) = r(2)+1;
k=1;
end
end
if (p==0&&k==0)
for i=1:3
for j = 1:3
t=game;
if(t(i,j)==0)
t(i,j)=1;
r=ply2(t,r(1),r(2),r(3),n-1);
end
end
end
end
end
end

function r = ply2(game,w1,w2,dr,n)
r = [w1 w2 dr n];
p=0;
if(n==0)
r(3) = r(3)+1;
else
k=0;
if(checknext2(game) == 1)
r(2)= r(2)+1;
k=1;
elseif(checknext1(game) == 1)
p=0;
for i1=1:3
for j1 = 1:3
t=game;
if(t(i1,j1)==0)
t(i1,j1)=-1;
end
if(checknext1(t) == 0)
p = 1;
r=ply1(t,r(1),r(2),r(3),n-1);
break;
end
end
if p==1
break;
end
end
if(p==0)
r(1) = r(1)+1;
k=1;
end
end
if (p==0&&k==0)
for i=1:3
for j = 1:3
t=game;
if(t(i,j)==0)
t(i,j)=-1;
r=ply1(t,r(1),r(2),r(3),n-1);
end
end
end
end
end
end

You might also like