大家好,我正在为tic tac toe和
我很难找到最好的办法
我先把我的两个'X'放在最好的位置,然后把我的对手'O'放在最好的位置
位置(即不给我获胜的机会)。
然后把我的“X”放在空白处,检查我的胜算。如果不能腾空继续。
但我发现很难检查我的胜算。
当我放入最后一个X
时,check
方法将chance
变量增加1
。
但是,当我改变X
位置以计数另一个机会时,函数预先计数(即chance
在开始时产生的X
)
这是我的代码示例:
char a[3][3];
int check(void)
{
char op='X';
int e,w,p=0;
int i=0,j;
for(w=0;w<3;w++)
{
for(e=0;e<3;e++)
{
if(a[w][e]=='_')
{
a[w][e]=op;
pri();
i=0;
for(j=0;j<3;j++)
{
if(a[i][j]==op && a[i+1][j]==op && a[i+2][j]==op)
{
chance++; a[w][e]='_';
}
}
j=0;
for(i=0;i<3;i++)
{
if(a[i][j]==op && a[i][j+1]==op && a[i][j+2]==op)
{
chance++; a[w][e]='_'; r
}
}
if(a[0][0]==op && a[1][1]==op && a[2][2]==op)
{
chance++; a[w][e]='_';
}
else if(a[0][2]==op && a[1][1]==op && a[2][0]==op)
{
chance++; a[w][e]='_';
}
a[w][e]='_';
}
}
}
}
最佳答案
看起来chance
是一个全局变量,因此即使在函数返回后它也会保持其值。您可以通过在函数开头添加chance = 0
来重置其值。