版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、import.*;import.*;importclassMazeWindowextendsJFrameimplementsActionListenerMazemaze;JMenuBarbar;xt");Filefile=null;staticStringmazeName;staticStringcurrentMap;Hashtablehashtable=null;file=(newFilenameFilter()publicbooleanaccept(Filedir,Stringname)return("maze"););mazeName=newString;f
2、or(inti=0;i<i+)mazeNamei=filei.getName().substring(0,filei.getName().length()-5);etName();currentMap=mazeName0;init();menuImage=newJMenu("选择墙和路的图像");送推薄并 出H迷直 曲水遽邕 沟迷汽 退穹触叫遑春避IT胎相招犷憎才独修图3-5wallImage=newJMenuItem("墙的图像");if");xists()xt");();JFramet=newJFrame("提示!
3、");(newFont("楷体",30);(300,215);(null);JPanelpan=newJPanel();(pan);BorderLayoutbLayout=newBorderLayout(20,20);(bLayout);JLabelleb=newJLabel("英雄榜已清空,请重新载入游戏。");(leb,;(true);elseJMenuItemitem=(JMenuItem)();mazeFile=newFile()+”.maze");currentMap=();().setMap(currentMap);ini
4、t();publicstaticvoidmain(Stringargs)newMazeWindow();import.*;import.*;publicclassMazeextendsJLayeredPaneFilemazeFile;MazePointmazePoint;WallOrRoadwallOrRoad;PersonInMazeperson;HandleMovehandleMove;FilewallImage,roadImage;intdistance=45,m=0,n=0;publicMaze()setLayout(null);wallImage=newFile("&quo
5、t;);roadImage=newFile("");person=newPersonInMaze();handleMove=newHandleMove();();(handleMove);setLayer(person,;publicvoidsetMazeFile(Filef)mazeFile=f;chara;RandomAccessFilein=null;StringlineWord=null;tryin=newRandomAccessFile(mazeFile,"r");rim();if()>=n)n=();position=();m+;a=n
6、ewcharmn;position=0;(position);m=0;while(position<length)Stringstr=();am=();position=();m+;();wallOrRoad=newWallOrRoadmn;for(inti=0;i<m;i+)for(intj=0;j<n;j+)wallOrRoadij=newWallOrRoad();if(aij='1')wallOrRoadij.setIsWall(true);wallOrRoadij.setWallImage(wallImage);wallOrRoadij.repaint
7、();elseif(aij='0')wallOrRoadij.setIsRoad(true);wallOrRoadij.setRoadImage(roadImage);wallOrRoadij.repaint();elseif(aij='*')wallOrRoadij.setIsEnter(true);wallOrRoadij.setIsRoad(true);wallOrRoadij.repaint();elseif(aij='#')wallOrRoadij.setIsOut(true);wallOrRoadij.setIsRoad(true);
8、wallOrRoadij.repaint();mazePoint=newMazePointmn;intHspace=distance,Vspace=distance;for(inti=0;i<m;i+)for(intj=0;j<n;j+)mazePointij=newMazePoint(Hspace,Vspace);Hspace=Hspace+distance;Hspace=distance;Vspace=Vspace+distance;for(inti=0;i<m;i+)for(intj=0;j<n;j+)add(wallOrRoadij);wallOrRoadij.
9、setSize(distance,distance);wallOrRoadij.setLocation(mazePointij.getX(),mazePointij.getY();wallOrRoadij.setAtMazePoint(mazePointij);mazePointij.setWallOrRoad(wallOrRoadij);mazePointij.setIsWallOrRoad(true);if(wallOrRoadij.getIsEnter()(mazePointij);add(person);(distance,distance);(mazePointij.getX(),m
10、azePointij.getY();();();(mazePoint);catch(IOExceptionexp)JButtonmess=newJButton("无效的迷宫文件");add(mess);(30,30,100,100);(newFont("宋体",30);"mess");publicvoidsetWallImage(Filef)wallImage=f;for(inti=0;i<m;i+)for(intj=0;j<n;j+)if(wallOrRoadij.getIsWall()wallOrRoadij.setW
11、allImage(wallImage);wallOrRoadij.repaint();publicvoidsetRoadImage(Filef)roadImage=f;for(inti=0;i<m;i+)for(intj=0;j<n;j+)if(wallOrRoadij.getIsRoad()wallOrRoadij.setRoadImage(roadImage);wallOrRoadij.repaint();publicHandleMovegetHandleMove()returnhandleMove;import.*;import.*;publicclassWallOrRoad
12、extendsJPanelbooleanisRoad,isWall,isEnter,isOut,havePassed;MazePointpoint;FilewallImage,roadImage,personImage;Toolkittool;WallOrRoad()tool=getToolkit();publicvoidsetIsEnter(booleanboo)isEnter=boo;if(isEnter=true)add(newJLabel("入口");idth;inth=getBounds().height;tryif(isRoad=true)Imageimage=
13、().toURL();(image,0,0,w,h,this);elseif(isWall=true)Imageimage=().toURL();(image,0,0,w,h,this);catch(Exceptionexp);import.*;import.*;publicclassPersonInMazeextendsJTextFieldMazePointpoint;Toolkittool;Stringperson=""PersonInMaze()tool=getToolkit();idth;inth=getBounds().height;Imageimage=(per
14、son);import.*;publicclassHandleMoveextendsJPanelimplementsKeyListener,ActionListenerMazePoint叩p;intspendTime=0;recordTime;JTextFieldshowTime;Toolkittool;Stringmaze=;ength;j+)if(pij)m=i;n=j;break;if(spendTime>10)("");if()=intk=(m-1,0);if(pkn.getWallOrRoad().getIsRoad()etX(),pkn.getY();el
15、seif()=intk=(m+1,;if(pkn.getWallOrRoad().getIsRoad()if()=true)();("");(pkn);(pkn.getX(),pkn.getY();elseif()=intk=(n-1,0);if(pmk.getWallOrRoad().getIsRoad()if()=true)();("");(pmk);(pmk.getX(),pmk.getY();elseif()=intk=(n+1,p0.length-1);if(pmk.getWallOrRoad().getIsRoad()if()=true)()
16、;("");(pmk);(pmk.getX(),pmk.getY();publicvoidactionPerformed(ActionEvente)spendTime+;("您的用时:"+spendTime+"秒)publicvoidkeyReleased(KeyEvente)PersonInMazeperson=(PersonInMaze)();intm=-1,n=-1;MazePointendPoint=();if().getIsOut()();if(spendTime>10)(this,"恭喜您闯关成功,亲!但用时超过10
17、秒钟,速度慢了些哦!用时:"+spendTime+"秒","消息框",;else(this,"恭喜您闯关成功,亲!用时:"+spendTime+"秒","消息框Recordrecord=newRecord();if(maze,spendTime)=true);import.*;import.*;import.*;publicclassRecordextendsJDialogimplementsActionListenerinttime=0;Stringmaze;Stringmessage=&qu
18、ot;"JTextFieldtextName;JLabellabel=null;JButton确定,取消;publicRecord()setTitle("记录你的成绩");setBounds(200,200,320,300);setResizable(false);setModal(true);确定=newJButton("确定");取消=newJButton("取消");textName=newJTextField(8);("匿名");确定.addActionListener(this);取消.addA
19、ctionListener(this);setLayout(newGridLayout(2,1);label=newJLabel("您现在是高手,输入您的大名上榜啊");add(label);JPanelp=newJPanel();(textName);(确定);(取消);add(p);setDefaultCloseOperation;publicvoidsetMaze(Stringmaze)=maze;("恭喜!你破纪录了!请输入您的名字");publicvoidsetTime(inttime)=time;publicvoidactionPerform
20、ed(ActionEvente)if()=确定)message=maze+"#"+time+"#"+""+();writeRecord(maze,message);setVisible(false);if()=取消)setVisible(false);publicbooleanisBrokenRecord(Stringkey,inttime)xt");tryintn=0;Hashtablehashtable=null;xt");tryintn1=0,n2=0,n3=0;Stringa;Hashtablehashta
21、ble=null;FileInputStreamin=newFileInputStream;ObjectInputStreamobject_in=newObjectlnputStream(in);hashtable=(Hashtable)();();();Stringtemp1=(String)(key+"1");Stringtemp2=(String)(key+"2");Stringtemp3=(String)(key+"3");StringTokenizerfenxi1=newStringTokenizer(temp1,"
22、;#");StringTokenizerfenxi2=newStringTokenizer(temp2,"#");StringTokenizerfenxi3=newStringTokenizer(temp3,"#");"StringTokenizer类publicStringTokenizer(Stringstr,Stringdelim)为指定字符串构造一个stringtokenizer。delim参数中的字符都是分隔标记的分隔符。分隔符字符本身不作为标记。注意,如果delim为null,则此构造方法不抛出异常。但是,尝试对得到的StringTokenizer调用其他方法则可能抛出NullPointerException。参数:str-要分析的字符串。delim-分隔
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年土地承包经营权流转土地经营权流转项目评估合同范本3篇
- 2024年度企业实习生综合能力培养劳动合同2篇
- 2024年度民间借款合同示范文本(含借款人信用评估)3篇
- 2024年林权分享采伐协议
- 洛阳师范学院《急危重症护理学(含灾害护理学)》2023-2024学年第一学期期末试卷
- 科技园区秩序维护合同模板
- 2025产品授权销售总代理合同书
- 古建筑修复工程分包合同施工合同
- 商务大厦彩钢瓦屋面改造合同
- 市区环境监测数据统计分析方法
- (完整版)外研版高中英语必修三单词表(带音标)
- MOOC 国际商务-暨南大学 中国大学慕课答案
- 特征值与特征向量
- 作家协会2024年下半年工作计划3篇
- 2024征信考试题库(含答案)
- 个人理财(西安欧亚学院)智慧树知到期末考试答案2024年
- pc(装配式)结构施工监理实施细则
- 医院内审制度
- 押运人员安全培训课件
- 给小学生科普人工智能
- 2024年南京信息职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
评论
0/150
提交评论