C语言实现最简单的扫雷游戏,棋盘共10行10列,20个地雷随机放在棋盘中,玩家点到没有地雷的地方展示该地周围8个位置地雷总和,之后游戏继续玩家输入下一个坐标,直到所有"安全地"被找出来或者点到地雷游戏结束。
代码整体分5块
1.void Setmine(char mine_board[][row], int x, int y); 该函数实现“埋雷”。传入棋盘,随机生成20个“有效”位置并埋好地雷
2.void Show(char show_board[][row], int x, int y);该函数实现打印传入的棋盘
3.char Judge(char mine_board[][row], int x, int y);该函数实现判断是否踩到地雷,是则游戏结束,否则返回该位置周边雷子数量
4.void Open(char show_board[][row], char mine_board[][row], int x, int y);该函数实行四周是否有雷,如果没有则展开,如果有令show_board对应位置为四周雷数
5.void Game();该函数是整个游戏的运行顺序
游戏实现了第一次不踩雷,如果四周没地雷可以展开
以下为头文件game.h
#ifndef __game_h__
#define __game_h__
#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<string.h>
#pragma warning (disable :4996)
#define line 12
#define row 12
#define amount 20
void Setmine(char mine_board[][row], int x, int y);
void Show(char show_board[][row], int x, int y);
char Judge(char mine_board[][row], int x, int y);
void Open(char show_board[][row], char mine_board[][row], int x, int y);
void Game();
#endif
以下为定义的函数game.c
#include "game.h"
void Setmine(char mine_board[][row], int x, int y)
{
int times = amount;
while (times){
while (1){
int X = rand() % 10 + 1;
int Y = rand() % 10 + 1;
if (mine_board[X][Y] == '0'){
mine_board[X][Y] = '1';
break;
}
}
times--