扫雷游戏相信大家都有玩过吧,游戏简单但也很经典。在这里我为大家演示一下用C语言编写一个简单的扫雷程序,代码如下,每个函数部分都有详细的解释。
game.h文件中声明各种函数:
#ifndef __GAME_H__
#define __GAME_H__
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#define ROWS 12//定义雷盘行数
#define COLS 12//定义雷盘列数
#define COUNT 10//定义雷数
void init_board(char mine[ROWS][COLS], char show[ROWS][COLS]);//初始化雷盘
void display_board(char show[ROWS][COLS]);//打印玩家雷盘
void print_board(char mine[ROWS][COLS]);//打印设计者雷盘
void set_board(char mine[ROWS][COLS]);//布雷函数
int get_board(char mine[ROWS][COLS], int x, int y);//统计周围雷数
void safe_board(char mine[ROWS][COLS], char show[ROWS][COLS], int x, int y);//判断第一个雷是否安全函数
int open_board(char mine[ROWS][COLS],char [ROWS][COLS], int x, int y);//展开周围函数
int sweep_board(char real_mine[ROWS][COLS], char show_mine[ROWS][COLS], int x, int y);//扫雷函数
int count_show_mine(char show[ROWS][COLS]);//判断雷盘中剩余未排位置的个数,返回值等于设置好的雷时游戏胜利
#endif
game.c文件包含各种游戏函数:
#include"game.h"
void init_board(char mine[ROWS][COLS], char show[ROWS][COLS])
{
int i = 0;
int j = 0;
for (i = 1; i < ROWS - 1; i++)
{
for (j = 1; j < COLS - 1; j++)
{
mine[i][j] = '0';
}
}
for (i = 1; i < ROWS - 1; i++)
{
for (j = 1; j < COLS - 1; j++)
{
show[i][j] = '*';
}
}
}
void print_board(char mine[ROWS][COLS])
{
int i, j;
printf(" ");
for (i = 1; i < COLS - 1; i++)
printf("%d ", i);
printf("\n");
for (i = 1; i <