我们都玩过扫雷游戏,今天就用C语言写一下扫雷的程序。
扫雷程序大概包括建立菜单、创建数组、对数组进行初始化、布雷和扫雷几步,接下来分步介绍。
一.
建立简单菜单
用一个do...while()循环就可以。
二.
构建游戏主体
其中包括建立两个数组(一个为布雷数组,一个为排雷数组),对两个数组初始化(因后期要计算坐标周围的雷数,初始化时将横纵坐标均增大两个单位 即要呈现9*9的表格,就要初始化11*11的表格)我定义了a(*)和b(#),分别将布雷的坐标初始化为‘#’排雷的坐标初始化为‘*’。放雷和扫雷较繁琐,下面再介绍。注:函数名均以拼音首字母命名
因在扫雷项目中用了test.c、game.c、game.h,所以要在game.h中对函数进行声明。
1.初始化(game.c)
2.打印表格
三.
放雷
用rand()获得随机数,将随机数作为放雷的坐标,将选中坐标的内容该为‘1’,注意在使用rand获得随机数之前要在main函数中定义srand((unsigned int)time(NULL)),用时间戳。
四.
排雷
在排雷时要判断所选坐标是否是雷,若是则结束游戏。再判断是否已选过,若是则重新输入新的坐标。定义win,pw存win的地址。每判断一个坐标win就加一,当win的值加到与score相等时,雷已全部扫完。
若不是上述两种情况,则判断周围八个坐标的含雷个数。
若周围八个坐标含雷,则在所选坐标上显示雷的个数,若周围不含雷,则在所选坐标上显示空格并分别以八个坐标向外判断雷的个数,以此向外递归直到检测到有雷。递归时要先判断坐标是否在范围为内,再判断周围雷的个数,每判断一次雷的个数win++。
到这里一个扫雷程序就全部写完了,是不是很简单,快去自己试试吧。