C语言详细实现猜拳游戏流程

  #include

  #include

  #include

  int draw = 0;//统计平局数

  int lose = 0;//统计失败数

  int win = 0;//统计获胜数

  int human = 0;//玩家手势

  int comp = 0;//计算机手势

  int is_winer = 0;//判断胜负

  void menu()

  {

  printf("****************************************

  ");

  printf("*************** 猜拳游戏 ***************

  ");

  printf("****************************************

  ");

  printf("*************** 1.play ****************

  ");

  printf("*************** 0.exit ****************

  ");

  printf("****************************************

  ");

  }

  void Displayer(int comp, int human)//展示计算机和玩家出拳的函数

  {

  printf("计算机出的是:");

  switch (comp)

  {

  case 0:

  printf("石头

  ");

  break;

  case 1:

  printf("剪刀

  ");

  break;

  case 2:

  printf("布

  ");

  break;

  }

  printf("玩家出的是:");

  switch (human)

  {

  case 0:

  printf("石头

  ");

  break;

  case 1:

  printf("剪刀

  ");

  break;

  case 2:

  printf("布

  ");

  break;

  }

  }

  //判断输赢

  void disp_result(is_winer)

  {

  switch (is_winer)

  {

  case 0:

  printf("平局

  ");

  draw++;//平局次数加1

  break;

  case 1:

  printf("计算机赢

  ");

  lose++;//失败次数加1

  break;

  case 2:

  printf("玩家赢

  ");

  win++;//获胜次数加1

  break;

  }

  }

  void game()

  {

  printf("(0)-石头,(1)-剪刀,(2)-布

  ");

  printf("猜拳游戏开始!!!

  ");

  int number = 0;//猜拳次数

  printf("请选择猜拳次数:");

  scanf("%d", &number);

  while (number)

  {

  comp = rand() % 3;//计算机出拳

  printf("玩家出拳:");

  do

  {

  scanf("%d", &human);//玩家出拳

  printf("-----------猜拳游戏-------------

  ");

  if (human < 0 || human > 2)

  {

  printf("输入错误,重新输入

  ");

  }

  is_winer = (human - comp + 3) % 3;

  disp_result(is_winer);//判断输赢的函数

  Displayer(comp, human);//展示出拳

  } while (human < 0 || human > 2);//控制玩家输出范围是0~2

  number--;

  }

  }

  int main()

  {

  srand((int)time(NULL));

  int input = 0;

  do

  {

  menu();

  printf("选择玩游戏还是退出游戏!!!

  ");

  printf("请选择:");

  scanf("%d", &input);

  switch (input)

  {

  case 1:

  game();

  break;

  case 0:

  printf("退出游戏

  ");

  break;

  default:

  printf("选择错误,重新选择

  ");

  break;

  }

  } while (input);

  //展示玩家成绩

  printf("a

  %d平 %d败 %d胜

  ", draw, lose, win);

  return 0;

  }