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])