【扫雷游戏】非淡泊无以明志,非宁静无以致远。这篇文章主要讲述扫雷游戏相关的知识,希望能为你提供帮助。
game.h
#pragma once
#include < stdio.h>
#include < stdlib.h>
#include < time.h>
#define ROW 9
#define COL 9
#define EASY_COUNT 80
#define ROWS ROW+2
#define COLS COL+2
void& nbsp; InitBoard(char& nbsp; board[ROWS][COLS],& nbsp; int& nbsp; rows,int& nbsp; cols,char& nbsp; set& nbsp; );
void& nbsp; DisplayBoard(char& nbsp; board[ROWS][COLS],& nbsp; int& nbsp; row,& nbsp; int& nbsp; col);
void& nbsp; SetMine(char& nbsp; board[ROWS][COLS],& nbsp; int& nbsp; row,& nbsp; int& nbsp; col);
void& nbsp; FindMine(char& nbsp; mine[ROWS][COLS],char& nbsp; show[ROWS][COLS],& nbsp; int& nbsp; row,& nbsp; int& nbsp; col);
game.c
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
void& nbsp; InitBoard(char& nbsp; board[ROWS][COLS],& nbsp; int& nbsp; rows,& nbsp; int& nbsp; cols,char& nbsp; set)
int& nbsp; i& nbsp; =& nbsp; 0;
int& nbsp; j& nbsp; =& nbsp; 0;
for& nbsp; (i& nbsp; =& nbsp; 0; & nbsp; i& nbsp; & lt; & nbsp; rows; & nbsp; i++)
for& nbsp; (j& nbsp; =& nbsp; 0; & nbsp; j& nbsp; & lt; & nbsp; cols; j++)
board& nbsp; [i][j]& nbsp; =& nbsp; set;
void& nbsp; DisplayBoard(char& nbsp; board[ROWS][COLS],& nbsp; int& nbsp; row,& nbsp; int& nbsp; col)
int& nbsp; i& nbsp; =& nbsp; 0;
int& nbsp; j& nbsp; =& nbsp; 0;
//打印列号
for& nbsp; (i& nbsp; =& nbsp; 0; & nbsp; i& nbsp; & lt; & nbsp; col; & nbsp; i++)
printf(& quot; %d& nbsp; & nbsp; & quot; ,& nbsp; i);
printf(& quot; \\n& quot; );
for& nbsp; (i& nbsp; =& nbsp; 1; & nbsp; i& nbsp; & lt; & nbsp; row; & nbsp; i++)
printf(& quot; %d& nbsp; & nbsp; & quot; ,& nbsp; i);
for& nbsp; (j& nbsp; =& nbsp; 1; & nbsp; j& nbsp; & lt; & nbsp; col; & nbsp; j++)
printf(& quot; %c& nbsp; & nbsp; & quot; ,board[i][j]);
printf(& quot; \\n& quot; );
void& nbsp; SetMine(char& nbsp; board[ROWS][COLS],& nbsp; int& nbsp; row,& nbsp; int& nbsp; col)
int& nbsp; count& nbsp; =& nbsp; EASY_COUNT;
while& nbsp; (count)
int& nbsp; x& nbsp; =& nbsp; rand()& nbsp; %& nbsp; row& nbsp; +& nbsp; 1; //1-9
int& nbsp; y& nbsp; =& nbsp; rand()& nbsp; %& nbsp; col& nbsp; +& nbsp; 1;
if& nbsp; (board[x][y]& nbsp; ==& nbsp; & #39; 0& #39; )
board[x][y]& nbsp; =& nbsp; & #39; 1& #39; ;
count--;
int& nbsp; get_mine_count(char& nbsp; mine[ROWS][COLS],& nbsp; int& nbsp; x,& nbsp; int& nbsp; y)
return& nbsp; mine[x& nbsp; -& nbsp; 1][y]& nbsp; +& nbsp; mine[x& nbsp; -& nbsp; 1][y& nbsp; -& nbsp; 1]& nbsp; +& nbsp; mine[x][y& nbsp; -& nbsp; 1]& nbsp; +& nbsp; mine[x& nbsp; +& nbsp; 1][y& nbsp; -& nbsp; 1]
+& nbsp; mine[x& nbsp; +& nbsp; 1][y]& nbsp; +& nbsp; mine[x& nbsp; +& nbsp; 1][y& nbsp; +& nbsp; 1]& nbsp; +& nbsp; mine[x][y& nbsp; +& nbsp; 1]& nbsp; +& nbsp; mine[x& nbsp; -& nbsp; 1][y& nbsp; +& nbsp; 1]& nbsp; -& nbsp; 8& nbsp; *& nbsp; & #39; 0& #39; ;
void& nbsp; FindMine(char& nbsp; mine[ROWS][COLS],& nbsp; char& nbsp; show[ROWS][COLS],& nbsp; int& nbsp; row,& nbsp; int& nbsp; col)
int& nbsp; x& nbsp; =& nbsp; 0;
int& nbsp; y& nbsp; =& nbsp; 0;
int& nbsp; win& nbsp; =& nbsp; 0;
while& nbsp; (win& lt; row*col-EASY_COUNT)
printf(& quot; 请输入排查雷的坐标:& gt; & quot; );
scanf(& quot; %d%d& quot; ,& nbsp; & amp; x,& nbsp; & amp; y);
if& nbsp; (x& nbsp; & gt; =& nbsp; 1& nbsp; & amp; & amp; & nbsp; x& nbsp; & lt; =& nbsp; row& nbsp; & amp; & amp; & nbsp; y& nbsp; & gt; =& nbsp; 1& nbsp; & amp; & amp; & nbsp; y& nbsp; & lt; =& nbsp; col)
//坐标合法
if& nbsp; (mine[x][y]& nbsp; ==& nbsp; & #39; 1& #39; )//踩雷
printf(& quot; 很遗憾,你被炸死了!\\n& quot; );
DisplayBoard(mine,& nbsp; row,& nbsp; col);
break;
else//不是雷
int& nbsp; count& nbsp; =& nbsp; get_mine_count(mine,x,y);
show[x][y]& nbsp; =& nbsp; count& nbsp; +& nbsp; & #39; 0& #39; ;
DisplayBoard(show,& nbsp; row,& nbsp; col);
win++;
else
printf(& quot; 输入坐标非法,请重新输入!\\n& quot; );
if& nbsp; (win& nbsp; ==& nbsp; row& nbsp; *& nbsp; col& nbsp; -& nbsp; EASY_COUNT)
printf(& quot; 恭喜你,排雷成功!\\n& quot; );
//DisplayBoard(mine, row, col);
test.c
#define _CRT_SECURE_NO_WARNINGS 1
#include < stdio.h>
#include "game.h"
void& nbsp; menu()
printf(& quot; *********************\\n& quot; );
printf(& quot; ***1.paly***0.exit***\\n& quot; );
printf(& quot; *********************\\n& quot; );
void& nbsp; game()
//雷的信息存储
char& nbsp; mine[ROWS][COLS]& nbsp; =& nbsp; 0;
//排查出雷的信息
char& nbsp; show[ROWS][COLS]& nbsp; =& nbsp; & nbsp; 0& nbsp; ;
//初始化
InitBoard(mine,ROWS,COLS,& #39; 0& #39; );
InitBoard(show,& nbsp; ROWS,& nbsp; COLS,& #39; *& #39; );
//打印棋盘
//DisplayBoard(mine,ROW,COL); //显示棋盘
DisplayBoard(show,& nbsp; ROW,& nbsp; COL);
//布置雷
SetMine(mine,& nbsp; ROW,& nbsp; COL);
DisplayBoard(mine,& nbsp; ROW,& nbsp; COL);
//扫雷
FindMine(mine,show,& nbsp; ROW,& nbsp; COL);
void& nbsp; test()
int& nbsp; input& nbsp; =& nbsp; 0;
srand((unsigned& nbsp; int)time(NULL));
do& nbsp;
menu();
printf(& quot; 请选择:& gt; & quot; );
scanf(& quot; %d& quot; ,& nbsp; & amp; input);
switch& nbsp; (input)
case& nbsp; 1:
game();
break;
case& nbsp; 0:
printf(& quot; 退出游戏& quot; );
default:
printf(& quot; 选择错误,重新选择!\\n& quot; );
break;
& nbsp; while& nbsp; (input);
int& nbsp; main()
test();
return& nbsp; 0;
推荐阅读
- [ C语言 ]一篇带你了解浮点型在内存中的存储
- oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19
- K8SHelm包管理工具的简单介绍和安装方法
- 如何为项目构建高效的统一文件存储方案
- 重启数据库集群服务器( 主库服务器/备库服务器 )步骤
- OpenHarmony - ArkUI基于JSAPI实现的360°全景展示
- 养猪场自动化喂料线赛盘链条
- 跑通SpringBoot + dubbo + zookeeper
- 同步工具之Vector