版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市政给排水管道闭水试验专项方案
- 模块化装配式消防稳压箱泵一体化技术方案
- 大型工程机械物联网平台建设方案
- 储能电池托盘全生命周期管理方案
- 2026广东华南师范大学教育集团招聘非事业编制人员2人笔试题库附参考答案详解(典型题)
- 2026中共防城港市委员会党校招聘编外聘用人员1人备考题库附完整答案详解(名校卷)
- 2026水电水利规划设计总院招聘1人考前冲刺试卷及答案详解【考点梳理】
- 2026浙江宁波潜江瀚达热电有限公司招聘10人笔试题库附参考答案详解【B卷】
- 2026年德州市德城区教育系统引进专业人才(20人)备考题库及完整答案详解(夺冠)
- 2026云南永德县农业农村局招聘特聘动物防疫专员3人笔试题库(培优)附答案详解
- 福建福州市鼓楼城投招聘笔试题库2026
- 2026年厂区消防应急器材使用试题库及答案
- 26年三升四语文阅读理解暑假每日一练(参考答案)
- 2026年楚雄州州级机关统一遴选公务员笔试真题及答案解析
- 2026年驾驶理论测试题及答案
- 微众银行:AI金融创新
- 《行为安全观察手册》
- 2026年核能质保监查员考试题及答案
- 对外投资合作国别(地区)指南-蒙古国(2025年版)
- 检验员工作责任制度
- 医患沟通礼仪课件
评论
0/150
提交评论