如何使用C++实现马踏棋盘
发表于:2024-10-20 作者:千家信息网编辑
千家信息网最后更新 2024年10月20日,这篇文章主要介绍如何使用C++实现马踏棋盘,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!马踏棋盘,用1枚马走遍棋盘。我用一个二维数组记录模拟的整个路径,x为列,y为行,以顺时针
千家信息网最后更新 2024年10月20日如何使用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安全错误
数据库的锁怎样保障安全
数据库技术考试辅导
山东省聊城软件开发公司电话
网络安全小故事大道理
服务器数据返回代码
维护网络安全建议
导出数据库配置
广州信息软件开发
绍兴海马网络技术有限公
竹溪好的软件开发技术指导
腾讯云服务器怎么搭v2
中指数据库账号多少钱一个
软件开发 耗材
有关酒店网络安全的ppt
gsm网络技术发短信
护面网络安全课观后感
php软件开发云知梦
erp服务器有几个系统
网络安全企业存在的问题
奔驰知识数据库的配置不完整
目前解决网络安全的主要设备
跑跑卡丁车国际服怎么换服务器
服务器提示网络名不可再用
扬州数据库账户怎么激活注册
学术专业数据库
i配模用什么软件开发的
杭州紫光网络技术有限公司招聘
力控组态软件实时数据库
上海俊伟网络技术
计算机工程和网络安全
云服务器可以转让么