新手求助,简单扫雷代码,地图画出来了,如何排雷的代码不会写
直接入主题,能把扫雷地图画出来,但如何排雷却不知道咋整的了,求助#include <iostream>
#include <graphics.h>
#include <time.h>
using namespace std;
const int N = 10;
int map = { 0 };
void mailei();//埋地雷
int Ret_Lei();//计算地雷的个数
int main()
{
int i, j;
mailei();
Ret_Lei();
for (int i = 1; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
cout << map << "\t";
}
cout << endl;
}
return 0;
}
void mailei() //埋雷
{
srand((unsigned)time(NULL));
int x, y;//x,y坐标埋雷9格宫
int i, j, k, l;// ij 是地图的行和列 k是地雷的个数
for (int k = 0; k < 10;)
{
x = rand() % 9 + 1;//产生1-9随机数字
y = rand() % 9 + 1;
if (map != -1)//-1表示地雷 如果此坐标不是地雷,那么就埋个雷
{
map = -1;
k++;
}
}
}
int Ret_Lei() //计算雷的个数
{
for (int i = 1; i <= 10; i++)
{
for (int j = 1; j <= 10; j++)
{
if (map != -1)
{
for (int x = i - 1; x < i + 1; x++)
{
for (int y = j - 1; y < j + 1; y++)
{
if (map == -1)
{
map++;
}
}
}
}
}
}
return 0;
}
不知道为啥,源码不能放上来,我给你弄了个压缩文件,把sweep,hsweep.cppmain.cpp 打包到一起了,你建空项目,加进去编译运行,应该没问题,还有,你的源码想实现那个效果,会有点难,所以我自己谢了一份 排雷的话,你可以在绘制完雷阵后加一个while循环,接受用户输入两个数,行和列,然后判断【行】【列】是否为-1,是的话,失败,不是的话将值置为-2,然后判断雷阵的值==-2 && 值 == -1,是的话,排雷成功退出循环,不是的话继续循环,要我写就这么写,仅供参考 宫志强 发表于 2016-12-22 21:24
排雷的话,你可以在绘制完雷阵后加一个while循环,接受用户输入两个数,行和列,然后判断【行】【列】是否 ...
现在的问题是地图能显示出来,但这个地图是显式的,能看得到雷的布局,通过什么样的让地图开始都是显示*****号,然后输入行 列,如果这个行 列对应*号下面是-1就扫雷失败,如果不是就继续输入,指导雷扫完了,思路就是这样,可是这个代码我不会写了,蛋疼 寒风001 发表于 2016-12-22 21:59
现在的问题是地图能显示出来,但这个地图是显式的,能看得到雷的布局,通过什么样的让地图开始都是显示** ...
是这样啊,我一下写一份代码,明天写完发给你吧,宿舍快熄灯了 宫志强 发表于 2016-12-22 22:04
是这样啊,我一下写一份代码,明天写完发给你吧,宿舍快熄灯了
谢谢啊,在我这个代码基础上吧,谢谢,最简洁的那种{:5_92:} 寒风001 发表于 2016-12-22 22:10
谢谢啊,在我这个代码基础上吧,谢谢,最简洁的那种
等下的,我把代码发出来 sweep.h
#pragma once
#include <iostream>
#include <math.h>
#include <time.h>
using namespace std;
class sweep
{
public:
sweep(int num, int x = 10, int y = 10);
~sweep();
void InitMap(int * map);
void DrawMap(int * map);
int UserInput();
int judge_map(int *map);
private:
int map_x;
int map_y;
int*m_map; //地图数组
int mine_num;
int*m_user_map; //地图属性数组,保存对应的格子,是否已被查看,被查看,值为1,未被查看,值为0
}; 宫志强 发表于 2016-12-23 11:29
sweep.h
{:10_261:}还没有学到类,能否不用类,用最原始的基础的c语言来写这个排雷过程,谢谢啦{:5_91:} 寒风001 发表于 2016-12-23 11:40
还没有学到类,能否不用类,用最原始的基础的c语言来写这个排雷过程,谢谢啦
能倒是能,我弄一下 宫志强 发表于 2016-12-23 14:01
能倒是能,我弄一下
{:5_92:}谢谢了,我就是需要那种最简洁的那种 这种的算吗{:10_266:} xw0314 发表于 2016-12-23 18:38
这种的算吗
算啊,代码{:5_91:} 可用vs单步执行
页:
[1]