欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    JAVA课程设计魔版游戏功能实现.docx

    • 资源ID:7790942       资源大小:276.18KB        全文页数:44页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JAVA课程设计魔版游戏功能实现.docx

    1、JAVA课程设计魔版游戏功能实现java课程设计实验报告实验名称 魔板游戏 指导教师 XXX 专 业 信 息 与 计 算 科 学 学生成员 XX(20084390116) XX(20084390124) XX(20084390128) 完成日期:2011年6月15日魔板游戏1课程设计的目的Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决

    2、实际问题的能力,开设了Java程序设计课程设计。通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JCreator开发工具的运用,拓宽常用类库的应用。通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。本设计目的是编写一个魔板游戏,要求可以自选图片(还有数字玩法),自选难度级别(初级和高级),系统可根据自选图片及难度级别自动划分图块,在初始化游戏的时候使最右下角一片缺失并打乱剩余魔块原始顺序,要求用鼠标移动魔块使魔块按原始顺序正确排列。该游戏可以在拼图同时显示原始图片,使

    3、用户可参照原始图片进行移动复原。此外还要求有成绩记录功能,在游戏结束时记录该用户姓名、所用时间,并可以查看相应级别的英雄榜,显示成绩排名。并且在移动模块的同时会有简短的音乐播放,不至于太枯燥。2设计方案论证2.1总体设计 该拼图游戏系统共包括10个java源文件。这是个功能比较齐全的魔板游戏,最关键的不用自己手动切割图片,再进行加载。而是应用类方法在内存中进行图片切割和加载,方便了用户的使用。程序最后以test格式的文件来保存游戏记录。该魔板游戏结合了许多元素,可以图片切割,游戏拼图,游戏成功时,还有游戏时间的记录,并以test文档形式进行保存。在拼图时首先把图片进行切割,显示在拼图按钮上。拼

    4、图结束时可以显示游戏成绩和记录的存档。难度级别选择背景图片选择数字或图像玩法选择查看英雄榜移动有音乐播放成绩名字记 录魔板游戏(1)功能模块图如图1:图1 系统功能(2)类间关系如图2:图2 类间关系(3)java源文件其功能如表1:表1 文件功能序号文件名主要功能1PuzzleGame.java创建魔板游戏的主窗口,含有main方法,程序从该类开始执行2Pazzlepad.java代表“魔板”,是 PuzzleGame类最重要的成员变量3block.java用来表示“魔板”中的“方块”,是JtextField的一个子类。4point.java负责创建位置的对象,可以确定“方块”和“魔板”的位

    5、置5Handleimage.java负责将一个图像分成若干个小图像6HandleMove.java负责处理鼠标事件7VerifySuccess.java负责验证用户是否按要求成功排列模板中的方块。8Record.java负责保存用户的名字和成绩到相应级别文件中。9People.java封装用户的名字和成绩,以便 ShowRecordDialog对象可以按成绩的高低排序用户。10ShowRecordDialog.java当用户单击查看排行榜时。负责显现用户的成绩。2.2详细设计2.2.1主类PuzzleGame成员变量见表2:表2 类PuzzleGame的成员变量名称成员变量描述名称成员变量描述

    6、puzzlepad用来刻画魔板newImage选择一幅新图像 bar用来添加菜单DefaultImage使用默认图像gradeMenu选择级别digitPlay数字玩法choiceImage选择图像imagePlay图像玩法OneGrade、初级startButton开始 twoGrade高级imageImage声明的对象tool负责创建image对象(2)方法见表3;表3 类PuzzleGmae的方法方法名功能PuzzleGame()负责完成窗口的初始化操作actionPerformed(Actionevent)PuzzleGame类实现ActionListener接口中的方法main()程

    7、序运行的入口方法(3)源代码见文件PuzzleGame.java2.2.2Pazzlepad类成员变量见表4:表4 类Puzzlepad的成员变量名称成员变量描述名称成员变量描述pointPoint类型的二维数组,确定模版中方块的位置HandleMove负责处理block对象上的鼠标事件 blockBlock类型的二维数组,表示魔板中的方块HandleImage负责将一幅图像分成若干幅小图像distance(int型)Point对象根据distance的值进行初始化,以确定point对象之间的距离VerifySuccess验证用户是否按要求成功排列了方块grade其值代表魔板的级别,默认值为1

    8、imageImage声明的图像对象m、n它们的值分别为二维数组point和block的行数和列数,默认值都为3ToolToolkit对象,创建image声明的图像对象:image(2)方法见表5;表5 类Puzzlepad的方法方法名功能Puzzlepad()负责创建Puzzlepad对象getHandleMove()返回其中的HandleMove对象setImage(Image)设置Image对象setGrade(int)设置模仿的级别getGrade()返回gradeneedInit()完成Block和Point对象的创建,以及完成对其他对象的初始化setIsDigitplay()将魔板设

    9、置为数字玩法setIsImageplay()将魔板设置为图像玩法paintComponent()将魔板使用的图像绘制在魔板的右侧。(3)源代码见文件Puzzlepad.java2.2.3Block类成员变量见表6:表6 类Block的成员变量名称成员变量描述point确定Block对象在Puzzlepad所创建的魔板容器中的位置object确定Block对象上所显示数字或图像(2)方法见表7;表7 类Block的方法方法名功能setAtPoint(Point)设置自己所在的“点“,即设置point对象的引用getAtPoint()返回自己所在的“点“,即返回point对象的引用setobjec

    10、t(object)设置自己的成员objectpaintComponent(Graphics)绘制Image对象(3)源代码见文件Block.java2.2.4Point类成员变量见表8:表8 类Point的成员变量名称成员变量描述x、y两个int型数据,分别用来表示容器坐标的x轴坐标和y轴坐标值haveBlockBoolean型数据,如果有Block对象在该Point对象上时该数据为ture,否则为falseblock用来存放一个Block对象的引用,标明该Block对象在当前Point对象上(2)方法见表9;表9 类Point的方法方法名功能Point(int,int)构造方法,用来创建Po

    11、int对象isHaveBlock ()返回一个boolean型数据,如果当前Point对象上有Block对象返回ture,否者返回falsesetHaveBlock (boolean)根据参数的值设置当前Point对象上是否有Block对象getX()、getY()返回其中的x轴坐标和y轴坐标epuals(TowerPoint)判断当前Point对象是否和参数指定的Point对象相同setBlock(Block)将参数指定的Block对象放在当前Point对象上getBlock()返回当前Point对象上的Block对象(3)源代码见文件Point.java2.2.5HandleImage类成

    12、员变量见表10:表10 类HandleImage的成员变量名称成员变量描述imageWidth、imageHeight两个int型数据,分别用来存储图像的宽和高toolToolkit对象,用来获取Image对象(2)方法见表11;表11 类HandleImage的方法方法名功能HandleImage()构造方法,负责完成HandleImage对象的初始化getImages(Image,int,int)将参数指定的Image图像分解成若干个更小的图像,并将这些图像存放到一个Image数组中,然后返回该数组。(3)源代码见文件HandleImage.java2.2.6HandleMove类成员变量

    13、见表12:表12 类HandleMove的成员变量名称成员变量描述pointPoint类型的二维数组,用来存放puzzlepad魔板容器中point数组的引用spendTime用来记录用户玩魔板游戏的用时recordTime计时器showTimeJTexField创建的文本框,负责显示用时vrifyVerifySuccess声明的对象,用来存放PuzzlePad魔板中verifySuccess的引用(2)方法见表13;表13 类HandleMove的方法方法名功能HandleMove()构造方法,用来创建handleMove对象setPoint(Point)将puzzlepad魔板容器的poi

    14、nt对象的引用传递给该对象中的point,以便handleMove移动Block对象setVerifySuccess(VerifySuccess)将puzzlepad魔板容器的verifySuccess对象的引用传递给该对象中的verify,verify对象负责判断魔板中的Block对象是否成功的按要求排列完毕InitSpendTime()将spendTime的值设置为0MousePressed(KeyEvent)执行鼠标左键事件,根据规则移动Block对象MouseReleased(MouseEvent)判断用户是否已经成功地将Block对象按要求排列完毕actionPerformed(Ac

    15、tionEvent)显示用户当前的用时(3)源代码见文件HandleMove.java2.2.7VerifySuccess类成员变量见表14:表14 类VerifySuccess的成员变量名称成员变量描述pointPoint类型的二维数组,用来存放puzzlepad魔板容器中point数组的引用objectObject数组,其单元可以存放任何对象(2)方法见表15;表15 类VerifySuccess的方法方法名功能HandleMove()构造方法,用来创建handleMove对象setPoint(Point)将puzzlepad魔板容器的point对象的引用传递给该对象中的point, se

    16、tPoint(Object)将puzzlepad魔板容器的Integer数组或Image数组的引用传递给该对象中的object isSuccess()判断用户是否按要求成功排列魔板中的方块,成功isSuccess()方法返回ture,否则返回false(3)源代码见文件VerifySuccess.java2.2.8Record类成员变量见表16:表16 类Record的成员变量名称成员变量描述time用户的用时YourName 用户用来输入名字的文本框enter和cancel按钮对象,单击enter可以保存成绩,单击cancel可以放弃保存成绩gradeFile级别文件(2)方法见表17;表1

    17、7 类Record的方法方法名功能Record()构造方法,用来创建record对象setGradeFile(File)当用户成功后,画面上弹出record对话框,将调用setGradeFile(File)方法将级别文件传递给Record对话框gradeFile。setTime(int)将记录的用时传递给Record对话框gradeFile。actionPerformed(ActionEvent)当单击enter时,将用户的文本框yourName中输入的名字以及time的值保存到gradeFile文件中,当单击cancle按钮时,其操作是关闭当前对话框。(3)源代码见文件Record.java

    18、2.2.9people类成员变量见表18:表18 类people的成员变量名称成员变量描述time用户的用时name用户的名字(2)方法见表19;表19类people的方法方法名功能getTime()返回timegetName( )返回namecompareTo(Object)Comparerable接口中的方法,其操作是确定people对象的大小关系(3)源代码见文件people.java2.2.10ShowRecordDialog类成员变量见表20:表20 类ShowRecordDialog的成员变量名称成员变量描述gradeFile对话框要读取的文件,该文件存储成绩。clear 注册了A

    19、ctionEvent事件的按钮showArea文本区显示对话框从gradeFile文件中读取的成绩treeSet负责将程序按高低排序(2)方法见表21;表21 类ShowRecordDialog的方法方法名功能ShowRecordDialog()构造方法,用来创建showDialog对象setGradeFile(File)当用户选择“查看排行榜”菜单中的菜单项时,将调用setGradeFile(File)方法将相应级别文件传递给gradeFile。showRecord( )根据读取的名字和该名字的对应成绩,创建一个people对象,并将该people对象存放在treeSet树集中。action

    20、Performed(ActionEvent)当单击clear按钮时,所执行的操作是清楚gradeFile文件中的内容。(3)源代码见文件ShowRecordDialog.java3设计结果与分析程序运行图及相关源程序:游戏启动后的初始界面图3: 图3 初始界面选择难度级别,按开始后就可进入游戏画面如图4:图4 选择难度级别选择图像:新图像或默认图像图5 选择新图像或默认图像游戏成功后提示你输入名字记录至排行榜如图6:图6 记录成绩到排行榜输入名字后 ,按确定就提示成功了如图7:图7 成功了查看排行榜功能如图8所示:图8 查看排行榜功能显示排行榜功能如图9所示图9排行榜显示功能(初级)图9排行榜

    21、显示功能(高级)该程序需要改进的地方:1、在变量的访问权限设置不到位,当时为了保证程序的运行通过,好多本来私有的变量都定义为公有,对于类的成员保护做的不够。2、可以在主界面上加一个游戏规则说明的功能。3、给程序添加背景音乐。4、程序界面风格设计还有待改进4设计体会经过这段时间的学习我收获不小,总结起来有如下几点:1、更进一步理解了JAVA编程的思想,体会到JAVA与其他编程语言的不同。对于这种面向对象的编程思想,使刚入门的人很快就能写出自己的程序。2、锻炼了自己的动手和自学能力,在编程中有许多类和方法在课本中没有学到和提及到。都是通过自己查帮助文档,或通过网络进行学习和了解到的。和别人在一起交

    22、流是一件很快了的事。3、体会到写程序最重要的是程序思想,而不是单纯的写代码。如何解决类之间的关联和继承关系,如何组织类是很关键的。此外对于接口和变量的私有还是公有,以及参数传递等方面也收获不小。4、在实验的过程中,总有一些错误,必须仔细检查并结合课本知识进行对比、揣摩才能找出错误的语句代码,进而进行改正才能得到需要的结果,最容易忽略的问题就是文件的头文件了,一不小心就会出现一大堆错误,所以一定要做好实验准备,以免越改越乱。5参考文献:耿祥义 张跃平java2实用教程 清华大学出版社耿祥义 张跃平java课程设计 清华大学出版社6相关源程序:PuzzleGameimport java.awt.*

    23、;import java.awt.event.*;import javax.swing.*;import java.io.*;import javax.swing.filechooser.*;public class PuzzleGame extends JFrame implements ActionListener PuzzlePad puzzlePad; JMenuBar bar; JMenu gradeMenu,choiceImage,resultMenu;/ JMenuItem oneGrade,twoGrade,newImage,defaultImage; JMenuItem on

    24、eGradeResult,twoGradeResult;/ File fileOneGrade,fileTwoGrade,gradeFile;/ JRadioButton digitPlay,imagePlay; ButtonGroup group=null; / Record record=null; ShowRecordDialog showDiolag=null;/ JButton startButton; Image image; Toolkit tool; public PuzzleGame() fileOneGrade=new File(初级魔板游戏排行榜.txt);/ fileT

    25、woGrade=new File(高级魔板游戏排行榜.txt);/ tool=getToolkit(); bar=new JMenuBar(); gradeMenu=new JMenu(选择级别); oneGrade=new JMenuItem(初级); twoGrade=new JMenuItem(高级); gradeMenu.add(oneGrade); gradeMenu.add(twoGrade); choiceImage=new JMenu(选择图像); newImage=new JMenuItem(选择一幅新图像); defaultImage=new JMenuItem(使用默认图

    26、像); choiceImage.add(newImage); choiceImage.add(defaultImage); resultMenu=new JMenu(查看英雄榜);/ oneGradeResult=new JMenuItem(初级英雄榜); / twoGradeResult=new JMenuItem(高级英雄榜);/ resultMenu.add(oneGradeResult);/ resultMenu.add(twoGradeResult);/ bar.add(gradeMenu); bar.add(choiceImage); bar.add(resultMenu);/ s

    27、etJMenuBar(bar); oneGrade.addActionListener(this);/ twoGrade.addActionListener(this);/ newImage.addActionListener(this); defaultImage.addActionListener(this); oneGradeResult.addActionListener(this);/ twoGradeResult.addActionListener(this);/ startButton=new JButton(开始); startButton.addActionListener(

    28、this); group=new ButtonGroup(); digitPlay=new JRadioButton(数字玩法,true); imagePlay=new JRadioButton(图像玩法,false); group.add(digitPlay); group.add(imagePlay); puzzlePad=new PuzzlePad(); puzzlePad.setGrade(1); puzzlePad.setIsDigitPlay(); add(puzzlePad,BorderLayout.CENTER); JPanel pNorth=new JPanel(); pNorth.add(digitPlay); pNorth.add(imagePlay); pNorth.add(startButton); pNorth.add(new JLabel(如果图像不能立刻显示,请再单击一次按扭); add(pNorth,BorderLayout.NORTH); add(puzzlePad.getHandleMove(),BorderLayout.SOUTH); validate(); setVisib


    注意事项

    本文(JAVA课程设计魔版游戏功能实现.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开