A minesweeper game based on C++
made by DingDang & open source
感谢 Hi-Kite 对项目的贡献(提供判断系统的代码)
Important
编译/运行环境:C++11/Windows7+
Note
Dev-Cpp 5.11 is supported
- 程序会提示输入:
<HEIGHT> <WIDTH> <HEALTH> <MINE_SUM>
,分别代表行数,列数(均小于等于30),生命值(小于行数×列数),雷数(小于行数×列数),有数据判断 - 操作符
q p c a
+X,Y
分别代表:在 (x,y) ²(见注释) 翻开/插旗/撤销插旗/使用Ai(作为起始点)³,以下为详细介绍 - q x y: 翻开位于 (x,y) 的方格,如果这是你的首次点击并且踩到雷,程序会自动帮你插旗并不扣血,如果不是,扣一滴血,自动插旗;如果当前格为空白(0),自动帮你翻开周围8格内所有的空白,如果空白周围还有空白,继续翻开
- p x y: 在 (x,y) 插旗,表示你认为这里为雷,旗子没有数量限制,但是只有插对地方且数量正确才会胜利
- c x y: 撤销在 (x,y) 的插旗,如果该位置没有旗则不会操作
- a x y: 将Ai排雷的起始点设置为 (x,y) ,再输入 (x1,y1) (具体坐标说明见下方补充部分),Ai将在这个范围内自动排雷,并为你插旗;你也可以选择输出这个范围内的数字
- t x y: 在 (x,y) 的范围内输出有几个雷,已经标了几个雷
- f x y: 在 (x,y) 的范围内将插在不是雷的方块上的旗子撤销,并翻开该方块
- NOTICE: 在1.1+版本中,只需输入Ai终点,会自动在 (1,1) 到终点坐标排雷,更加便捷
- 插完所有的旗,并插对位置
- 扫完全部的可翻开(不为雷的区域)的方格,剩下的全部方格都为雷,支持检测插旗的有雷方块。但是,如果旗子插错位置,则不会显示胜利
My CSDN blog: 点这里
Includes:
#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <ctime>
#include <iomanip>
#include <cctype>
#include <string>
//#include <unistd.h>