允许玩家通过键盘上的方向键在迷宫中移动,在穿越过程.docVIP

允许玩家通过键盘上的方向键在迷宫中移动,在穿越过程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
允许玩家通过键盘上的方向键在迷宫中移动,在穿越过程.doc

题目9:设计并实现图形版的穿越迷宫问题。每次随机生成迷宫,系统先计算好路径,允许玩家通过键盘上的方向键在迷宫中移动,在穿越过程中,通过对话框或其他界面提示给予玩家一定的帮助,直到成功到达迷宫出口。 (2) 程序实现的基本思想 设计该迷宫可使用小应用程序.程序设计分为四个主要步骤: 第一,设计一个迷宫数组。首先我们要生成一个方格阵图,数组中每个元素代表图中相对应的一个小方格,每个方格由上墙与右墙组成,也就是说,要生成一个迷宫,只需要拆掉每个方格的上墙或右墙就可以实现了。令每一个数组元素赋予不同的字符,主要用来标记该坐标的方格是否具有上墙、右墙、边界,以及上、右墙是否皆有的四种情况。在运行程序的时候,就在各个位置上画上相应的图就可以了。 第二,使用递归方法随机生成一个迷宫格数组。从数组位置始点(1,1)出发,随机选取一个方向,再沿着方向走,进入下一个方格,再随机选取一个方向再走下,直到走遍所有方格,注意的是每个方格只能走一次。设当前位置为(i,j)处的方格里,现随机选择一个方向,如果方向所指向的位置为边界或是已设置过的地方,则另外再随机选取一个方向。选定位置后,如果所指向的方向向上,则拆掉(i,j)i,j+1)i,j)i,j)处,首先向各方向路径进行搜索;如果目标找到,则停止向其他方向搜索。否则则继续沿其他路径搜索,直到搜索到终点(n,n)为止。最后系统会根据由当前位置通往终点的路径给出路径方向提示。 第四,设计让小机械猫自动走出迷宫。设小机械猫的当前位置为(i,j),则系统通过调用方向提示的办法明确路径方向,再移动小机械猫,逐步走出迷宫。 (3) 程序的UML图 (4) 系统流程 (5) 运行结果及分析 1、运行程序 图(1) 由上图可以看到左上角显示出关数,而右边的面板上有6个按钮,1个标签,标签用于显示关数,六个按钮分别分成三组,第一组:“增加关数”、“减小关数”、“生成迷宫”;第二组:“方向提示”;第三组:“自动行走”、“行走停止”。其中第一组中,一定先设定好关数,才“生成迷宫”。 2、进入游戏 程序通过按键“”、“ ”、“ ”、“ ”来移动小机械猫,当发生迷路时,可通过“方向提示”按钮进行提示,其中图中红色箭头的指向为通往终点的路径方向。此外还可以通过“自动行走”按钮使小机械猫自动走出迷宫。如果需要还可以“生成迷宫”按钮生成同样级别的迷宫,使同样级别的迷宫多样化。(见图(2))”显示方向”按钮的使用,使用该按钮不能达到按一下按钮就马上在界面上显示出方向的要求,而需要多按几下方能显示出来.此问题至今尚未解决.此外,在设计上,当玩家完成游戏时,程序没有询问玩家就直接进入下一轮游戏,这使程序未能做到人性化。此为程序的不足之处. (7)合作课程设计的成员分工情况 本课程设计由本人自主完成. (8) 参考文献 1、Java程序设计教程(第五版)/(美)刘易斯(Lewis,J.)/2002年4月1日印刷 4、Java案例开发/张靓等编著。-北京:中国水利水电出版社/2005年1月 5、Java案例开发集锦/袁然,郑自国,邹丰义编著。-北京:电子工业出版社,2005.9 6、Java 2教程(第五版)/(美)林登(Linden,P.V.D) 6 interface KeyListener JApplet Mi # 加,减,产生迷宫,提示,演示,停止 :Button # 标记 :char[][] # 监听器 :按钮监听器 # timer :Timer # grass、people、grassUP、grassRight :Image # grassFloor、offScreen :Image # label :Label; # panel :Panel # mark :int[][] + init() :void + paint(g :Graphics) :void 生成迷宫() :void genmaze(i :int ,j :int) :void + 画出迷宫(page :Graphics) :void + keyTyped(e :KeyEvent) :void + keyReleased(e :KeyEvent) :void + keyPressed (e : KeyEvent) :void + update(g :Graphics) :void 向右() :boolean 向上() :boolean 向左() :boolean 向下() :boolean 画出人(page

文档评论(0)

suijiazhuang2 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档