




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于基于 Java 语言的语言的 俄罗斯方块游戏课程设计俄罗斯方块游戏课程设计 学院 学院 X 专业 专业 X 班级 班级 X 姓名 姓名 X 学号 学号 X 指导老师 指导老师 X 摘要摘要 第一章第一章 引引 言言 1 11 1 设计的课题背景设计的课题背景 1 21 2 研究课题的任务 目的和意义研究课题的任务 目的和意义 1 2 11 2 1 课题的任务课题的任务 1 2 21 2 2 课题的目的课题的目的 1 2 31 2 3 课题的意义课题的意义 1 31 3 系统的主要功能和特色系统的主要功能和特色 1 3 11 3 1 系统的主要功能系统的主要功能 1 3 21 3 2 系统的特色系统的特色 第二章第二章 系统需求分析系统需求分析 2 12 1 本课题研究现状分析本课题研究现状分析 2 22 2 要解决的问题及解决方法要解决的问题及解决方法 2 32 3 系统设计的主要内容 目标系统设计的主要内容 目标 2 3 12 3 1 系统设计的主要内容系统设计的主要内容 2 3 22 3 2 设计的目标设计的目标 2 42 4 使用的关键技术使用的关键技术 第三章第三章 系统的详细设计系统的详细设计 3 13 1 系统的总体系结构系统的总体系结构 3 23 2 系统各模块的界面设计及实现系统各模块的界面设计及实现 3 2 13 2 1 主窗体程序模块设计与实现主窗体程序模块设计与实现 3 2 23 2 2 方块变换模块设计与实现方块变换模块设计与实现 3 2 33 2 3 满行消除并计分模块设计与实现满行消除并计分模块设计与实现 第四章第四章 系统的安装与测试系统的安装与测试 4 14 1 系统的安装系统的安装 4 1 14 1 1 系统的运行环境系统的运行环境 4 1 24 1 2 系统的安装系统的安装 4 24 2 系统的测试系统的测试 结束语结束语 参考文献参考文献 附录 有关程序代码附录 有关程序代码 摘要 摘要 在现代 高科技的飞跃发展 人们工作习惯的改变 特别 是电脑的大量普及 人们生活节奏越来越快 一些有趣的桌面 游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐 的首选 而俄罗斯方块游戏是人们最熟悉的小游戏之一 俄罗 斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏 它由 俄罗斯人阿列克谢 帕基特诺夫发明 故得此名 俄罗斯方块 的基本规则是移动 旋转和摆放游戏自动输出的各种方块 使 之排列成完整的一行或多行并且消除得分 由于上手简单 老 少皆宜 从而家喻户晓 风靡世界 为此 我设计了一款简单 的俄罗斯方块 JAVA 游戏程序 以便更好的满足广大电脑工作者 闲暇之余的消遣 并且也让我学到编程技术 关键字 俄罗斯方块游戏 关键字 俄罗斯方块游戏 Java 语言 编程语言 编程 第一章第一章 引言引言 1 1 设计的课题背景设计的课题背景 俄罗斯方块是一款电视游戏机和掌上游戏机游戏 它由俄罗斯人阿列克 谢 帕基特诺夫发明 故得此名 俄罗斯方块的基本规则是移动 旋转和摆 放游戏自动输出的各种方块 使之排列成完整的一行或多行并且消除得分 由于上手简单 老少皆宜 从而家喻户晓 风靡世界 2014 年 2 月 22 日 英国心理学家发现 减肥者通过玩俄罗斯方块 可以降低对富含脂肪的食物 和零食的心理需求 尝试戒烟者的烟瘾也能得到遏制 本学期学习 java 程序后 对该语言有了更深了解 可以尝试实现小程 序的开发 因此利用所学知识 编写了俄罗斯方块这一游戏 实现了它的部 分简单功能 1 21 2 研究课题的任务 目的和意义研究课题的任务 目的和意义 1 2 11 2 1 课题的任务课题的任务 本游戏开发的总体任务是实现游戏的可操作性 以及界面的美观性 采用 JAVA GUI 编程实现界面以及事件的控制 用户根据键盘的四个方向键 控制翻转 向左 向右 和向下操作 1 2 21 2 2 课题的目的课题的目的 用所学的 Java 知识编写小游戏 学会使用 Java 中的相关知识 熟练掌 握开发程序的流程 熟练使用 eclipse 软件进行 Java 编程 并进行调试和测试 基本实现俄罗斯方块的基本功能 1 2 31 2 3 课题的意义课题的意义 本课题的选择 完成后 可方便人们进行游戏的玩耍 开发相应智力与 推理能力 如果加以推广 必将使人们在枯燥的时间有娱乐的游戏 使人们的 生活更加丰富 1 31 3 系统的主要功能和特色系统的主要功能和特色 1 3 11 3 1 系统的主要功能系统的主要功能 用户根据键盘的四个方向键控制翻转 向左 向右 和向下操作 每 当整一行全满时 自动消除 并计分 1 3 21 3 2 系统的特色系统的特色 本次设计的游戏中增加了计分功能 可以方便游戏玩家查看分数 查看 自己的实际水平 设计框图 设计框图 俄罗斯方 块 游戏帮助 新游戏暂停继续退出关于 总体界面 总体界面 界面界面左侧右侧 游戏区域计分文字区域 整体的大致效果 整体的大致效果 俄罗斯方块俄罗斯方块 游戏游戏帮助帮助 计分 计分 游游 戏戏 区区 域域 好好学习课程 好好学习课程 珍惜美好时光 珍惜美好时光 第二章第二章 系统需求分析系统需求分析 2 12 1 本课题研究现状分析本课题研究现状分析 俄罗斯方块不仅有益智力 还能促进手指灵活性 目前 手机普及的程度 相当大 人们可以在闲暇时间娱乐 它趣味性强 易上手 能满足人们对它的 娱乐要求 因此 俄罗斯方块游戏 可以为用户提供一个可在普通个人电脑上 运行的游戏 如果时间足够 开发出手机版俄罗斯方块后 将更方便人们闲暇 时玩耍 2 22 2 要解决的问题及解决方法要解决的问题及解决方法 解决了程序太大不能进行简单游戏娱乐的弊端 以相当简单的代码完成 了相应功能 解决了人们玩游戏不方便的弊端 使人们能随意在任何地方都能 娱乐 消遣空闲时间 2 3 12 3 1 系统设计的主要内容系统设计的主要内容 在 eclipse 英文 LUNA 版中编写代码 使用 Java 中 Frame Button 等相关组件进行合理的组合设计 实现相应效果 达到预期效果 2 3 22 3 2 设计的目标设计的目标 在编程完成后 可以利用键盘的上 下 左 右键 能够 实现对游戏的控制 其中 表示方块翻转 表 示方块左移 表示方块右移 表示方 块加速下降 游戏者在游戏时可以利用这四个键进行相应的操作 使其完成相应变化 从而得到游戏者想要的形状 以完成整行的匹 配 第三章第三章 系统的详细设计系统的详细设计 3 13 1 系统的总体系结构系统的总体系结构 不同的随机方块会从区域上方缓慢落下 能以 90 度为单位 旋转每一方块 以一格为单位左右移动方块 让方块加速落下 区 域中横向格子方块填满 则该行会自动消除并为玩家的得分 当固 定的方块推到区域最上方 则游戏结束 编写主方法 对所编写的类进行测试 方块的消去 变换形状 通过编写的成员方法实现 使用随机函数确定每次掉落的方块形状 使用 ActionListiner 响应键盘事件 3 23 2 系统各模块的界面设计及实现系统各模块的界面设计及实现 3 2 13 2 1 主窗体程序模块设计与实现主窗体程序模块设计与实现 主窗体使用 Frame 窗体 在窗体上实现相应功能 把菜单栏添加到窗体上 将不同菜单添加到菜单栏上 完成新游戏 暂停 继续 退出等功能 相应代码如下 相应代码如下 public class Game extends JFrame public Game Tetrisblok a new Tetrisblok addKeyListener a add a public static void main String args Game frame new Game JMenuBar menu new JMenuBar frame setJMenuBar menu JMenu game new JMenu 游戏 JMenuItem newgame game add 新游戏 JMenuItem pause game add 暂停 JMenuItem goon game add 继续 JMenuItem exit game add 退出 JMenu help new JMenu 帮助 JMenuItem about help add 关于 menu add game menu add help frame setLocationRelativeTo null 设置窗口相对于指定组 件的位置 null将其置为屏幕中间 frame setDefaultCloseOperation JFrame EXIT ON CLOSE 关闭游戏 frame setSize 220 275 frame setTitle 俄罗斯方块 frame setVisible true frame setResizable false 改变生成的窗体的大小 默认为 true 可改变 3 2 23 2 2 方块变换模块设计与实现方块变换模块设计与实现 共设置有 7 7 种不同的形状 分别为 I 形 S 形 T 形 Z 形 O 形 J 形 L 形 相应形态举例如下 1 I 形 2 O 形 3 T 形 4 L 形 5 J 形 6 S 形 7 Z 形 相应代码如下 相应代码如下 方块的形状 方块类型有S Z L J I O T共7种 private final int shapes new int I类型 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 S形 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 Z形 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 J形 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 O形 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 L形 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 T形 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 3 2 33 2 3 满行消除及计分模块设计与实现满行消除及计分模块设计与实现 当满一整行后 需要自动消除 并实现计分 规定每满一行 总分加 10 分 相应代码如下 相应代码如下 满一整行后消除 并加分 public void delline int c 0 for int b 0 b 22 b for int a 0 a 0 d for int e 0 e 11 e map e d map e d 1 c 0 第四章第四章 系统的安装与测试系统的安装与测试 4 14 1 系统的安装系统的安装 4 1 14 1 1 系统的运行环境系统的运行环境 系统是在 eclipse 的 LUNA 英文版本下进行编写与调试的 4 1 24 1 2 系统的安装系统的安装 在 eclipse 官网直接下载 安装 eclipse 版本为 eclipse java luna SR2 win32 x86 64 在 Myproject 工作空间 text 包下编写 测试 执行 4 24 2 系统的测试系统的测试 程序完成后 进行系统测试后 达到了预期目标 能进行简 单的游戏 当满一整行时 可以自动消除 并实现计分功能 键盘功能测试 键盘功能测试 测试结果 方向键 实现了旋转方块 方向键 实现了方块加速下落 方向键 实现了方块左移 方向键 实现了方块右移 结束语结束语 通过本次实验 学习到了 Java 语言的精深 刚开始的时候 自 己觉得不会做出理想的效果 但我一步一步慢慢的去做 最后出来 了相应效果 虽然还需改进 我已觉得有了很大的成就感 虽然在 实验过程中 遇到了许多的困难 但通过去查找资料 上网搜索 询问同学 问题都得到了解决 通过这次的学习 使我对 JAVA 面向对象的编程有了更深一步的 了解 因为这次的课程设计 使我在今后的工作和学习中 更有信 心去克服生活中的困难 积极处理问题 也使我相信 只要自己想 做 想学 就没有完成不了的工作 参考文献 参考文献 1 唐大仕 Java 程序设计 修订本 清华大学出版社 北京交通 大学出版社 2012 3 2 刘慧宁 那盟 Java 程序设计 M 北京 机械工业出版社 2005 10 309 312 3 朱喜福 赵敏 夏齐霄 等 java 程序设计 M 北京 人民邮电出 版社 2005 2 272 290 4 百度百科 百度文库中相关知识 附录 整个程序代码 附录 整个程序代码 package text import java awt import java awt event import javax swing public class Game extends JFrame public Game Tetrisblok a new Tetrisblok addKeyListener a add a public static void main String args Game frame new Game JMenuBar menu new JMenuBar frame setJMenuBar menu JMenu game new JMenu 游戏 JMenuItem newgame game add 新游戏 JMenuItem pause game add 暂停 JMenuItem goon game add 继续 JMenuItem exit game add 退出 JMenu help new JMenu 帮助 JMenuItem about help add 关于 menu add game menu add help frame setLocationRelativeTo null 设置窗口相对于指定组 件的位置 null将其置为屏幕中间 frame setDefaultCloseOperation JFrame EXIT ON CLOSE 关闭游戏 frame setSize 220 275 frame setTitle 俄罗斯方块 frame setVisible true frame setResizable false 改变生成的窗体的大小 默认为 true 可改变 创建俄罗斯方块 class Tetrisblok extends JPanel implements KeyListener blockType 代表方块类型 turnState 代表方块状态 private int blockType private int score 0 i 0 private int turnState private int x y int j 0 int flag 0 定义已经放下的方块x 0 11 y 0 21 int map new int 13 23 方块的形状 方块类型有S Z L J I O T共7种 private final int shapes new int I类型 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 S形 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 Z形 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 J形 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 O形 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 L形 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 T形 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 生成新方块的方法 public void newblock blockType int Math random 7 7 7种类型之间 进行转换 turnState int Math random 4 4 每一类型的四 种状态间转换 x 4 y 0 if gameover x y 1 newmap drawwall score 0 JOptionPane showMessageDialog null 小伙伴 这局输了 休息会 去听听花开的声音吧 JOptionPane 是发出通知的标准对话 框 画出游戏区域 public void drawwall for i 0 i 12 i 底部 map i 21 2 for j 0 j 22 j 左右两边 map 11 j 2 map 0 j 2 对游戏区域初始化 都置为0 public void newmap for i 0 i 12 i for j 0 j 22 j map i j 0 构造方法 Tetrisblok newblock newmap drawwall Timer timer new Timer 1000 new TimerListener 控 制下落速度 每隔一秒下落一格 timer start 旋转的方法 public void turn int tempturnState turnState turnState turnState 1 4 if blow x y blockType turnState 1 if blow x y blockType turnState 0 turnState tempturnState repaint 左移的方法 public void left if blow x 1 y blockType turnState 1 x x 1 repaint 右移的方法 public void right if blow x 1 y blockType turnState 1 x x 1 repaint 下落的方法 public void down if blow x y 1 blockType turnState 1 y y 1 delline if blow x y 1 blockType turnState 0 add x y blockType turnState newblock delline repaint 判断产生的方块是否合法 public int blow int x int y int blockType int turnState for int a 0 a 4 a for int b 0 b 4 b if shapes blockType turnState a 4 b 1 return 1 满一整行后消除 并加分 public void delline int c 0 for int b 0 b 22 b for int a 0 a 0 d for int e 0 e 11 e map e d map e d 1 c 0 判断游戏是否结束 public int gameover int x int y if blow x y blockType turnState 0 return 1 return 0 public void add int x int y int blockType int turnState int j 0 for int a 0 a 4 a for int b 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《2025合同风险管理与控制培训教程》
- 2025年中考化学坐标图像“教”“学”“评”一体化说课稿
- 康养中心人力资源调配管理方案
- 2025年储罐租赁合同全文
- 2025年急诊医学急性中暑处理流程模拟考试卷答案及解析
- 血液病诊疗与护理考核试题及答案
- 2025年康复专业言语康复治疗方法选择与评估案例分析试卷答案及解析
- 天然气项目进度管理实施方案
- 产业园供水工程管道铺设技术方案
- 拆除工程施工班组考核管理方案
- 产科护理SBAR交班模式
- DB61∕T 1576-2022 矩形钢管混凝土组合桁梁桥技术规范
- 古村落传统建筑保护与改造的探索
- 2025-2030中国汽车工程服务外包(ESO)行业现状调查与前景趋势研究报告
- 2025年乡村振兴考试题及答案
- 职业中学数学课件学习方法
- 燃气智慧燃气行业数字化转型
- 光伏电站建设安全总监岗位职责
- 2025年中国药用菌行业投资前景及策略咨询研究报告
- 软陶教学课件
- 2025年黑吉辽蒙高考化学试卷真题解读及答案详解(精校打印)
评论
0/150
提交评论