[原创]我的作品:我的迷宫小游戏<Java版本>
这个小游戏是我选的第二个数据结构课程设计题目,觉得很有意思,也很有挑战性,对于一个自学Java的人来说写出这个小游戏我觉得无疑是一种鼓励,呵呵呵
实验题目:
随机生成一个迷宫图,迷宫大小为N*N,N预定义为常数,修改N的值可以改变迷宫的大小。用白色表示可走的路,蓝色表示墙壁不可以通过。系统设计两种运行方式:一种是系统自动探索(用递归方法实现);另一种是由人工操作探索通路。
设计思路:
程序首先要考虑迷宫的表示,这是一个二维关系图,所以可选择二维数组来存储。数组元素只有两种值0和1,分别代表通路和墙壁。图形的显示可以根据数组元素的值来确定。如果是人工探索,则依据按键来确定探索物的位置坐标,利用循环语句实现。如果是系统自动探索,可采用递归算法实现。
我使用的是Java Swing编程技术,采用了MVC的设计模式,这个是一个很经典的设计模式
关于这个小游戏我有很多的感触,我历时近一个星期的时间才写到了现在的程度,可以说是很不容易,查看了很多的参考资料,等到数据结构作业验收完了我也会给大家分享一下的,呵呵呵,这期间我问了不少人,这里特别要感谢两个好友,研究生学长武学鸿和同院好友沈冠军,谢谢你们两个人的帮忙,呵呵呵
其实这个游戏分为了几个部分:
1.生成迷宫:它的算法很多,我目前是写了一种,利用图的DFS,到时候我会和大家分享我的和大师们的程序,呵呵,敬请期待(为了这个我可是今天都在电脑面前看英文资料啊,呜呜呜)
2.显示迷宫:Java 画图的功能了
3.走出迷宫:它的算法也是挺多的,我现在写了两种,一种是最短路径,一种是DFS
同样,由于还没有验收,所以不好直接附上源码,这里给大家看看程序运行时显示的界面吧
程序运行时,点击Start按钮,就可以看到一个迷宫了(35*35的迷宫)
点击Computer do,首先选择一个速度,走出迷宫的速度,然后就可以看到一个绿色的小圆点自己走出迷宫了,呵呵呵
选择速度大小
正在走迷宫
走出了迷宫
王力宏的一首歌《爱因为在心中》,很喜欢这首歌,去年,我们技术部在网站的一次 party 上合唱的就是这首歌
“世界就像迷宫,却又让我们此刻相逢our home!”
左边的是选项设置面板
这里可以设置迷宫的大小,一般是设置行和列相等,考虑到显示的问题,我这里限制了行和列小于等于49
同时,行和列必须都是奇数,不然生成的迷宫会出现问题,这个是由于生成算法的原因
这里可以设置迷宫的难易程度,但是基本上没有,刚开始做的时候想的,后来没有去考虑了,这个没有什么关系,迷宫大了
也就难了
这里可以设置生成迷宫的算法,显示了三种,但是我只是写了一种,实际上还写了一种,还没有添加上去,最后一种我还没有实现
这里是设置走出迷宫的算法,同样是显示了三种,我写了两种,还有一种应该也是可以写出来的,呵呵,到时候和大家分享一下
这里是游戏的介绍
游戏控制面板
Restart 可以重新开始生成另一个迷宫
Pause 可以暂停当前正在走着的绿色的小圆点,点击了之后会变成 Continue
Stop 可以结束本次走出迷宫
I do 是玩家自己来走迷宫
Computer do 是电脑来走迷宫
自己走出了迷宫示例:
大迷宫: (49*49) 迷宫的每个格子的大小是有规律的,迷宫大格子的大小就小
33*33
用上下左右键控制绿色的小圆点,可以自己走迷宫
怎么样?喜欢吗?喜欢的话可以给我留言,帮助我来改进它,呵呵呵,谢谢了,届时我会写一列的博文介绍里面用到的算法,呵呵呵,敬请期待