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

    基于Java语言的俄罗斯方块游戏课程设计doc.docx

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

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

    基于Java语言的俄罗斯方块游戏课程设计doc.docx

    1、基于Java语言的俄罗斯方块游戏课程设计doc基于Java语言的俄罗斯方块游戏课程设计学院:X专业:X班级:X姓名:X学号:X指导老师:X摘要第一章 引 言1.1 设计的课题背景 1.2 研究课题的任务,目的和意义 1.2.1 课题的任务1.2.2 课题的目的 1.2.3 课题的意义1.3 系统的主要功能和特色 1.3.1 系统的主要功能 1.3.2 系统的特色 第二章 系统需求分析 2.1 本课题研究现状分析2.2 要解决的问题及解决方法 2.3 系统设计的主要内容、目标 2.3.1 系统设计的主要内容 2.3.2 设计的目标 2.4 使用的关键技术 第三章 系统的详细设计 3.1 系统的总

    2、体系结构 3.2 系统各模块的界面设计及实现 3.2.1 主窗体程序模块设计与实现3.2.2 方块变换模块设计与实现 3.2.3 满行消除并计分模块设计与实现 第四章 系统的安装与测试 4.1 系统的安装 4.1.1 系统的运行环境 4.1.2 系统的安装 4.2 系统的测试结束语参考文献附录:有关程序代码摘要:在现代,高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一。俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢帕基

    3、特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。 为此,我设计了一款简单的俄罗斯方块JAVA游戏程序,以便更好的满足广大电脑工作者闲暇之余的消遣,并且也让我学到编程技术。关键字:俄罗斯方块游戏、Java语言、编程第一章 引言1.1设计的课题背景俄罗斯方块是一款电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风

    4、靡世界。2014年2月22日,英国心理学家发现,减肥者通过玩俄罗斯方块,可以降低对富含脂肪的食物和零食的心理需求;尝试戒烟者的烟瘾也能得到遏制。本学期学习java程序后,对该语言有了更深了解,可以尝试实现小程序的开发。因此利用所学知识,编写了俄罗斯方块这一游戏,实现了它的部分简单功能。1.2 研究课题的任务,目的和意义 1.2.1 课题的任务 本游戏开发的总体任务是实现游戏的可操作性,以及界面的美观性。采用JAVA GUI编程实现界面以及事件的控制。用户根据键盘的四个方向键控制翻转、向左、向右、和向下操作。 1.2.2 课题的目的 用所学的Java知识编写小游戏,学会使用Java中的相关知识,

    5、熟练掌握开发程序的流程。熟练使用eclipse软件进行Java编程,并进行调试和测试。基本实现俄罗斯方块的基本功能。1.2.3 课题的意义 本课题的选择,完成后,可方便人们进行游戏的玩耍,开发相应智力与推理能力。如果加以推广,必将使人们在枯燥的时间有娱乐的游戏,使人们的生活更加丰富。1.3 系统的主要功能和特色 1.3.1 系统的主要功能 用户根据键盘的四个方向键控制翻转、向左、向右、和向下操作,每当整一行全满时,自动消除,并计分。 1.3.2 系统的特色 本次设计的游戏中增加了计分功能,可以方便游戏玩家查看分数,查看自己的实际水平。设计框图:总体界面:整体的大致效果:俄罗斯方块游戏帮助游戏区

    6、域计分:好好学习课程。珍惜美好时光!第二章 系统需求分析 2.1 本课题研究现状分析 俄罗斯方块不仅有益智力,还能促进手指灵活性。目前,手机普及的程度相当大,人们可以在闲暇时间娱乐。它趣味性强,易上手,能满足人们对它的娱乐要求。因此,俄罗斯方块游戏,可以为用户提供一个可在普通个人电脑上运行的游戏,如果时间足够,开发出手机版俄罗斯方块后,将更方便人们闲暇时玩耍。2.2 要解决的问题及解决方法 解决了程序太大不能进行简单游戏娱乐的弊端,以相当简单的代码完成了相应功能,解决了人们玩游戏不方便的弊端,使人们能随意在任何地方都能娱乐,消遣空闲时间。2.3.1 系统设计的主要内容 在eclipse英文LU

    7、NA版中编写代码,使用Java中Frame、Button等相关组件进行合理的组合设计,实现相应效果,达到预期效果。2.3.2 设计的目标 在编程完成后,可以利用键盘的上、下、左、右键,能够实现对游戏的控制,其中 表示方块翻转, 表示方块左移, 表示方块右移, 表示方块加速下降。游戏者在游戏时可以利用这四个键进行相应的操作,使其完成相应变化,从而得到游戏者想要的形状,以完成整行的匹配。 第三章 系统的详细设计 3.1 系统的总体系结构 不同的随机方块会从区域上方缓慢落下, 能以90度为单位旋转每一方块,以一格为单位左右移动方块,让方块加速落下。 区域中横向格子方块填满,则该行会自动消除并为玩家的

    8、得分。 当固定的方块推到区域最上方,则游戏结束。 编写主方法,对所编写的类进行测试。方块的消去,变换形状通过编写的成员方法实现。使用随机函数确定每次掉落的方块形状。 使用ActionListiner响应键盘事件。 3.2 系统各模块的界面设计及实现 3.2.1 主窗体程序模块设计与实现主窗体使用Frame窗体,在窗体上实现相应功能。把菜单栏添加到窗体上。将不同菜单添加到菜单栏上,完成新游戏、暂停、继续、退出等功能。相应代码如下:public class Game extends JFrame public Game() Tetrisblok a = new Tetrisblok(); addK

    9、eyListener(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(退出); J

    10、Menu 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.setResiz

    11、able(false);/改变生成的窗体的大小,默认为true(可改变) 3.2.2 方块变换模块设计与实现 共设置有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

    12、, 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,

    13、 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,

    14、 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,

    15、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,

    16、 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.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+) maped

    17、 = maped - 1; c = 0; 第四章 系统的安装与测试 4.1 系统的安装 4.1.1 系统的运行环境 系统是在eclipse 的LUNA英文版本下进行编写与调试的。4.1.2 系统的安装 在eclipse官网直接下载、安装eclipse,版本为eclipse-java-luna-SR2-win32-x86_64,在Myproject工作空间,text包下编写、测试、执行。4.2 系统的测试 程序完成后,进行系统测试后,达到了预期目标,能进行简单的游戏,当满一整行时,可以自动消除,并实现计分功能。 键盘功能测试: 测试结果: 方向键“”:实现了旋转方块; 方向键“”:实现了方块加速

    18、下落; 方向键“”:实现了方块左移; 方向键“”:实现了方块右移。结束语通过本次实验,学习到了Java语言的精深,刚开始的时候,自己觉得不会做出理想的效果,但我一步一步慢慢的去做,最后出来了相应效果,虽然还需改进,我已觉得有了很大的成就感。虽然在实验过程中,遇到了许多的困难,但通过去查找资料,上网搜索,询问同学,问题都得到了解决。通过这次的学习,使我对JAVA面向对象的编程有了更深一步的了解,因为这次的课程设计,使我在今后的工作和学习中,更有信心去克服生活中的困难,积极处理问题。也使我相信,只要自己想做、想学,就没有完成不了的工作。参考文献:1唐大仕 Java程序设计(修订本).清华大学出版社

    19、,北京交通大学出版社,2012.32刘慧宁,那盟.Java程序设计M.北京:机械工业出版社,2005,10:309-312.3朱喜福,赵敏,夏齐霄,等.java程序设计M.北京:人民邮电出版社,2005,2:272-290.4XX百科、XX文库中相关知识.附录:整个程序代码:package text;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Game extends JFrame public Game() Tetrisblok a = new Tetrisblok(); addKey

    20、Listener(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(退出); JMe

    21、nu 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.setResizab

    22、le(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 int1323

    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,

    24、 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

    25、, 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,

    26、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

    27、, 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 new

    28、block() 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+) /底部 mapi21 =


    注意事项

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

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




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

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开