利用C语言编写一个扫雷游戏

  介绍

本篇文章为大家展示了利用C语言编写一个扫雷游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

C语言是什么

C语言是一门面向过程的,抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译,处理低级存储器。

<强>主要思路:强建立两个11乘以11的表格,分别为布雷和排雷后的表格,其中我们以字符1表示此处有雷,字符0表示此处无雷,在布雷时我们用时间函数布置随机的10个雷(具体多少个雷可自行选择),在另一个表格中显示出所选位置周围雷的个数

建立11 * 11的表格是因为便于统计四条边上位置周围含雷的个数

用vs建立<强>头文件 game.n和两个<强>源文件 game.c和测试。c
(先分开讲解,在文章最后有三个文件的整体显示)

在头文件中的声明有

# include   # include   # include   # define  ROW  9   # define  COL  9   # define  ROWS 行+ 2   # define  COLS 坳+ 2   # define  EASY  10

time.h和stdlib。h文件是time.h的库函数

行表示行,坳表示列,行表11列示,关口表示11行,简单表示(简单程度)雷有10个
首先在测试。c文件中建立主函数

int 主要()   {   ,int  input =, 0;   ,将srand ((unsigned  int)时间(NULL));      ,做   ,{   ,菜单();   ,printf(“请选择:在“);   ,scanf (“% d",,,输入);   ,switch (输入)   ,{   ,case  1:   ,游戏();//实现游戏的过程   ,打破;   ,case  0:   ,printf(“退出游戏\ n");   ,打破;   ,默认值:   ,printf(“选择错误,请重新选择\ n");   ,打破;      ,}      ,}while (输入);   ,return  0;      }

其中将srand ((unsigned int)时间(NULL))是为了能够在使用兰德函数时每次产生不同的随机数

其中包含两个函数,分别为菜单函数菜单()和实现游戏的函数游戏()

<强>菜单函数

void 菜单()   {   ,printf (“* * * * * * * * * * * * * * * * * * * * * * * * \ n");   ,printf (“* * * * *, 1. play  * * * * * * * * * \ n");   ,printf (“* * * * *, 0. exit  * * * * * * * * * \ n");   ,printf (“* * * * * * * * * * * * * * * * * * * * * * * * \ n");      }

主函数中整形输入为输入的数字,1进行游戏,0退出游戏

<强>进行的游戏函数

void 游戏()   {   ,//创建棋盘对应的数组   ,char 我[行][关口];//布置好的雷的信息   ,char 显示(行)(关口);//排查出雷的信息   ,//初始化棋盘   ,initboard(行,我还以为,关口,& # 39;0 & # 39;);   ,initboard(关口,,,行,,& # 39;* & # 39;);   ,//打印棋盘   ,//displayboard(我的,,行,上校),,   ,displayboard(显示,,行,上校);   ,//布置雷   ,setmine(我的,,行,,,上校,简单);   ,//displayboard(我的,,行,上校);   ,//排雷   ,finemine(我的,,,,,,上校);   }

<强> 1,创建棋盘

在游戏函数中我们首先创建两个11乘以11的棋盘,布置雷的棋盘为我(行)关口,在玩家面前显示的棋盘为显示(行)(关口)

<强> 2,初始化棋盘

在布置雷的棋盘中全部填写字符0,在玩家显示的棋盘面前全部填写为字符*,
头文件中声明

//初始化棋盘   void  initboard (char 董事会(行)关口,,int 行,,int 关口,char 集);

游戏。c中具体写出函数

void  initboard (char 董事会(行)关口,,int 行,,int 关口,,char 集)   {   ,int 小姐:=,0,,j =, 0;   ,for (小姐:=,0;,小姐:& lt;,行;,我+ +)   ,{   ,for  (j =, 0;, j  & lt;,关口;,j + +)   ,{   ,董事会[我][j],=,设置;   ,}   ,}   }

<强> 3,打印棋盘

头文件声明

//打印棋盘   void  displayboard (char 董事会(行)关口,,int 行,int 坳);

游戏。c中具体写出函数

//打印棋盘   void  displayboard (char 董事会(行)关口,,int 行,int 坳)   {   ,int 小姐:=,0,,j =, 0;   ,printf(“- - - - - - - - - - - -扫雷游戏- - - - - - - - - - - - - \ n");   ,for (小姐:=,0;,小姐:& lt;=,坳;,我+ +)   ,printf (“% d “,我);   ,printf (“\ n");   ,for (小姐:=,1,,小姐:& lt;=,行;,我+ +)   ,{   ,printf (“% d “,我);=,for  (j  1;, j  & lt;=,坳;,j + +)   ,{   ,printf (“% c “,董事会[我][j]);   ,}   ,printf (“\ n");   ,}   ,printf(“- - - - - - - - - - - -扫雷游戏- - - - - - - - - - - - - \ n");      }

利用C语言编写一个扫雷游戏