C语言实现三子棋游戏

本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下

#include<stdio.h> #include<stdlib.h> #include<time.h>  void chess_board(char arr[3][3]) //打印棋盘 {  int i = 0;  int j = 0;  for (i = 0; i < 3; i++)  {  printf( " %c | %c | %c \n", arr [i][0], arr[i][1], arr[i][2]);  if (i<2)  printf( "---|---|---\n");  } }  int success_or_failure(char arr[3][3]) //判断胜负 {  int i = 0;  int j = 0;  for (i = 0; i < 3; i++)  {  if ((arr [i][0] == arr[i][1]) && ( arr[i][j] == arr [i][2]))  {  if (arr [i][0] == '#')   return 1; //用户赢了  else if (arr[i][0] == '0')   return -1; //电脑赢了  }  }  for (j = 0; j < 3; j++)  {  if ((arr [0][j] == arr[1][j]) && ( arr[1][j] == arr [2][j]))  {  if (arr [0][j] == '#')  return 1;  //用户赢了  else if (arr[0][j] == '0')  return -1; //电脑赢了  }  }  if ((arr [0][0] == arr[1][1]) && ( arr[0][0] == arr [2][2]))  {  if (arr [1][1] == '#')   return 1; //用户赢了  else if (arr[1][1] == '0')   return -1; //电脑赢了  }  if ((arr [0][2] == arr[1][1]) && ( arr[0][2] == arr [2][0]))  {  if (arr [1][1] == '#')   return 1; //用户赢了  else if (arr[1][1] == '0')   return -1; //电脑赢了  }  for (i = 0; i < 3; i++)  {  for (j = 0; j < 3; j++)   {   if (arr [i][j] == ' ')   return 0; //都没赢   }  }  return -2;  //平局 }  int user_game(char arr[3][3])  //用户输入 {  int x = 0;  int y = 0;  while (1)  {  printf( "please user input:(x, y) ");  scanf( "%d%d", &x, &y);  printf( "\n");  if ((x<1 && x>3) || (y<1 && y>3)) //判断用户输入的是否合法  {  printf( "地址无效,请重新输入\n" );   break;  }  if (arr [x - 1][y - 1] == ' ') //判断这个位置有没有被占  {     arr[x - 1][y - 1] = '#' ;  break;  }  printf( "地址无效,请重新输入\n" );  }  chess_board( arr);  int ret=success_or_failure(arr );  return ret; }  int computer_game(char arr[3][3])  //电脑输入 {  printf( "computer input:\n\n");  int x = 0;  int y = 0;  while (1)  {  //产生一个没有被棋子占用的位置  srand(( unsigned)time(NULL ));  x = rand() % 3;  srand(( unsigned)time(NULL ));  y = rand() % 3;  if (arr [x][y] == ' ')    break;  }  arr[x][y]= '0' ;  chess_board(arr);  int ret=success_or_failure(arr);  return ret; }   void init(char arr[][3])  //初始化棋盘 {   for (int i = 0; i < 3; i++)   {  for (int j = 0; j<3; j++)  {  arr[i][j] = ' ';  }  } }  int main() {  printf( "**********************\n"); //打印菜单  printf( "******* *******\n");  printf( "*******1.go 0.exit**\n");  printf( "******* *******\n");  printf( "**********************\n");  printf( "**********************\n\n\n");  char arr[3][3];  while (1)  {  init(arr);  //初始化棋盘  int count = 0;  printf( "\nplease choice:1 or 0 : " );  scanf( "%d", &count); //选择功能  if (count == 0)  {  exit( EXIT_FAILURE);  }  else if (count == 1)  {  printf( "\n****游戏开始****\n\n" );  while (1)  { int n1 = user_game(arr);  {  if (n1 == 1)  {   printf( "****恭喜玩家赢了****\n" );   break;  }  }   int n2 = computer_game(arr);    {   if (n2 == -1)   {   printf( "****电脑赢了****\n" );   break;   }  }  if ((n1 == -2) || (n2 == -2))   {  printf( "*****平局******\n" );  break;  }  }   printf( "\n再来一局\n\n" );  }  return 0; } 

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

获得幸福的二法门是珍惜你所拥有的、遗忘你所没有的

C语言实现三子棋游戏

相关文章:

你感兴趣的文章:

标签云: