骑士周游问题,也叫跳马问题。

问题描述:

将马随机放在国际象棋的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工程代码)的更多相关文章

  1. 【数据结构与算法Python版学习笔记】图——骑士周游问题 深度优先搜索

    骑士周游问题 概念 在一个国际象棋棋盘上, 一个棋子"马"(骑士) , 按照"马走日"的规则, 从一个格子出发, 要走遍所有棋盘格恰好一次.把一个这样的走棋序列 ...

  2. 骑士周游问题 --- 递归解法 --- java代码

    骑士游历: 定义了向量的数组M,行数组X,列数组Y, 棋盘plane,计数器count,走动步数step 需要注意的是,递归函数的进入前的验证,原先的想法是传入来时的方向参数,可是这样的想法被实践否定 ...

  3. 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 ...

  4. 图论 --- 骑士周游问题,DFS

    A Knight's Journey   Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 28630   Accepted: ...

  5. 【Window】Tor(洋葱头路由)+Privoxy 网络实践(附带Java实例代码)

    1.背景 平时我们需要访问onion后缀的网站,需要通过Tor(The Onion Router,洋葱路由器).一般来说安装Tor Broswer就可以满足需要.但是项目我要做的是通过程序来获取oni ...

  6. fbx模型动画提取教程附带一个用代码提取的方法

    角色已经人形化(Humanoid)了,那它的动画可以用在其它的模型上了也就是可以共用一套模型动画了但是你有没有发现那动画是和fbx模型绑在一起的,没关系你可以选中这几个动画文件按Contrl+D就可以 ...

  7. python调用支付宝支付接口详细示例—附带Django demo代码

    项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公钥 2.应用公钥 3.应用私钥 4.APPID 5.Django 1.11. ...

  8. android studio 导入主题设置,代码风格(附带eclipse 主题代码样式)

    在这里我最想说的,android studio默认主题样式,太low.不适合长时间写代码,看代码颜色不好识别,相对于背景的代码样式,我都不想吐槽了.还是网上下载主题代码样式导入样式.在这里我推荐 Su ...

  9. Python----DFS---骑士周游问题

    这篇文章将会将一个数据结构与算法中一个很经典很重要的概念——深度优先搜索(Depth-First-Search:DFS).........(你他喵不是在标题里说了吗?) 好吧,DFS的精髓我其实也还没 ...

随机推荐

  1. Comet事件分析

    简介[ Introduction ]  使用APR或者NIO API作为连接器的基础,Tomcat能够提供一些在阻塞IO之上的有效扩展,用于支持Servlet API. [ With usage of ...

  2. Weblogic Maven

    从weblogic 10.3.4开始支持maven deploy部署   步骤如下: 1.构建weblogic-maven-plugin jar 在D:\oracle\Middleware\wlser ...

  3. Code First配合Entity Framework Power Tools Beta 4使用

    基于现有数据库生成POCO数据类和数据库上下文需要借助Visual Studio一个扩展插件-- Entity Framework Power Tools(一个Code First反向工程工具).只要 ...

  4. GBK 编码

    GBK编码范围:8140-FEFE,汉字编码范围见第二节:码位分配及顺序. GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准.GBK编码依然采用双字节编码方案,其编码范围:8 ...

  5. C语言读写配置文件--转载

    http://www.oschina.net/code/snippet_4873_2503 [].[代码] CException.h 跳至 [] [] [] /******************** ...

  6. 【LeetCode题解】20_有效的括号(Valid-Parentheses)

    目录 20_有效的括号(Valid-Parentheses) 描述 解法 思路 Java 实现 Python 实现 复杂度分析 20_有效的括号(Valid-Parentheses) 描述 给定一个只 ...

  7. replace替换,全局和局部替换

    <script> var a=document.getElementById("introduce").innerHTML; var b=a.replace(/jone ...

  8. 撩课-Java每天5道面试题第10天

    撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户 ...

  9. 图解源码之java锁的获取和释放(AQS)篇

    以独占式不公平锁为例,通过5个线程争夺ReentrantLock的过程,图解ReentrantLock源码实现,了解显示锁的工作流程. 任何时刻拿到锁的只有一个线程,未拿到锁的线程会打包成节点(nod ...

  10. 解决MyEclipse代码编辑器中汉字太小的问题

    1.问题描述: 新安装的myeclipse 2014,代码编辑器中汉字很小看不清,如下图所示: 2.解决办法: 调整字体即可.通过菜单Windows——Preferences,输入font过滤选择Co ...