




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、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();priva
2、te 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 < 0) throw new MovingException("Yo
3、u Can't Moving Left!");if(Man.getX() = x && Man.getY() = y) y=(y-1);/* * 箱子右移 */public void boxRMove()throws MovingExceptionif(y+1 > l) throw new MovingException("You Can't Moving Right!");if(Man.getX() = x && Man.getY() = y) y=(y+1);/* * 箱子上移 */public void
4、boxUMove()throws MovingExceptionif(x-1 < 0) throw new MovingException("You Can't Moving Up!");if(Man.getX() = x && Man.getY() = y) x=(x-1);/* * 箱子下移 */public void boxDMove()throws MovingExceptionif(x+1 > h) throw new MovingException("You Can't Moving Down!")
5、;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 &a
6、mp;& 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;p
7、ublic 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: 回车确认移动");Strin
8、g 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
9、.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)
10、;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;/人所在
11、的行位置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 < 0) throw new MovingException("You Can'
12、;t Moving Left!");if(key.equals("a") y=(y-1);/* * 向右移动 * param key移动按键 * throws MovingException无法移动异常 */public void rightMove(String key)throws MovingExceptionif(y+1 > l) throw new MovingException("You Can't Moving Right!");if(key.equals("d") y=(y+1);/* * 向上
13、移动 * param key移动按键 * throws MovingException无法移动异常 */public void upMove(String key)throws MovingExceptionif(x-1 < 0) throw new MovingException("You Can't Moving Up!");if(key.equals("w") x=(x-1);/* * 向下移动 * param key移动按键 * throws MovingException无法移动异常 */public void downMove(
14、String key)throws MovingExceptionif(x+1 > h) throw new MovingException("You Can't 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
15、;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.le
16、ngth;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.p
17、rintln();/* * 清除人和箱子移动后上一步的位置 * 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(caus
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考古诗赏析要点:主题分类
- DB41∕T 1854-2019 一化性柞蚕种繁育技术规程
- “安全、健康、文明的绿色网络”主题班会教学设计
- 《导体和绝缘体》(教学设计)2023-2024学年教科版(2017)科学四年级下册
- 2025混凝土路面施工合同
- 2025年红薯种植收购合同模板
- 2025民间借款合同范本
- 2025年华安镇环卫服务合同
- 《菜园养护》(教案)-2024-2025学年湘教版劳动三年级上册
- 《高效能投资策略》课件
- 《婴儿营养配方课件:如何选择合适的奶粉》
- 事故隐患内部报告奖励制度
- 2025年广东韶关南雄市卫生健康局下属事业单位招聘工作人员67人历年高频重点提升(共500题)附带答案详解
- 抚养费纠纷答辩状范文
- 《专业技术人才管理》课件
- 大班韵律《朱迪警官破案记》
- 《永辉超市S店库存管理问题及产生原因和优化建议》8700字(论文)
- 《光储充一体化电站技术规范》标准编制说明+征求意见稿
- 【MOOC】中国传统艺术-篆刻、书法、水墨画体验与欣赏-哈尔滨工业大学 中国大学慕课MOOC答案
- 菜鸟驿站转让合同协议书范本
- 多物理场模拟仿真
评论
0/150
提交评论