zoukankan      html  css  js  c++  java
  • 骑士周游问题跳马问题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

    本博客所有内容为原创,转载需征求作者同意。
  • 相关阅读:
    使用KRPano资源分析工具一键下载全景网站切片图
    使用KRPano资源分析工具解密被加密的XML
    数据库---表---增删改与权限
    数据库---表---表操作练习
    数据库---表---完整性约束
    数据库---表---数据类型
    数据库---表操作---增删改查
    数据库---库操作---表操作
    数据库---初识sql语句
    数据库---mysql的介绍和安装
  • 原文地址:https://www.cnblogs.com/xueyudlut/p/8372519.html
Copyright © 2011-2022 走看看