一、前言
在系统学习完C语言中的一些内容后,想自己写出来一个类似于扫雷的代码,后续会持续优化。
在这个项目中,我们分为”test.c"“game.c”"game.h"三个文件。
二、扫雷分函数讲解
1、主函数
在主函数中,我们希望少放一些代码,因此只调用一个函数
int main ( )
{
test ( ) ;
return 0 ;
}
2、test()中
初始化后面的随机值time()
引入菜单
让玩家输入选择进行游戏还是退出
void test ( )
{
srand ( ( unsigned int ) time ( NULL ) ) ;
int input = 0 ;
do {
menu ( ) ;
printf ( "请选择1/0:>" ) ;
scanf ( "%d" , & input) ;
switch ( input)
{
case 1 :
printf ( "开始游戏\n" ) ;
game ( ) ;
break ;
case 0 :
printf ( "退出游戏\n" ) ;
break ;
default :
printf ( "输入错误,请重新选择\n" ) ;
break ;
}
} while ( input) ;
}
3、menu()
void menu ( )
{
printf ( "*****************\n" ) ;
printf ( "*****1.play******\n" ) ;
printf ( "*****0.exit******\n" ) ;
printf ( "*****************\n" ) ;
}
4、game()
初始化信息
初始化雷盘和展示盘
打印雷,设置雷,排雷
void game ( )
{
char mine[ ROWS] [ COLS] = {
0 } ;
char show[ ROWS] [ COLS] = {
0 } ;
init_board ( mine, ROWS, COLS, '0' ) ;
init_board ( show, ROWS, COLS, '*' ) ;
display_board ( show, ROW, COL) ;
set_lei ( mine, ROW, COL) ;
display_board ( mine, ROW, COL) ;
find_lei ( mine, show, ROW, COL) ;
}
5、init_board()
void init_board ( char board[ ROWS] [ COLS] , int rows, int cols, char sets)
{
int a = 0 ;
for ( a = 0 ; a <= rows - 1 ; a++ )
{
int b = 0 ;
for ( b = 0 ; b <= cols - 1 ; b++ )
{
board[ a] [ b] = sets;
}
}
}
6、display_board()
void display_board ( char board[ ROWS] [ COLS] , int row, int col)
{
int a = 0 ;
for ( a = 0 ; a <= col; a++ )
{
printf ( "%d "