骑士游历java课程设计

骑士游历java课程设计

ID:13513441

大小:309.50 KB

页数:17页

时间:2018-07-23

骑士游历java课程设计_第1页
骑士游历java课程设计_第2页
骑士游历java课程设计_第3页
骑士游历java课程设计_第4页
骑士游历java课程设计_第5页
资源描述:

《骑士游历java课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构课程设计报告目录1设计目的与意义32系统描述33运行环境44系统的分析与设计44.1程序结构说明44.2AccessibleSquare算法实现44.3画图类算法实现64.4主调用程序的设计和开发75系统测试85.1游戏初始界面85.2游戏以(1,1)为起点运行界面95.3游戏以(6,3)为起点界面105.4游戏以(6,3)为起点运行界面106总结11源程序121设计目的与意义Java课程设计是计算机科学与技术专业学生必做的集中实践性环节之一,是学习完《Java程序设计》课程后进行的一次全面的综合练习。其目的在于通过课程设计,使学生能够得到较系统的技能训练,从而巩固和加深对J

2、ava编程的基础理论知识的理解,培养学生综合运用所学理论解决实际问题的能力,使学生成为具有扎实的计算机理论基础和较强的独立动手能力的复合型、应用型人才。2系统描述骑士游历问题是一个古老而著名的问题,它最初是由大数学家Euler提出的。问题是这样的:国际象棋中的棋子(叫作骑士)在一个空棋盘内移动,问它能否经过64格中的每一格且只经过一次?(骑士按L行移动,即在某方向前进两格接着在与原方向垂直的方向上前进一格)该课程设计要求实现骑士游历问题的求解,并能够演示起始位置在棋盘上任何位置的游历问题的实现。程序将采用动态的图形演示,使算法的描述更形象、更生动。本程序采用Applet来编制整个程序

3、,这样既可以加深对算法的实现的了解,也可以进一步熟悉Java图形界面、Applet以及Java语言的命名规范。骑士游历的课程设计是按照面向对象的思想进行开发,其中主要的类包括AccessibleSquare类、MyPanel类和KnightsTour类。其中AccessibleSquare类主要是算法实现,采用启发式算法;KnightsTour类是主类,或者说是控制类,它完成对算法类和图画类的调用;MyPanel类是画图类用来实现图形化显示结果。3运行环境本程序是在windowsxp的环境下运行的。4系统的分析与设计4.1程序结构说明本程序由三个类组成一个工程文件。其中Knights

4、Tour是主类,或者说是控制类,AccessibleSquare类主要是算法实现,MyPanel实现图形化显示结果。程序的运行关系如图4-1。AccessibleSquare类MyPanel类KnightsTour类图4-1程序运行关系图4.2AccessibleSquare算法实现1)AccessibleSquare类主要是算法实现,采用启发式算法。先把八个可能走的方向用两个数组(horizontal[]和vertical[])表示,选择走哪个方向就在原坐标上进行相应的加法,表示骑士到了一个新的位置。horizontal[]和vertical[]表示骑士8个方向走L形状所需的X坐标

5、和Y坐标的变化量:horizontal[]={2,1,-1,-2,-2,-1,1,2},vertical[]={-1,-2,-2,-1,1,2,2,1}。坐标图如下:65432187图4-2骑士游历走向坐标图2)由于程序采用启发式算法,应考察每一方格的可到达性。使用数组accessibility[]表示可达到数,并当骑士游历时,程序动态修正剩余格子的可达到数。accessibility[arrayPos]=0表明格子已经被占据。3)使用冒泡法来查询最小数。冒泡排序的基本概念是:依次比较相邻的两个数,将大数放在前面,小数放在后面。即首先比较第1个和第2个数,将大数放前,小数放后。然后比

6、较第2个数和第3个数,将大数放前,小数放后,如此继续,直至比较最后两个数,将大数放前,小数放后,此时第一趟结束,在最后的数必是所有数中的最小数。重复以上过程,直至最终完成排序。//冒泡排序法privatevoidsortAll(){for(intbegin=0;beginaccessibility[i]){swapAll(begin,i);}//endofif}//endofinnerfor

7、}//endofouterfor}//endofsortAll//进行移动操作publicvoiddomoving(){for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。