C语言编程立体四子棋
来源:百度知道 编辑:UC知道 时间:2024/06/24 14:47:15
立体四子棋为4*4*4的格子,在4层中任意一层下棋都可以只要连成一线,希望厉害人帮忙。小弟没什么分。有了一定多给。。。
给个判断胜利的算法你,具体自己完善。
//一个立四方体用不同的面进行切割可切割成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])