给个判断胜利的算法你,具体自己完善。
//一个立四方体用不同的面进行切割可切割成12个不重复的面,对每个面调用isWin()函数,以下是伪代码
void main()
{
int board[4][4][4]={1,1,2,2...1,2,1}
int cube[][];
for(i=0;i<4;i++)
{
cube[][]=board[i][][];
if(isWin(cube))
{
printf("win");
return;
}
cube[][]=board[][i][]
if(isWin(cube))
{
printf("win");
return;
}
cube[][]=board[][][i]
if(isWin(cube))
{
printf("win");
return;
}
}
//判断一个面是否构成四连
int isWin(int cube[][])
{
//判断所有行的四个棋子是否一样
for(i=0;i<4;i++)
if(cube[i][0]==cube[i][1]==cube[i][2]==cube[i][3])
return true;
//判断所有列的四个棋子是否一样
for(i=0;i<4;i++)
if(cube[0][i]==cube[1][i]==cube[2][i]==cube[3][i])
return true;
//判断对角线的四个棋子是否一样
if(cube[0][0]==cube[1][1]==cube[2][2]==cube[3][3])
return true;
if(cube[0][3]==cube[1][2]==cube[2][1]==cube[3][0])
return true;
return false;
}
}