版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
......Java面向对象实现推箱子的源代码目录一、首先:1二、以下为工程中各个类的源代码:11、Box12、GameMainTest33、Man44、Map65、MovingException76、Out8..首先:在eclipse中新建一个工程,包名和类名〔工程结构如下:以下为工程中各个类的源代码:源代码按对应的类名复制粘贴进去即可。Boxpackagetuixiangzi;importjava.util.Random;publicclassBox{privatestaticRandomran=newRandom<>;privatestaticintx=ran.nextInt<10>;//箱子所在的位置<随机>privatestaticinty=ran.nextInt<10>;//箱子所在的位置<随机>privateint[][]map=Map.getArray<>;privateinth=map.length-1;privateintl=map[h].length-1;/** *箱子左移 */publicvoidboxLMove<>throwsMovingException{if<y-1<0>{thrownewMovingException<"YouCan'tMovingLeft!">; }if<Man.getX<>==x&&Man.getY<>==y>{y=<y-1>; } }/** *箱子右移 */publicvoidboxRMove<>throwsMovingException{if<y+1>l>{thrownewMovingException<"YouCan'tMovingRight!">; }if<Man.getX<>==x&&Man.getY<>==y>{y=<y+1>; } }/** *箱子上移 */publicvoidboxUMove<>throwsMovingException{if<x-1<0>{thrownewMovingException<"YouCan'tMovingUp!">; }if<Man.getX<>==x&&Man.getY<>==y>{x=<x-1>; } }/** *箱子下移 */publicvoidboxDMove<>throwsMovingException{if<x+1>h>{thrownewMovingException<"YouCan'tMovingDown!">; }if<Man.getX<>==x&&Man.getY<>==y>{x=<x+1>; } }/** *判断箱子是否能移动<死亡>或者是否通关 *return */publicStringjudgOver<>{ Stringmsg=null;if<x==Out.getX<>&&y==Out.getY<>>{msg="YouWin!";returnmsg; }if<x==0&&y==0||x==h&&y==l||x==0&&y==l||x==h&&y==0>{msg="GameOver!";returnmsg; }else{msg="";returnmsg; } }publicstaticintgetX<>{returnx; }publicstaticvoidsetX<intx>{ Box.x=x; }publicstaticintgetY<>{returny; }publicstaticvoidsetY<inty>{ Box.y=y; }}GameMainTestpackagetuixiangzi;importjava.util.Scanner;publicclassGameMainTest{privatestaticScannersc;publicstaticvoidmain<String[]args>{ Mapmap=newMap<>; Manman=newMan<>; Boxbox=newBox<>;sc=newScanner<System.in>;map.printMap<>; //游戏开始,打印地图 System.out.println<"推箱子游戏开始!">;do{ System.out.println<"w:↑s:↓a:←d:→回车确认移动">; Stringkey=sc.next<>;switch<key>{case"a"://左移try{man.leftMove<key>;box.boxLMove<>; }catch<MovingExceptione>{ System.out.println<"走不下去啦!">; }map.cleanManAfter<Man.getX<>,Man.getY<>+1>;break;case"d"://右移try{man.rightMove<key>;box.boxRMove<>; }catch<MovingExceptione>{ System.out.println<"走不下去啦!">; }map.cleanManAfter<Man.getX<>,Man.getY<>-1>;break;case"s"://下移try{man.downMove<key>;box.boxDMove<>; }catch<MovingExceptione>{ System.out.println<"走不下去啦!">; }map.cleanManAfter<Man.getX<>-1,Man.getY<>>;break;case"w"://上移try{man.upMove<key>;box.boxUMove<>; }catch<MovingExceptione>{ System.out.println<"走不下去啦!">; }map.cleanManAfter<Man.getX<>+1,Man.getY<>>;break; } System.out.println<"\n\n\n\n">; System.out.println<box.judgOver<>>;map.printMap<>; }while<true>; }}Manpackagetuixiangzi;publicclassMan{privatestaticintx=0; //人所在的行位置privatestaticinty=0; //人所在的列位置privateint[][]map=Map.getArray<>;privateinth=map.length-1;privateintl=map[h].length-1;/** *向左移动 *paramkey 移动按键 *throwsMovingException 无法移动异常 */publicvoidleftMove<Stringkey>throwsMovingException{if<y-1<0>{thrownewMovingException<"YouCan'tMovingLeft!">; }if<key.equals<"a">>{y=<y-1>; } }/** *向右移动 *paramkey 移动按键 *throwsMovingException 无法移动异常 */publicvoidrightMove<Stringkey>throwsMovingException{if<y+1>l>{thrownewMovingException<"YouCan'tMovingRight!">; }if<key.equals<"d">>{y=<y+1>; } }/** *向上移动 *paramkey 移动按键 *throwsMovingException 无法移动异常 */publicvoidupMove<Stringkey>throwsMovingException{if<x-1<0>{thrownewMovingException<"YouCan'tMovingUp!">; }if<key.equals<"w">>{x=<x-1>; } }/** *向下移动 *paramkey 移动按键 *throwsMovingException 无法移动异常 */publicvoiddownMove<Stringkey>throwsMovingException{if<x+1>h>{thrownewMovingException<"YouCan'tMovingDown!">; }if<key.equals<"s">>{x=<x+1>; } } publicstaticintgetX<>{returnx; }publicstaticvoidsetX<intx>{Man.x=x; }publicstaticintgetY<>{returny; }publicstaticvoidsetY<inty>{Man.y=y; }}Mappackagetuixiangzi;publicclassMap{privatestaticintarray[][]=newint[10][10];/** *打印地图布局 */publicvoidprintMap<>{array[Man.getX<>][Man.getY<>]=1;//初始化人array[Box.getX<>][Box.getY<>]=3;//初始化箱子array[Out.getX<>][Out.getY<>]=2;//初始化出口for<inti=0;i<array.length;i++>{for<intj=0;j<array[i].length;j++>{if<array[i][j]==array[Man.getX<>][Man.getY<>]>{ System.out.print<"♀">; }elseif<array[i][j]==0>{ System.out.print<"□">; }elseif<array[i][j]==array[Box.getX<>][Box.getY<>]>{ System.out.print<"■">; }elseif<array[i][j]==array[Out.getX<>][Out.getY<>]>{ System.out.print<"→">; } } System.out.println<>; } }/** *清除人和箱子移动后上一步的位置 *paramx *paramy *return */publicintcleanManAfter<intx,inty>{returnarray[x][y]=0; }publicstaticint[][]getArray<>{returnarray; }publicstaticvoidsetArray<int[][]array>{ Map.array=array; }}MovingExceptionpackagetuixiangzi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 主要供应商(主要原材料供应)名录
- 2025 小学阅读理解之社会现象的文本映射课件
- 2026年政法系统公务员考试模拟试题详解
- 2026年消费者权益保护法实施条例知识测试题
- 军工央企2026招聘面试沟通技巧总结
- 2026年社区矫正协理员面试题库
- 2026年公安机关刑事科学技术题库
- 2026年医疗设备维修面试题集
- 2026年题型分析与解题技巧集
- 税务筹划的法规依据与责任界定
- 消防安全重点单位消防档案
- 产权交易平台设计与运行管理方案
- T-ZZB 3577-2023 电磁锁标准规范
- 五类人员笔试真题及答案
- 产品设计文档撰写规范案例示范版
- 数字孪生应用技术员国家职业标准(2024版)
- 2025年设备监理师职业资格考试(设备工程项目管理)历年参考题库含答案详解(5套)
- 2025年四川大学教育培训部业务岗工作人员招聘考前自测高频考点模拟试题附答案详解
- gmp规范培训课件
- 腰椎术后伤口感染管理要点
- 璀璨冒险人二部合唱简谱天使
评论
0/150
提交评论