当前位置:文档之家› 迷宫游戏实习报告(JAVA)

迷宫游戏实习报告(JAVA)


高级程序设计(JAVA)实验报告
பைடு நூலகம்
} void makeplace() { for(int i=1;i<n-1;i++) for(int j=1;j<n-1;j++) { int iRan = ((int) (Math.random() * 10) + 1) % 3; if (iRan == 0) { place[i][j] = 1; } else } } } void printplace() { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(place[i][j]==1) System.out.print("★"); else if(place[i][j]==0) System.out.print("☆"); else if(place[i][j]==2) System.out.print("→"); else if (place[i][j]==3) System.out.print("↓"); else if (place[i][j]==4) System.out.print("←"); else if (place[i][j]==5) System.out.print("↑"); } { place[i][j] = 0;
高级程序设计(JAVA)实验报告
System.out.println(); } } } class site{ int sitex; int sitey; site() { sitex=1; sitey=0; } } class Point{ site goup(site s) { s.sitex=s.sitex; s.sitey=s.sitey-1; return s; } site godown(site s) { s.sitex=s.sitex; s.sitey=s.sitey+1; return s; } site goright(site s) { s.sitex=s.sitex+1; s.sitey=s.sitey; return s; } site goleft(site s) { s.sitex=s.sitex-1; s.sitey=s.sitey; return s;
Input number
the
If input 3
2 or 3
if input 2
Find way
Have way? Output “用户终止了程序”
YES
NO
End
output the way of the maze
Output “没有 出路”
高级程序设计(JAVA)实验报告
2.2 核心算法
//向上走 site goup(site s) { s.sitex=s.sitex; s.sitey=s.sitey-1; return s; } //向下走 site godown(site s) { s.sitex=s.sitex; s.sitey=s.sitey+1; return s; } //向右走 site goright(site s) { s.sitex=s.sitex+1; s.sitey=s.sitey; return s; } //向左走 site goleft(site s) { s.sitex=s.sitex-1; s.sitey=s.sitey; return s; } //寻找迷宫路径 boolean findTheWay(int[][] maze) { Stack seekStack =new Stack(); &site.sitex<pl.n) //路径储存堆栈 //还没有到达出口时 while(site.sitey!=pl.n-1||site.sitex!=pl.n-2&&0<=site.sitey&&site.sitey<pl.n&&0<=site.sitex&
高级程序设计(JAVA)实验报告
此,我们要把眼光放开,而不是聚焦在某一点。 编程过程中,由于对游戏的理解不深刻,在编程之前不能把所有的类一起抽象出来,根 本就没有思路,本来我想完全通过自己来完成这个作业,弄了很长时间也没弄出来,所以我 又在网上查了一些资料把编迷宫的思路捋清了。抽象出四个类,共有九个方法。在我真正的 编程的过程中遇到了很多困难,其中有语法错误,还有代码错误。这些错误经过我认真地检 查后都一一排除。等我满怀希望的运行我的程序时,最头痛得错误出现了。我是用堆栈储存 路线的(一个结点只能储存一步) ,当路线不通时就要弹出最后一个结点,在这里我用了 pop ()函数和 peek()函数。Pop()函数弹出错误节点,peek()函数找到上一个位置然后继续 走路。栈中的节点弹出来了,可是每次都弹出同一个节点,而且每次获取的也是弹出的节点, 问老师,同学,上网查都没有找到原因。因此花费了很长时间。在软件工程导论中学过要先 确定自己真正要做的是什么,然后去在代码中实现自己要做的事情。通过这次试验让我认识 到个人的力量是有限的,要想做好一个软件我们需要借鉴他人的知识。对于这次迷宫试验, 真正由我自己写的代码只有 20%。不过通过这次的迷宫实验是我对 java 语言有了更深一层次 的了解, 和上学年学习的 c 语言和 c++语言做比较我还是比较喜欢 java 语言, 因为我在编写迷 宫实验的过程中感觉使用 java 语言比使用其他语言更简单一些。
2009-2010-2 课程实验报告
高级程序设计(JAVA)
专业班级




高级程序设计(JAVA)实验报告
实验名称:迷宫实验
1 实验要求
I.用面向对象的思想编写扩展的“猜数字”游戏。 II.走迷宫游戏: i 设置一个迷宫(如:大小 10×10、16×16 等) ii 迷宫固定一个入口,一个出口 iii 设计算法来找出走出迷宫的路线 iv 如果迷宫是死胡同,则提示并结束游戏
附录 1:求迷宫游戏全代码
import java.util.*; class Place{ int place[][]; int n; Place() { Scanner sc; System.out.println("选择迷宫的大小:"); sc=new Scanner(System.in); n=sc.nextInt(); place=new int[n][n]; for(int i=0;i<n;i++) for(int j=0;j<n;j++) { place[i][j]=1; } place[0][1]=0; place[n-1][n-2]=0;
高级程序设计(JAVA)实验报告
continue; } else { site die=new site(); die=(site)seekStack.pop(); maze[die.sitey][die.sitex]=0; if (seekStack.empty()==true) { break; } site=(site) seekStack.peek(); //visted[site.sitey][site.sitex]=false; //maze[site.sitey][site.sitex]=0; System.out.println(site.sitey+" "+site.sitex); } } if (site.sitey==pl.n-1&&site.sitex==pl.n-2) { return true; } else { System.out.println("没有出路,游戏结束!"); return false; } } //将该位置从堆栈中弹出 //该位置不同
site Int sitex; Int sitey;
Point goup() godown() goright() goleft()
程序流程图:
高级程序设计(JAVA)实验报告
Start
Output “ 设置 迷宫大小”
Input the style of maze Make the map
Output “输入整数 2 显示迷宫答案; 输入整数 3 结束游戏 请选择操作序号: ”
高级程序设计(JAVA)实验报告
} } class FindWay{ site site; Point point; boolean visted[][]; Place pl=new Place(); FindWay() { visted=new boolean[pl.n][pl.n]; site=new site(); point=new Point(); for (int i=0;i<pl.n;i++) { for (int j=0;j<pl.n;j++) visted[i][j]=false; } } boolean findTheWay(int[][] maze) { Stack seekStack =new Stack();
3 心得及思考
这次的实验花费了我很多时间,每堂课都进展不大。这样不放手反而没有使自己得到更 快的进步反而是自己落后了。所以当我们遇到困难时不要只是盯着困难不去环视周围,我们 应该通过向各个方向找出路,就像在迷宫中一样,每次的目标是四面八方。如果我们我们只 是盯着阻碍我们的那一点,最后我们只能是被堵死。例如:在 java 学习中,遇到某一个困难 我们要去搜集各方面的资料获得解决这个困难的知识,也可以改变一下算法也是可以的。因
2 设计及实现
2.1 设计思路
类图: Place Int place[][]; Int n; FindWay site site; Point point; boolean visted[][]; Place pl=new Place(); Place() makeplace() printplace() FindWay() findTheWay(int[][] maze)
相关主题