Java面向对象推箱子源代码(可扩展)_第1页
Java面向对象推箱子源代码(可扩展)_第2页
Java面向对象推箱子源代码(可扩展)_第3页
Java面向对象推箱子源代码(可扩展)_第4页
Java面向对象推箱子源代码(可扩展)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

......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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论