




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录目录 1 设计目的 2 2 总体设计 2 3 关键技术 3 3 1 系统的功能模块划分 3 3 1 1 PUZZLEFRAME JAVA 类模块 3 3 1 2 PUZZLEPAD JAVA 类模块 4 3 1 3 SQUAREPOINT JAVA 类模块 4 4 程序流程 5 5 主要源代码 7 5 1PUZZLEFRAME 模块源程序 7 5 2 PUZZLEPAD 模块源程序 10 5 3 SQUAREPOINT 类模块源程序 17 6 运行结果及结论 19 6 1 测试方案 19 6 2 运行结果 19 6 3 小结 20 7 参考文献 21 叮叮小文库 2 1 1 设计目的设计目的 本次课程设计是通过 Java 语言编制一个魔板游戏 它是一款经典的智力游戏 而 Java 语言是当今较为流行的网络编程语言 它具有面向对象 跨平台 分布应用等特点 这次课 程设计 还有利于加深对 Java 课程的进一步了解 也可以巩固所学 Java 语言基本知识 增 进 Java 语言编辑基本功 掌握 JDK Editplus Eclipse JCreator 等开发工具的运用 拓 宽常用类库的应用 使学生通过该教学环节与手段 把所学课程及相关知识加以融会贯通 全面掌握 Java 语言的编程思想及面向对象程序设计的方法 利用所学高级语言的语法特性 结合数据结构算法 网络知识 文件处理和数据库等知 识完成综合题目的设计和代码实现 并培养锻炼分析程序 撰写报告等能力 2 2 总体设计总体设计 在设计魔板游戏时 要编写 7 个 Java 源文件 PuzzleGame java PuzzlePad java Point java Block java HandleImage java VerifySuccess ja va 和 HandleMove java 魔板游戏除了需要编写的上述 7 个 Java 源文件所给出的类外 还需要 Java 系统提供的一些 重要的类 如 JMenuItem JButton 和 JRadioButton 等类 魔板游戏所用到的一些重要的类以 及之间的组合关系如图 1 所示 PuzzleGame JMenuPuzzlePadJRadioButtonJButton Point Block HandleMove Image HandleImage VerifySuccess 图图 2 12 1 程序模块程序模块 叮叮小文库 3 3 3 关键技术关键技术 3 13 1 系统的功能模块划分系统的功能模块划分 在设计魔板游戏时 需要编写 3 个 java 源文件 PuzzleFrame java PuzzlePad java SquarePoint java 魔板游戏除了需要编写的上述 3 个 Java 源文件所给出的类外 还需要 Java 系统提供的 一些重要的类 如 JMenuItem JButton 和 JRadioButton 等类 3 1 13 1 1 PuzzleFrame javaPuzzleFrame java 类模块类模块 PuzzleFrame 类负责创建魔板游戏的主窗口 该类含有 main 方法 程序从该类开始 PuzzleFrame 类的成员变量中有 4 种重要类型的对象 PuzzlePad JmenuItem JRadioButton 和 JButton PuzzleFrame 类的主要成员的作用将在 后面的详细设计中阐述 PuzzleFrame 类主要成员变量 属性 和主要方法如表 3 1 3 2 所 示 成员变量描述变量类型名称 魔板 开始游戏的按钮 选择玩法 PuzzlePad Jbutton JradioButton PuzzlePad 开始 数字玩法 图像玩法 表表 3 13 1 PuzzleFrame javaPuzzleFrame java 主要成员变量 属性 主要成员变量 属性 名称功能备注 PuzzleFrame actionPerformed main 创建程序主窗口 处理 ActionEvent 事件 程序开始运行的方法 构造方法 接口方法 表表 3 23 2 PuzzleFrame javaPuzzleFrame java 主要方法主要方法 叮叮小文库 4 3 1 23 1 2 PuzzlePad javaPuzzlePad java 类模块类模块 PuzzlePad 类创建的对象是 PuzzleFrame 类最重要的成员之一 代表 魔板 该类的成 员变量中有 5 种重要类型的对象 Point Block 和 Image PuzzlePad 类类主要成员变量 属性 和主要方法如表 3 3 3 4 所示 描述变量类型名称 魔板中的行数和列数 魔板中方块的宽和高 魔板中二维点数组 魔板中而为方块数组 模板可能用到的图像 int int SquarePoint JButton Image rows colums width height point block image 表表 3 33 3 PuzzlePadPuzzlePad java java 主要成员变量 属性 主要成员变量 属性 名称功能备注 PuzzlePad 随机排列数字 随机排列图像 paintComponent actionPerformed 创建魔板对象 随机排列魔板中方块上的数字 随机排列魔板中方块上的图像 绘制图像 处理 ActionEvent 事件 构造方法 接口方法 表表 3 43 4 PuzzlePadPuzzlePad java java 主要方法主要方法 3 1 33 1 3 SquarePoint javaSquarePoint java 类模块类模块 SquarePoint 类负责创建确定位置的对象 使用 Point 对象可以确定 Block 对象在 PuzzlePad 对象中的位置 即确定 方块 在 魔板 中的位置 SquarePoint java 类主要 成员变量 属性 和主要方法如表 3 5 3 6 所示 描述变量类型名称 判断点上是否有方块 点上的方块对象 boolean JButton 有方块 block 表表 3 53 5 SquarePointSquarePoint java java 主要成员变量 属性 主要成员变量 属性 叮叮小文库 5 名称功能备注 SquarePoint get 有方块 set 有方块 setBlock getBlock 创建 点 对象 判断点上是否有方块 设置点上是否有方块 在点上放置方块 获取点上的方块 构造方法 表表 3 63 6 SquarePointSquarePoint java java 主要方法主要方法 4 4 程序流程 程序流程 根据对模板游戏的功能分析 设计得到魔板游戏总流程 如图 4 1 所示 叮叮小文库 6 图图 4 14 1 系统流程图系统流程图 流程解释 程序分为两种玩法 数字玩法和图片玩法 又分为初级和高级两种模式 进入游 戏选择游戏难度 后选择玩法 数字或图片玩法 系统将各切片顺序打乱 移动切片 判断 顺序是否正确 正确游戏结束 不正确继续移动 程序结束 叮叮小文库 7 5 5 主要源代码主要源代码 5 1PuzzleFrame5 1PuzzleFrame 模块源程序模块源程序 import java awt import java awt event import javax swing public class PuzzleFrame extends JFrame implements ActionListener PuzzlePad puzzlePad JButton 开始 JMenuBar bar JMenu fileMenu JMenuItem 初级 高级 JRadioButton 数字玩法 图像玩法 ButtonGroup group null Container con null public PuzzleFrame bar new JMenuBar fileMenu new JMenu 魔板游戏 初级 new JMenuItem 初级 高级 new JMenuItem 高级 fileMenu add 初级 fileMenu add 高级 bar add fileMenu setJMenuBar bar 初级 addActionListener this 高级 addActionListener this 叮叮小文库 8 开始 new JButton 开始玩 开始 addActionListener this group new ButtonGroup 数字玩法 new JRadioButton 数字玩法 true 图像玩法 new JRadioButton 图像玩法 false group add 数字玩法 group add 图像玩法 puzzlePad new PuzzlePad 3 3 50 50 con getContentPane con add puzzlePad BorderLayout CENTER JPanel pNorth new JPanel pNorth add 数字玩法 pNorth add 图像玩法 pNorth add 开始 con add pNorth BorderLayout NORTH con validate addWindowListener new WindowAdapter public void windowClosing WindowEvent e System exit 0 setVisible true setBounds 100 50 440 360 validate public void actionPerformed ActionEvent e if e getSource 开始 if 数字玩法 isSelected 叮叮小文库 9 puzzlePad 随机排列数字 else if 图像玩法 isSelected puzzlePad 随机排列图像 else if e getSource 初级 con remove puzzlePad puzzlePad new PuzzlePad 3 3 50 50 con add puzzlePad BorderLayout CENTER con validate this validate else if e getSource 高级 con remove puzzlePad puzzlePad new PuzzlePad 4 4 50 50 con add puzzlePad BorderLayout CENTER con validate this validate public static void main String args new PuzzleFrame 叮叮小文库 10 5 25 2 PuzzlePadPuzzlePad 模块源程序模块源程序 import java awt import java awt event import javax swing import javax swing border import java util Vector import java awt image public class PuzzlePad extends JPanel implements ActionListener int rows colums int width height SquarePoint point JButton block Vector vector int leftX 50 leftY 50 Image image null Toolkit tool null MediaTracker mt int 图像的宽 图像的高 Image blockImage boolean 画图像 true public PuzzlePad int r int c int w int h setLayout null vector new Vector rows r colums c width w height h 叮叮小文库 11 tool getToolkit try image tool createImage dog jpg mt addImage image 1 mt waitForAll catch Exception e block new JButton rows colums point new SquarePoint rows colums for int i 0 i rows i for int j 0 j colums j if i rows 1 block i j setSize width height block i j addActionListener this vector add block i j for int i 0 i rows i for int j 0 j colums j 叮叮小文库 12 point i j new SquarePoint 50 j width 50 i height if i rows 1 public void actionPerformed ActionEvent e JButton button JButton e getSource int x button getBounds x int y button getBounds y int m 0 n 0 for int i 0 i rows i for int j 0 j colums j if point i j getX x n j 叮叮小文库 13 int 上 Math max 0 m 1 int 下 Math min rows 1 m 1 int 左 Math max 0 n 1 int 右 Math min colums 1 n 1 if point 上 n get 有方块 false point 上 n setBlock button this point m n set 有方块 false else if point 下 n get 有方块 false point 下 n setBlock button this point m n set 有方块 false else if point m 左 get 有方块 false point m 左 setBlock button this point m n set 有方块 false else if point m 右 get 有方块 false point m 右 setBlock button this point m n set 有方块 false public void 随机排列数字 vector removeAllElements for int i 0 i rows i 叮叮小文库 14 for int j 0 j0 int n int Math random vector size JButton b JButton vector elementAt n b setText i b setIcon null b setBorder BorderFactory createLineBorder Color blue 1 vector remove n i 画图像 false repaint public void 随机排列图像 try 图像的宽 image getWidth this 叮叮小文库 15 图像的高 image getHeight this int w 图像的宽 colums int h 图像的高 rows blockImage new Image rows colums int k 0 PixelGrabber pg null ImageProducer ip null for int i 0 i rows i for int j 0 j colums j int pixels new int w h pg new PixelGrabber image j w i h w h pixels 0 w pg grabPixels ip new MemoryImageSource w h pixels 0 w blockImage k tool createImage ip k vector removeAllElements for int i 0 i rows i for int j 0 j0 int n int Math random vector size JButton b JButton vector elementAt n b setIcon new ImageIcon blockImage num b setBorder null b setText vector remove n num 画图像 true repaint catch Exception ee public void paintComponent Graphics g super paintComponent g g setColor Color black g fillRect leftX leftY colums width rows height if 画图像 true g drawImage image colums width 80 height colums width rows height this for int i 0 i rows i 叮叮小文库 17 g setColor Color white g drawLine colums width 80 height i height colums width 80 colums width height i height for int j 0 j colums j g drawLine colums width 80 j width height colums width 80 j width height rows height g setColor Color black g fillRect colums width 80 colums 1 width height rows 1 height width height 5 35 3 SquarePointSquarePoint 类模块源程序类模块源程序 import java awt import javax swing JButton public class SquarePoint int x y boolean 有方块 JButton block null Container con null public SquarePoint int x int y this x x 叮叮小文库 18 this y y public boolean get 有方块 return 有方块 public void set 有方块 boolean boo 有方块 boo public int getX return x public int getY return y public void setBlock JButton block Container con this con con this block block con add block block setLocation x y 有方块 true con validate pu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年人疾病知识课件
- 《翻译理论与实践1》课程介绍与教学大纲
- 医疗评估与执行单规范填写实操指南
- 醉驾安全防护知识培训课件
- 老年人护理学课件教学
- 老年人慢性病的课件
- 连词成句搭桥互动游戏支持39个单词句子update
- 华为公司国际营销策略
- CN120208489A 一种提升水效的智慧一体化净水系统
- 外研版九年级英语下册Module4单元测试试卷-含答案03
- 电梯施工管理
- 《城市热力管道安全风险评估方法》编制说明
- 部编版历史九年级上册第六单元 第17课君主立宪制的英国【课件】r
- 专题26 尺规作图(讲义)
- 北师大版(2024新版)七年级上册数学全册教案
- 2024年学校劳务派遣外包合同范本
- 农业无人机项目计划书
- 深圳市城市规划标准与准则
- 人音版小学四年级音乐上电子全册教案
- 小小少年三声部童声合唱谱
- 珍珠培训课件
评论
0/150
提交评论