




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java面向对象实现推箱子的源代码Java面向对象实现推箱子的源代码目录一、首先:1二、以下为工程中各个类的源代码:11、Box12、GameMainTest33、Man44、Map65、MovingException76、Out88一、 首先:在eclipse中新建一个工程,包名和类名(工程结构)如下:二、 以下为工程中各个类的源代码:源代码按对应的类名复制粘贴进去即可。1、 Boxpackage tuixiangzi;import java.util.Random;public class Box private static Random ran = new Random();private static int x = ran.nextInt(10); /箱子所在的位置(随机)private static int y = ran.nextInt(10); /箱子所在的位置(随机)private int map = Map.getArray();private int h = map.length - 1;private int l = maph.length - 1;/* * 箱子左移 */public void boxLMove()throws MovingExceptionif(y-1 l) throw new MovingException(You Cant Moving Right!);if(Man.getX() = x & Man.getY() = y) y=(y+1);/* * 箱子上移 */public void boxUMove()throws MovingExceptionif(x-1 h) throw new MovingException(You Cant Moving Down!);if(Man.getX() = x & Man.getY() = y) x=(x+1);/* * 判断箱子是否能移动(死亡)或者是否通关 * return */public String judgOver() String msg = null;if(x = Out.getX() & y = Out.getY() msg = You Win!;return msg;if(x = 0 & y = 0 | x = h & y = l | x = 0 & y = l | x = h & y = 0) msg = Game Over!;return msg;else msg = ;return msg;public static int getX() return x;public static void setX(int x) Box.x = x;public static int getY() return y;public static void setY(int y) Box.y = y;2、 GameMainTestpackage tuixiangzi;import java.util.Scanner;public class GameMainTest private static Scanner sc;public static void main(String args)Map map = new Map();Man man = new Man();Box box = new Box();sc = new Scanner(System.in);map.printMap();/游戏开始,打印地图System.out.println(推箱子游戏开始!);do System.out.println(w: s: a: d: 回车确认移动);String key = sc.next();switch (key)case a: /左移try man.leftMove(key);box.boxLMove(); catch (MovingException e) System.out.println(走不下去啦!);map.cleanManAfter(Man.getX(), Man.getY()+1);break;case d: /右移try man.rightMove(key);box.boxRMove(); catch (MovingException e) System.out.println(走不下去啦!);map.cleanManAfter(Man.getX(), Man.getY()-1);break;case s: /下移try man.downMove(key);box.boxDMove(); catch (MovingException e) System.out.println(走不下去啦!);map.cleanManAfter(Man.getX()-1, Man.getY();break;case w: /上移try man.upMove(key);box.boxUMove(); catch (MovingException e) System.out.println(走不下去啦!);map.cleanManAfter(Man.getX()+1, Man.getY();break;System.out.println(nnnn);System.out.println(box.judgOver();map.printMap();while(true);3、 Manpackage tuixiangzi;public class Man private static int x = 0;/人所在的行位置private static int y = 0;/人所在的列位置private int map = Map.getArray();private int h = map.length-1;private int l = maph.length-1;/* * 向左移动 * param key移动按键 * throws MovingException无法移动异常 */public void leftMove(String key)throws MovingExceptionif(y-1 l) throw new MovingException(You Cant Moving Right!);if(key.equals(d) y=(y+1);/* * 向上移动 * param key移动按键 * throws MovingException无法移动异常 */public void upMove(String key)throws MovingExceptionif(x-1 h) throw new MovingException(You Cant Moving Down!);if(key.equals(s) x=(x+1);public static int getX() return x;public static void setX(int x) Man.x = x;public static int getY() return y;public static void setY(int y) Man.y = y;4、 Mappackage tuixiangzi;public class Map private static int array = new int1010;/* * 打印地图布局 */public void printMap() arrayMan.getX()Man.getY() = 1; /初始化人arrayBox.getX()Box.getY() = 3; /初始化箱子arrayOut.getX()Out.getY() = 2; /初始化出口for(int i = 0; i array.length; i+) for(int j = 0; j arrayi.length;j+) if(arrayij = arrayMan.getX()Man.getY() System.out.print( ); else if(arrayij = 0) System.out.print( ); else if(arrayij = arrayBox.getX()Box.getY() System.out.print( ); else if(arrayij = arrayOut.getX()Out.getY() System.out.print( );System.out.println();/* * 清除人和箱子移动后上一步的位置 * param x * param y * return */public int cleanManAfter(int x,int y) return arrayxy=0;public static int getArray() return array;public static void setArray(int array) Map.array = array;5、 MovingExceptionpackage tuixiangzi;public class MovingException extends Exceptionprivate static final long serialVersionUID = 1L;public MovingException() super(); public MovingException(String message) super(message); public MovingException(String message, Throwable cause) super(message, cause); public MovingException(Throwable cause) super(cause); 6、 Outpackage tuixiangzi;public class Out /后期可扩展为出口出现的位置随机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论