欢迎来到天天文库
浏览记录
ID:15122908
大小:138.50 KB
页数:14页
时间:2018-08-01
《迷宫游戏实习报告(java)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2009-2010-2课程实验报告高级程序设计(JAVA)专业班级姓名学号高级程序设计(JAVA)实验报告实验名称:迷宫实验1实验要求I.用面向对象的思想编写扩展的“猜数字”游戏。II.走迷宫游戏:i设置一个迷宫(如:大小10×10、16×16等)ii迷宫固定一个入口,一个出口iii设计算法来找出走出迷宫的路线iv如果迷宫是死胡同,则提示并结束游戏2设计及实现2.1设计思路类图:PlaceIntplace[][];Intn;Place()makeplace()printplace()FindWaysitesite;Pointp
2、oint;booleanvisted[][];Placepl=newPlace();FindWay()findTheWay(int[][]maze)Pointgoup()godown()goright()goleft()siteIntsitex;Intsitey;程序流程图:高级程序设计(JAVA)实验报告StartOutput“设置迷宫大小”InputthestyleofmazeMakethemapOutput“输入整数2显示迷宫答案;输入整数3结束游戏请选择操作序号:”Inputthenumber2or3Ifinput3i
3、finput2FindwayHaveway?Output“用户终止了程序”YESNOoutputthewayofthemazeOutput“没有出路”End高级程序设计(JAVA)实验报告2.2核心算法//向上走sitegoup(sites){s.sitex=s.sitex;s.sitey=s.sitey-1;returns;}//向下走sitegodown(sites){s.sitex=s.sitex;s.sitey=s.sitey+1;returns;}//向右走sitegoright(sites){s.sitex=s.s
4、itex+1;s.sitey=s.sitey;returns;}//向左走sitegoleft(sites){s.sitex=s.sitex-1;s.sitey=s.sitey;returns;}//寻找迷宫路径booleanfindTheWay(int[][]maze){StackseekStack=newStack();//路径储存堆栈while(site.sitey!=pl.n-1
5、
6、site.sitex!=pl.n-2&&0<=site.sitey&&site.sitey7、te.sitex8、site.sitex]=2;//用→表示该位置向右可通site=point.goright(site);//移动到右侧下一位置continue;}elseif(maze[site.sitey+1][site.sitex]==0&&visted[site.sitey+1][site.sitex]==false)//该位置往下可通且未被访问{maze[site.sitey][site.sitex]=3;//用↓表示该位置向下可通site=point.godown(site);//向下移动一位置continue;}elseif(ma9、ze[site.sitey][site.sitex-1]==0&&visted[site.sitey][site.sitex-1]==false)//该位置往左可通且未被访问{maze[site.sitey][site.sitex]=4;//用←表示该位置向左可通site=point.goleft(site);//向左移动一个位置continue;}elseif(site.sitey!=0&&maze[site.sitey-1][site.sitex]==0&&visted[site.sitey-1][site.sitex]=10、=false)//该位置往上可通且未被访问{maze[site.sitey][site.sitex]=5;//用↑表示该位置向上可通site=point.goup(site);//向上移动一个位置高级程序设计(JAVA)实验报告continue;}else//该位置不同{si
7、te.sitex8、site.sitex]=2;//用→表示该位置向右可通site=point.goright(site);//移动到右侧下一位置continue;}elseif(maze[site.sitey+1][site.sitex]==0&&visted[site.sitey+1][site.sitex]==false)//该位置往下可通且未被访问{maze[site.sitey][site.sitex]=3;//用↓表示该位置向下可通site=point.godown(site);//向下移动一位置continue;}elseif(ma9、ze[site.sitey][site.sitex-1]==0&&visted[site.sitey][site.sitex-1]==false)//该位置往左可通且未被访问{maze[site.sitey][site.sitex]=4;//用←表示该位置向左可通site=point.goleft(site);//向左移动一个位置continue;}elseif(site.sitey!=0&&maze[site.sitey-1][site.sitex]==0&&visted[site.sitey-1][site.sitex]=10、=false)//该位置往上可通且未被访问{maze[site.sitey][site.sitex]=5;//用↑表示该位置向上可通site=point.goup(site);//向上移动一个位置高级程序设计(JAVA)实验报告continue;}else//该位置不同{si
8、site.sitex]=2;//用→表示该位置向右可通site=point.goright(site);//移动到右侧下一位置continue;}elseif(maze[site.sitey+1][site.sitex]==0&&visted[site.sitey+1][site.sitex]==false)//该位置往下可通且未被访问{maze[site.sitey][site.sitex]=3;//用↓表示该位置向下可通site=point.godown(site);//向下移动一位置continue;}elseif(ma
9、ze[site.sitey][site.sitex-1]==0&&visted[site.sitey][site.sitex-1]==false)//该位置往左可通且未被访问{maze[site.sitey][site.sitex]=4;//用←表示该位置向左可通site=point.goleft(site);//向左移动一个位置continue;}elseif(site.sitey!=0&&maze[site.sitey-1][site.sitex]==0&&visted[site.sitey-1][site.sitex]=
10、=false)//该位置往上可通且未被访问{maze[site.sitey][site.sitex]=5;//用↑表示该位置向上可通site=point.goup(site);//向上移动一个位置高级程序设计(JAVA)实验报告continue;}else//该位置不同{si
此文档下载收益归作者所有