骑士周游问题跳马问题C#实现(附带WPF工程代码)
骑士周游问题,也叫跳马问题。
问题描述:
将马随机放在国际象棋的8×8棋盘的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。
代码要求:
1,可以任意选定马在棋盘上的起始位置,
2,计算并打印马跳的路线。
3,可以控制代码执行的速度
4,可以随时暂停开始程序
5,程序结束后可以打印代码
问题解决:
开发环境--vs2015 开发语言--c#
设计思想:建立8*8的int数组,存储棋盘当前状态。选择当前马的位置,按照深度优先搜索写一个递归函数按次序遍历马的八个下一步位置。
缺点:算法效率低(如果马跳的慢一点程序跑一宿都没有结果。ps:根据图论,8*8的跳马问题是一定有解的)
优化:优化马跳下一步的顺序,优先选择出路少的路径。比如可以往左上和右上跳,左上跳之后有3种选择,右上跳之后有2种选择,则选右上。
结果:除少部分点需要回溯,大部分基本可以一次寻找到解;
图形化预览界面:

设计思想:
对使用usercontrol实现简单的界面显示。设计思想改进,更好的设置应该是把每一个格子设计成一个
对象,将格子的线直接binding到数据集上,实现界面和业务的分离。然而只是个大作业懒得写的那么麻烦了,
符合实际需求才是最好的方案。
-------------------------------------------------------------------
工程链接地址:http://download.csdn.net/download/xueyudlut/10228599
笔者最近穷的很,想下载别人的资源却没积分。读者老爷想下资源的话,可以赏在下两个积分orz
骑士周游问题跳马问题C#实现(附带WPF工程代码)的更多相关文章
- 【数据结构与算法Python版学习笔记】图——骑士周游问题 深度优先搜索
骑士周游问题 概念 在一个国际象棋棋盘上, 一个棋子"马"(骑士) , 按照"马走日"的规则, 从一个格子出发, 要走遍所有棋盘格恰好一次.把一个这样的走棋序列 ...
- 骑士周游问题 --- 递归解法 --- java代码
骑士游历: 定义了向量的数组M,行数组X,列数组Y, 棋盘plane,计数器count,走动步数step 需要注意的是,递归函数的进入前的验证,原先的想法是传入来时的方向参数,可是这样的想法被实践否定 ...
- poj 2488 A Knight's Journey 【骑士周游 dfs + 记忆路径】
题目地址:http://poj.org/problem?id=2488 Sample Input 3 1 1 2 3 4 3 Sample Output Scenario #1: A1 Scenari ...
- 图论 --- 骑士周游问题,DFS
A Knight's Journey Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 28630 Accepted: ...
- 【Window】Tor(洋葱头路由)+Privoxy 网络实践(附带Java实例代码)
1.背景 平时我们需要访问onion后缀的网站,需要通过Tor(The Onion Router,洋葱路由器).一般来说安装Tor Broswer就可以满足需要.但是项目我要做的是通过程序来获取oni ...
- fbx模型动画提取教程附带一个用代码提取的方法
角色已经人形化(Humanoid)了,那它的动画可以用在其它的模型上了也就是可以共用一套模型动画了但是你有没有发现那动画是和fbx模型绑在一起的,没关系你可以选中这几个动画文件按Contrl+D就可以 ...
- python调用支付宝支付接口详细示例—附带Django demo代码
项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公钥 2.应用公钥 3.应用私钥 4.APPID 5.Django 1.11. ...
- android studio 导入主题设置,代码风格(附带eclipse 主题代码样式)
在这里我最想说的,android studio默认主题样式,太low.不适合长时间写代码,看代码颜色不好识别,相对于背景的代码样式,我都不想吐槽了.还是网上下载主题代码样式导入样式.在这里我推荐 Su ...
- Python----DFS---骑士周游问题
这篇文章将会将一个数据结构与算法中一个很经典很重要的概念——深度优先搜索(Depth-First-Search:DFS).........(你他喵不是在标题里说了吗?) 好吧,DFS的精髓我其实也还没 ...
随机推荐
- Compiler Principle
1.Einleitung 1.1 Der Überblick über Compiler 1.1.1 Lexikalische Analyse Die lexikalische Analyse zer ...
- 三:Bootstrap-js插件
模式框: <button class="btn btn-default btn-lg" data-toggle="modal" data-target=& ...
- c 语言 随机生成数函数
int theRandom = 0; theRandom = arc4random_uniform(3)//随机生成一个从0到2的数 或者 #include "stdio.h" # ...
- MyBatis别名
Spring的别名管理比较规范,有严格的接口规范,SimpleAliasRegistry实现 -> AliasRegistry接口,而且是线程安全的,Map也用的是ConcurrentHashM ...
- springboot手动配置数据源:
@Configuration @EnableTransactionManagement @PropertySource(value = {"classpath:config/source.p ...
- 【SSH网上商城项目实战19】订单信息的级联入库以及页面的缓存问题
转自: https://blog.csdn.net/eson_15/article/details/51433247 购物车这一块还剩最后两个问题,就是订单信息的级联入库和页面缓存,这里的 ...
- Java数组声明与拷贝的几种方式
Java数组声明的三种方式 第一种(声明并初始化): 数据类型[] 数组名={值,值,...}; 例:int[] a = {1,2,3,4,5,6,7,8}; ...
- 在Pandas中直接加载MongoDB的数据
在使用Pandas进行数据处理的时候,我们通常从CSV或EXCEL中导入数据,但有的时候数据都存在数据库内,我们并没有现成的数据文件,这时候可以通过Pymongo这个库,从mongoDB中读取数据,然 ...
- [POI2005]AUT-The Bus
树状数组维护前缀最大值+扫描线DP #include"cstdio" #include"cstring" #include"iostream" ...
- 《CSS3揭秘》上(边框,投影,渐变,条纹效果,蚂蚁行军)
最近看了<CSS3揭秘>一书,里面真的是干货满满呀,现将常用到的一些技巧归纳总结,便于日后用到查找.不得不感叹学无止境哦~ 1.边框与背景 半透明边框 .demo{ background- ...