如何使用C++实现马踏棋盘
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要介绍如何使用C++实现马踏棋盘,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!马踏棋盘,用1枚马走遍棋盘。我用一个二维数组记录模拟的整个路径,x为列,y为行,以顺时针
千家信息网最后更新 2025年02月23日如何使用C++实现马踏棋盘
这篇文章主要介绍如何使用C++实现马踏棋盘,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
马踏棋盘,用1枚马走遍棋盘。我用一个二维数组记录模拟的整个路径,x为列,y为行,以顺时针的方式寻找下一格,算法比较简单,就通过递归和循环回溯即可,就是如果是8*8的数组,最坏可能执行8^(x*y)次,耗时长到怀疑人生。
#include#define X 5#define Y 5 void ShowResult();using namespace std; int chess[Y][X]={ 0};int counter=0; int Next(int* x,int* y,int where){ switch(where){ case 0: if(*x+1 =0&&chess[*y-2][*x+1]==0){ *x+=1; *y-=2; return 1; } break; case 1: if(*x+2 =0&&chess[*y-1][*x+2]==0){ *x+=2; *y-=1; return 1; } break; case 2: if(*x+2 =0&&*y+2 =0&&*y+1 =0&&*y-1>=0&&chess[*y-1][*x-2]==0){ *x-=2; *y-=1; return 1; } break; case 7: if(*x-1>=0&&*y-2>=0&&chess[*y-2][*x-1]==0){ *x-=1; *y-=2; return 1; } break; } return 0;} int Explore(int x,int y){ int x1=x; int y1=y; int flag; int where=0; counter++; chess[y][x]=counter; if(counter==X*Y){ return 1; } flag=Next(&x1,&y1,where); while(flag==0&&where<7){ where++; flag=Next(&x1,&y1,where); } while(flag){ if(Explore(x1,y1)==1){ return 1; } else{ x1=x; y1=y; where++; flag=Next(&x1,&y1,where); while(flag==0&&where<7){ where++; flag=Next(&x1,&y1,where); } } } if(flag==0){ chess[y][x]=0; counter--; } return 0;} void ShowResult(){ for(int i=0;i 以上是"如何使用C++实现马踏棋盘"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
棋盘
C++
内容
数组
篇文章
人生
价值
兴趣
小伙
小伙伴
就是
方式
时针
时长
更多
知识
算法
行业
资讯
资讯频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
pdf软件开发团队
关于部队手机网络安全心得体会
db2远程导出数据库
数据库三范式对比优化
湖北网络技术专业排名
济南的软件开发公司
大学里现在有关网络安全的专业
数据库中u
台湾免费云服务器
服务器监控软件对比
互联网科技在中国梦
计算机网络技术专升本课程
虹口区互联网软件开发厂家要求
搭建求生之路服务器
网络技术很难学吗
网络技术专业发展前景分析
商品数据库实习报告
新手希望之春怎么进入服务器
西宁恒山系列鲲鹏服务器
手机游戏用什么网络技术
刚果金维和部队网络安全
数据库的索引大小查询语句
植物大战僵尸2网络安全法
怎样确保代码库和数据库的安全
本校数据库
数据库开发技术试卷a
宝仁教育软件开发有限公司
电信网络安全业绩总结
数据库宏怎么设条件
服务器多点温湿度监测