java如何实现马踏棋盘
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章给大家分享的是有关java如何实现马踏棋盘的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下马踏棋盘很好实现,但有时运行起来特别慢,还可能出不来结果,在这里
千家信息网最后更新 2025年01月23日java如何实现马踏棋盘
这篇文章给大家分享的是有关java如何实现马踏棋盘的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
具体内容如下
马踏棋盘很好实现,但有时运行起来特别慢,还可能出不来结果,在这里要用到贪心算法来优化,即找出最难走的路径,也就是下下步可下棋的位置最少。
下面给出该算法完整代码:
/* * 马踏棋盘问题:(贪婪法求解) * 棋盘有64个位置,"日"字走法,刚好走满整个棋盘 */ //下一个走法的方向类 class Direction{ int x; int y; int wayOutNum; } public class Hores_chessboard_1 { static final int[] dx = { -2, -1, 1, 2, 2, 1, -1, -2 }; // x方向的增量 static final int[] dy = { 1, 2, 2, 1, -1, -2, -2, -1 }; // y方向的增量 static final int N = 8; static int[][] chessboard = new int[N][N]; // 棋盘 /** * * @param nami * @param x,y为棋子的位置 * @return 如果棋子的位置不合法,则返回一个大于8的数。 * 否则返回棋子的下个出路的个数 */ static int wayOut(int x, int y){ int count = 0; int tx, ty, i; //判断是否超出棋盘边界,该位置是否已经下过 if(x<0 || x>7 || y<0 || y>7 || chessboard[x][y]!=0){ return 9; } for(i=0; i-1 && tx<8 && ty>-1 && ty<8 && chessboard[tx][ty]==0) count++; } return count; } /** * 按照棋子的下个出路的个数从低到高排序 * @param next 棋子的八个位置的数组 */ static void sort(Direction[] next){ int i, j, index; Direction temp = null; //这里用的选择排序 for(i=0; i next[j].wayOutNum) index = j; } if(i != index){ temp = next[i]; next[i] = next[index]; next[index] = temp; } } } static void Move(int x, int y, int step){ int i, j; int tx, ty; //如果step==64,则说明每个棋格都走到了,现在只需要打印结果就完了 if(step == N*N){ for(i=0; i 这里给出运算结果:
感谢各位的阅读!关于"java如何实现马踏棋盘"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
棋盘
棋子
位置
个位
个数
内容
出路
方向
算法
结果
排序
贪婪
增量
数组
更多
篇文章
走法
路数
j++
循环
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
曲阜师范大学网络安全空间学院
网络技术学校什么时候开学
苹果电脑网络安全级别
奇异果总连不上服务器
软件开发细分领域
计算机网络安全危害实例
服务器维护费用报价单
黑龙江任务态势系统软件开发
南京吉同信网络技术
网络技术的曲线
西安养老院管理软件开发
网络安全总体设计课设
中山家教服务软件开发有哪些
网络安全产品系统化
数据库 离散数学
数据库应用和服务器搭建
轻量级服务器无法访问
软件开发电话技术面试会问什么
智能软件开发专业干啥
日本网络安全管理体系
数据库管理库系统小
昱澄信息网络安全
银行网络安全知识宣传范文
2017网络安全标语
数据库 题目
大数据书籍软件开发书籍
鸿新大真网络技术
网络安全申请密码
cf进去服务器反应慢
solr数据库导入索引