使用C语言编写一个简单对扫雷小游戏

  介绍

使用C语言编写一个简单对扫雷小游戏吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强>扫雷的思路

使用C语言编写一个简单对扫雷小游戏

游戏。h

的ifndef _GAME_H_
  #定义_GAME_H_
  # include
  # include & lt; time.h>
  # include
  # include
  # pragma警告(禁用:4996)
  #定义行12
  #定义坳12//定义20个雷
  #定义num 20
  无效的菜单();
  空游戏();
  
  # endif 

主要。c

 # include“game.h"
  
  int main () {
  int辞职=0;
  int选择=0;
  而(辞职){
  菜单();
  scanf (“% d",和选择);
  开关(select) {
  案例1:
  游戏();
  打破;
  案例2:
  辞职=1;
  打破;
  默认值:
  printf(“请重新输入“);
  打破;
  }
  
  }
  系统(“pause");
  返回0;
  }

游戏。c

 # include“game.h"
  
  无效的菜单()
  {
  printf (“# # # # # # # # # # # # # # # # # # # # # # # # # # \ n");
  printf (“# # 1。玩2。退出# # \ n");
  printf (“# # # # # # # # # # # # # # # # # # # # # # # # # # \ n");
  printf(“请输入#“);
  }//设置20个随机雷
  空白SetMines (char mine_board [] (COL), int, int)上校
  {
  int数=num;
  而(count) {
  int x=rand () % 10 + 1;
  int y=rand () % 10 + 1;
  如果(mine_board [x] [y]==& # 39; 0 & # 39;) {
  mine_board [x] [y]=& # 39; 1 & # 39;;
  数,
  }
  }
  }//判断周围有几个雷
  我int GetMines (char [] (COL), int, int坳,int x, int y)
  {
  返回我的[x - 1] [y - 1) +我的[x - 1]我[y] + [x - 1] [y + 1] + \
  我[x] [y - 1] +我我[x] [y + 1] + [x + 1] [y - 1] + \
  我我[x + 1] [y] + [x + 1] [y + 1] - 8 * & # 39; 0 & # 39;;
  }//设置界面的下划的线
  静态孔隙ShowLine (int num)
  {
  printf(“——产生绯闻);
  for (int i=0;我& lt;num;我+ +){
  printf(“产生绯闻);
  }
  printf (“\ n");
  }//一个显示界面,传入界面数组显示扫雷界面,传入布雷数组显示雷区界面
  空白ShowBoard (char show_board [] (COL), int, int)上校
  {
  printf (““);
  for (int i=1;我& lt;行- 1;我+ +){
  printf (“% d“,我);
  }
  printf (“\ n");
  ShowLine(2 *坳+坳+ 4);
  
  for (int i=1;我& lt;行- 1;我+ +){
  printf (“% 2 d |“我);
  for (int j=1;j & lt;col - 1;j + +) {
  printf (“% c |“show_board[我][j]);
  }
  printf (“\ n");
  ShowLine(2 *坳+坳+ 4);
  }
  }
  
  空游戏()
  {
  char show_board(行)(COL);
  char mine_board(行)(COL);
  memset (show_board, & # 39; * & # 39;, sizeof (show_board));
  memset (mine_board & # 39; 0 & # 39;, sizeof (mine_board));
  将srand((无符号长)时间(NULL));
  
  SetMines (mine_board、行坳);
  int数=(行- 2)* (COL - 2) - num;
  int x=0;
  int y=0;
  {做
  ShowBoard (show_board、行坳);
  printf(“请输入位置#“);
  scanf (“% d % d", x,, y);
  如果(x & lt;1 | | x比;10 | | y & lt;1 | | y祝辞;10){
  printf(“输入越界,请重新输入! \ n");
  继续;
  }
  如果(show_board [x] [y] !=& # 39; * & # 39;) {
  printf(“该位置已经被排除,请重新输入! \ n");
  继续;
  }
  如果(mine_board [x] [y]==& # 39; 1 & # 39;) {
  打破;
  }
  int num=GetMines (mine_board、行坳,x, y);
  show_board [x] [y]=num + & # 39; 0 & # 39;;
  数,
  系统(“cls");
  },(数比;0);//count> 0说明坐标是雷,打破提前退出了
  如果(计数比;0){
  printf(“你被炸死了! \ n");
  }
  其他{
  printf(“你赢了! \ n");
  }
  printf(“下面是雷区的排布! \ n");
  ShowBoard (mine_board、行坳);
  }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

使用C语言编写一个简单对扫雷小游戏