概述
- easy-x插件需要自己在官网下载(附上链接)
https://easyx.cn/ - 安装好插件后用vs2019打开
- 然后话不多说,附上源码
#include <stack>
#include <iostream>
#include<time.h>
#include<graphics.h>
using namespace std;
struct node
{
int x;
int y;
};
IMAGE img1, img2;
int map[8][8] = { 0 };
int step[8][2] = { {-2,-1} ,{-2,1},{2,-1},{2,1},{-1,-2},{-1,2},{1,-2},{1,2} };
int visit[8][8] = { 0 };
bool bound(int x, int y) {
if (x < 8 && x>=0 && y < 8 && y>=0 ) {
return true;
}
return false;
}
void draw_number() {
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if (map[i][j] != 0) {
//设置字体的颜色
//当它行数加上列数为奇数的时候
if ((i + j) % 2 == 1) {
setbkcolor(RGB(143,89,45));
}
//当它行数加上列数为偶数的时候
else {
setbkcolor(RGB(224,204,171));
}
//把字体进行可视化
char ch[10] = " ";
sprintf_s(ch, "%d", map[i][j]);
settextstyle(35, 20, "楷体");
settextcolor(RGB(rand() % 256, rand() % 256, rand() % 256, ));
outtextxy( 60+ 64.5 * j, 60 + 64.5 * i, ch);
}
}
}
}
int find_path(int x,int y) {
//设置随机数种子
srand((unsigned)time(NULL));
//用栈来储存结构体
stack<node>s;
node p;
p.x = x;
p.y = y;//初始化马的位置(x=1,y=0)
s.push(p);
visit[p.x][p.y] = 1;
int num = 1; //进行初始化
map[p.x][p.y] = num;
putimage(0, 0, &img1);
draw_number();
putimage(42 + 64.5 * p.y, 42 + 64.5 * p.x, &img2);
Sleep(1000);
while (!s.empty()) {
int t = 0; //逻辑判断,无路可走情况
for (int i = 0; i < 8; i++) {
p = s.top();
node h = p;
h.x = p.x + step[i][0];
h.y = p.y + step[i][1];
if (visit[h.x][h.y] == 0 && bound(h.x, h.y)) {//判断位置是否有效
//可视化棋盘
putimage(0, 0, &img1);
draw_number();
putimage(42 + 64.5 * h.y, 42 + 64.5 * h.x, &img2);
s.push(h);
//当马每踏过一个网格就把数字num+1
num++;
map[h.x][h.y] = num;
visit[h.x][h.y] = 1;
t = 1;
//间隔一秒便于观察
Sleep(500);
}
}
if (t == 0) {
s.pop();//走到尽头回溯
}
}
return 0;
}
int main()
{
//创建可视化窗户
loadimage(&img1, "1.jpg");
loadimage(&img2, "2.png");
//开始马踏棋盘
int x;
int y;
cout << "请输出马的初始位置:"<<endl;
cin >> x;
cin >> y;
initgraph(600, 600);
find_path(2,3);
//结束时候的标志
MessageBox(NULL, "马踏棋盘完成!", "消息", MB_OK);
closegraph();
}
- 资源文件是放到这个文件夹里的:
- 运行后结果是这样子的:
最后
以上就是无语发夹为你收集整理的用easy-x可视化窗口实现马踏棋盘的全部内容,希望文章能够帮你解决用easy-x可视化窗口实现马踏棋盘所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复