ImageVerifierCode 换一换
格式:DOC , 页数:26 ,大小:246KB ,
资源ID:2223088      下载积分:3 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2223088.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(java—课程设计实验报告俄罗斯方块.doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

java—课程设计实验报告俄罗斯方块.doc

1、成 绩 评 定 表学生姓名班级学号 专 业电子信息工程课程设计题目俄罗斯方块游戏设计评语组长签字:成绩日期 2013 年 月 日课程设计任务书学 院信息学院专 业电子信息工程学生姓名班级学号 课程设计题目俄罗斯方块游戏设计实践教学要求与任务: 俄罗斯方块是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件实现的基本功能如下:l 游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况和下一个将要出现方块的提示。l 游戏控制:玩家可以通过游戏控制功能来控制游戏开始,暂停,结束游戏,游戏难度的设置以及音效控制。l 玩家游戏信息存储及删除:玩家的得分在前五名时,将会记录在排行榜上,同

2、时可为玩家清空排行榜。游戏软件随即不断的下落其中方块中的一种,玩家在方块落到底部之前将方块尽量整齐的摆放好,以便能够对满一行进行消除,玩家可以旋转,左右移动方块,以选择最佳的摆放位置和方式,也可以加快下落的速度,甚至可以直接落到底部,以便节省游戏的时间。当方块落到底部的时候,就不能进行操作的,此时会在顶部出现另一个方块。在堆放方块的时候,如果一行堆满的话,则进行消行,上面的方块自动的向下移动一行。消除一行可以得到100分, 工作计划与进度安排: 第18周:布置课程设计任务,查阅资料,分组设计,程序调试。 第19周:程序调试,编写课程设计报告,验收,答辩。指导教师: 2013年6月20日专业负责

3、人: 2013年6月20日学院教学副院长: 2013年6月20日目 录1.课设软件主要功能 12.类总体设 .12.1类组合关系图 .12.2主类 .2 2.3其它类 .23.类详细设计 23.1 ERS_Block主类 .2 3.2 Command处理控制类 .43.3 GameCanvas游戏画布类 .43.4 Block方块类.64.关键类成员函数流程图及代码.75.软件运行结果.17结论.20参考文献.201.课设软件主要功能本系统是一个俄罗斯方块游戏的系统设计1,实现的基本功能就是能实现经典俄罗斯方块游戏的基本功能。如用键盘上的空格下左右键来控制方块的变形,移动等功能。点击控制面板上

4、的开始游戏,游戏暂停,提高级数,降低级数退出游戏等按钮来实现游戏的开始,暂停,停止游戏,增加难度,降低难度等功能。 俄罗是方块游戏游戏区游戏控制数据操作 图1.1功能图2.类总体设计2.1类组合关系图MypanelCommandMyTimerERS-Block图2.1. 类组合关系图2.2主类ERS_Block继承Frame类负责游戏全局的控制2。对开始游戏、暂停/继续游戏、结束游戏、等级设置。玩家可自行设定游戏等级,主要提供10种级别,级别越高,游戏速度越快,难度越大2.3其他类1.Mypanel继承Panel类。2.Block是方块类控制块的移动,下落变形功能。七种类型方块的父类,定义了所

5、有类型方块的共同特征和行为。3.GameCanvas是游戏画布类,继承Canvas类,界面设计应遵循简介美观方便易用的基本原则在游戏区显示方块。4.Command类是控制按钮类。5.MyTimer类继承自线程类Thead。包含run()方法,sleep()方法,控制游戏的速度。6.WinListener类继承WindowAdapter类。3.类详细设计3.1ERS_Block主类图3.1主类数据透视图定义成员变量3 右边信息窗体的布局 MyPanel infoScr = new MyPanel(); infoScr.setLayout(new GridLayout(4,1,0,5); info

6、Scr.setSize(120,300); 定义标签和初始值 Label scorep = new Label(分数:,Label.LEFT); Label levelp = new Label(级数:,Label.LEFT); 右边控制按钮窗体的布局 MyPanel controlScr = new MyPanel(); controlScr.setLayout(new GridLayout(5,1,0,5); rightScr.add(controlScr); 定义按钮play Button play_b = new Button(开始游戏); play_b.setSize(new Dim

7、ension(50,200); 定义按钮Level UP Button level_up_b = new Button(提高级数); level_up_b.setSize(new Dimension(50,200); 定义按钮Level Down Button level_down_b =new Button(降低级数); level_down_b.setSize(new Dimension(50,200); 定义按钮Level Pause Button pause_b =new Button(游戏暂停); pause_b.setSize(new Dimension(50,200); 定义按钮

8、Quit Button quit_b = new Button(退出游戏); quit_b.setSize(new Dimension(50,200); ; 成员方法 俄罗斯方块类的构造方法 方法定义:ERS_Block(String title) isGameOver方法方法定义:private boolean isGameOver() 功能描述:该方法是判断游戏是否该结束了,只需要判断窗口中的最顶端那一行中是否有方块,同时也要判断最底端的是否也有,如果都有即结束。 3.2Command处理控制类图3.2Command类数据透视图成员变量4:给按钮编号int button_play int

9、button_levelup int button_leveldown int button_quit ; int button_pause int curButton; GameCanvas scr;成员方法: 控制按钮类的构造方法方法定义:Command(int button,GameCanvas scr) 按钮执行方法 方法定义:public void actionPerformed (ActionEvent e)功能:点击按钮实现游戏的开始,结束,升级,降级,暂停5。3.3GameCanvas游戏画布类图3.3GameCanvas类数据透视图成员变量:小方块边长 :final int

10、0unitSize = 30正方格的行数: int rowNum方格的列数 :int columnNum允许有多少行未削 :int maxAllowRowNum新出现块的起始行坐标 :int blockInitRow出现块的起始列坐标: int blockInitCol屏幕数组: int scrArr对方快的引用:Block b2.画布类的构造方法成员方法5: 初始化屏幕,并将屏幕数组清零的方法方法定义 :void initScr() 重新刷新画布方法方法定义 :public void paint(Graphics g) 画方块的方法方法定义 : public void drawUnit(in

11、t row,int col,int type)功能:以背景为颜色画,画正在下落的方块,画已经落下的方块。 块的初始v行坐标方法方法定义 : public int getInitRow()返回新块的初始行坐标 :return(blockInitRow) 返回新块的初始列坐标方法方法定义 :public int getInitCol()返回新块的初始列坐标 :return(blockInitCol) 满行删除方法方法定义 :void deleteFullLine()功能:这个就是实现如何将行消除的,其实就是在判断了该行该消除时候将上面的方块都向下平移一格,这样在实现程序界面也就给玩家是消一行的视觉

12、效果6。3.3Block方块类图3.3Block类数据透视图成员变量:块的模式编号:int blockType; 块的翻转状态:int turnState; 块的下落状态:int blockState; 块在画布上的坐标:int row,col; GameCanvas scr; 成员方法:1) fallDown方法方法定义:public void fallDown ()功能描述:实现方块的运行,下落。2) leftMove()方法方法定义:public synchronized boolean leftMove()功能描述:将当前画移动到所左面的位置。3) rightMove()方法方法定义:

13、private boolean rightMove ()功能描述:将方块想右边移动。4) 方法方法定义:public void turnNext()功能描述:实现方块的旋转。5) leftturn方法方法定义:private synchronized boolean leftturn()功能描述:将当前块实现翻转。6) deleteFullLine方法方法定义:private boolean deleteFullLine()功能描述:实现满行删除的方法。7) erase方法方法定义:private void erase()功能描述:将当前块从画布的对应位置移除。8) display方法方法定义

14、:private void display()功能描述:实现重画画布的时候显示当前块4.关键类成员函数流程图及代码4.1系统流程图选择游戏等级进入游戏界面开始游戏结束游戏是否到顶部是否到顶部随机选择方块类方块下落一行处理玩家操作 图4.1系统流程图74.2源代码7import java.awt.*; import java.awt.event.*; /俄罗斯方块类 class ERS_Block extends Frame public static boolean isPlay=false; public static int level=1,score=0; public static T

15、extField scoreField,levelField; public static MyTimer timer; GameCanvas gameScr; public static void main(String argus) ERS_Block ers = new ERS_Block(俄罗斯方块游戏 ); WindowListener win_listener = new WinListener(); ers.addWindowListener(win_listener); /俄罗斯方块类的构造方法 ERS_Block(String title) super(title); set

16、Size(600,480); setLayout(new GridLayout(1,2); gameScr = new GameCanvas(); gameScr.addKeyListener(gameScr);timer = new MyTimer(gameScr); timer.setDaemon(true); timer.start(); timer.suspend(); add(gameScr); Panel rightScr = new Panel(); rightScr.setLayout(new GridLayout(2,1,0,30); rightScr.setSize(120

17、,500); add(rightScr); /右边信息窗体的布局 MyPanel infoScr = new MyPanel(); infoScr.setLayout(new GridLayout(4,1,0,5); infoScr.setSize(120,300); rightScr.add(infoScr); /定义标签和初始值 Label scorep = new Label(分数:,Label.LEFT); Label levelp = new Label(级数:,Label.LEFT); scoreField = new TextField(8); levelField = new

18、TextField(8); scoreField.setEditable(false); levelField.setEditable(false); infoScr.add(scorep); infoScr.add(scoreField); infoScr.add(levelp); infoScr.add(levelField); scorep.setSize(new Dimension(20,60); scoreField.setSize(new Dimension(20,60); levelp.setSize(new Dimension(20,60); levelField.setSiz

19、e(new Dimension(20,60); scoreField.setText(0); levelField.setText(1); /右边控制按钮窗体的布局 MyPanel controlScr = new MyPanel(); controlScr.setLayout(new GridLayout(5,1,0,5); rightScr.add(controlScr); /定义按钮play Button play_b = new Button(开始游戏); play_b.setSize(new Dimension(50,200); play_b.addActionListener(ne

20、w Command(Command.button_play,gameScr); /定义按钮Level UP Button level_up_b = new Button(提高级数); level_up_b.setSize(new Dimension(50,200); level_up_b.addActionListener(new Command(Command.button_levelup,gameScr); Button level_down_b =new Button(降低级数); level_down_b.setSize(new Dimension(50,200); level_dow

21、n_b.addActionListener(new Command(Command.button_leveldown,gameScr); Button pause_b =new Button(游戏暂停); pause_b.setSize(new Dimension(50,200); pause_b.addActionListener(new Command(Command.button_pause,gameScr); Button quit_b = new Button(退出游戏); quit_b.setSize(new Dimension(50,200); quit_b.addActionL

22、istener(new Command(Command.button_quit,gameScr); controlScr.add(play_b); controlScr.add(level_up_b); controlScr.add(level_down_b); controlScr.add(pause_b); controlScr.add(quit_b); setVisible(true); gameScr.requestFocus(); /游戏画布类 class GameCanvas extends Canvas implements KeyListener final int unitS

23、ize = 30; /小方块边长 int rowNum; /正方格的行数 int columnNum; /正方格的列数 int maxAllowRowNum; /允许有多少行未削 int blockInitRow; /新出现块的起始行坐标 int blockInitCol; /新出现块的起始列坐标 int scrArr; /屏幕数组Block b; /对方快的引用 /画布类的构造方法 GameCanvas() rowNum = 15; columnNum = 10; maxAllowRowNum = rowNum - 2; b = new Block(this); blockInitRow =

24、 rowNum - 1; blockInitCol = columnNum/2 - 2; scrArr = new int 3232; /画方块的方法 public void drawUnit(int row,int col,int type) scrArrrowcol = type; Graphics g = getGraphics(); switch(type) /表示画方快的方法 case 0: g.setColor(Color.black);break; /以背景为颜色画 case 1: g.setColor(Color.blue);break; /画正在下落的方块 case 2: g

25、.setColor(Color.magenta);break; /画已经落下的方法 g.fill3DRect(col*unitSize,getSize().height-(row+1)*unitSize,unitSize,unitSize,true); g.dispose(); public Block getBlock() return b; /返回block实例的引用 /满行删除方法 void deleteFullLine() int full_line_num = 0; int k = 0; for (int i=0;irowNum;i+) boolean isfull = true;

26、L1:for(int j=0;jcolumnNum;j+) if(scrArrij = 0) k+; isfull = false; break L1; if(isfull) full_line_num+; if(k!=0 & k-1!=i & !isfull) for(int j = 0; j columnNum; j+) if (scrArrij = 0) drawUnit(k-1,j,0); else drawUnit(k-1,j,2); scrArrk-1j = scrArrij; for(int i = k-1 ;i rowNum; i+) for(int j = 0; j colu

27、mnNum; j+) drawUnit(i,j,0); scrArrij=0; ERS_Block.score += full_line_num; ERS_Block.scoreField.setText(+ERS_Block.score); /处理键盘输入的方法 public void keyPressed(KeyEvent e) if(!ERS_Block.isPlay) return; switch(e.getKeyCode() case KeyEvent.VK_DOWN:b.fallDown();break; case KeyEvent.VK_LEFT:b.leftMove();bre

28、ak; case KeyEvent.VK_RIGHT:b.rightMove();break; case KeyEvent.VK_SPACE:b.leftTurn();break; /处理控制类 class Command implements ActionListener static final int button_play = 1; /给按钮分配编号 static final int button_levelup = 2; static final int button_leveldown = 3; static final int button_quit = 4; static fi

29、nal int button_pause = 5; static boolean pause_resume = true; int curButton; /当前按钮 GameCanvas scr; /控制按钮类的构造方法 Command(int button,GameCanvas scr) curButton = button; this.scr=scr; /按钮执行方法 public void actionPerformed (ActionEvent e) switch(curButton) case button_play:if(!ERS_Block.isPlay) scr.initScr

30、(); ERS_Block.isPlay = true; ERS_Block.score = 0; ERS_Block.scoreField.setText(0); ERS_Block.timer.resume(); scr.requestFocus(); break; case button_levelup:if(ERS_Block.level 1) ERS_Block.level-; ERS_Block.levelField.setText(+ERS_Block.level); ERS_Block.score = 0; ERS_Block.scoreField.setText(+ERS_B

31、lock.score); scr.requestFocus(); break; case button_pause:if(pause_resume) ERS_Block.timer.suspend(); pause_resume = false; else ERS_Block.timer.resume(); pause_resume = true; scr.requestFocus(); break; case button_quit:System.exit(0); /方块类 class Block static int pattern = 0x0f00,0x4444,0x0f00,0x444

32、4,/用十六进至表示,本行表示长条四种状态 0x04e0,0x0464,0x00e4,0x04c4, 0x4620,0x6c00,0x4620,0x6c00, 0x2640,0xc600,0x2640,0xc600, 0x6220,0x1700,0x2230,0x0740, 0x6440,0x0e20,0x44c0,0x8e00, 0x0660,0x0660,0x0660,0x0660 ; int blockType; /块的模式号(0-6) int turnState; /块的翻转状态(0-3) int blockState; /快的下落状态 int row,col; /块在画布上的坐标 G

33、ameCanvas scr; /块类的构造方法 Block(GameCanvas scr) this.scr = scr; blockType = (int)(Math.random() * 1000)%7; turnState = (int)(Math.random() * 1000)%4; blockState = 1; row = scr.getInitRow(); col = scr.getInitCol(); /定时线程 class MyTimer extends ThreadGameCanvas scr; public MyTimer(GameCanvas scr) this.sc

34、r = scr; public void run() while(true) try sleep(10-ERS_Block.level + 1)*100); catch(InterruptedException e) if(!scr.getBlock().fallDown() scr.deleteFullLine(); if(scr.isGameEnd() ERS_Block.isPlay = false; suspend(); else scr.getBlock().reset(); class WinListener extends WindowAdapter public void wi

35、ndowClosing (WindowEvent l) System.exit(0); 5.软件运行结果 图5.1系统主窗口 图5.2方块翻转功能图5.3方块翻转功能 图5.4界面消行功能图5.6得分情况图5.7游戏结束结论学习了Java面向对象编程8的课程,为了更进一步的提高我们对Java的深入学习,进行了一周的课程设计,我所选择课程设计是利用Java设计一个简单的俄罗斯方块游戏。采用swing界面设计技术9设计窗口,按钮等,并添加事件监听,并采用线程技术10控制游戏的速度。俄罗斯方块的应用程序要求的功能:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况,可以通过游戏控制功能来

36、选择开始新的一局游戏,暂停或退出游戏,玩家可以根据自己的需要自行设定游戏的开始级别,级别越高,游戏的速度越快,难度越大等功能都以完全实现。此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏。参考文献1Java面向对象程序设计 陈明主编,清华大学出版社。2JAVA课程设计 黄明 梁旭 周绍斌编著,电子工业出版社。3JAVA编程宝典李钟尉 陈丹丹 张振坤编著,人民邮电出版社4.JSP网站编程教程第1版 屈辉立 陈可明 石武,北京希望电子出版社。 5B/S模式构建在线考试系统 白勇,重庆电力高等专科学校学报。6Java 编程思想 Bruce Eckel,

37、北京机械工业出版社7 实用Java程序设计教程 宛延闿,北京机械工业出版社。8 JAVA面向对象程序编程 张孝祥,北京清华出版社。9Java 语言使用教程 丁振凡,北京邮件大学出版社。 10Java 语言使用教程实验指导 丁振凡,北京邮件大学出版社。目 录第一章 概 论11.1项目名称11.2项目地点11.3区域特点11.4建设规模11.5可行性研究范围21.6项目估算总投资额3第二章 项目市场分析32.1#县经济发展趋势分析32.2#县房地产发展概况42.3区域市场分析102.4项目利弊分析11第三章 项目定位及销售预测123.1项目定位123.2销售情况预测143.3销售价格预测14第四章

38、 项目的工程技术方案154.1总平面及建筑方案154.2结构164.3供配电工程164.4给排水工程164.5人防174.6弱电工程174.7主要设备设施174.8交通与停车174.9环境保护17第五章 项目管理与建设进度计划195.1项目运作模式195.2招投标管理195.3工程监理195.4物业管理195.5建设进度计划195.6销售计划20第六章 项目营销和招商方案216.1销售、租赁比例216.2运营策略216.3招商策略22第七章 投资估算和资金筹措257.1投资估算257.2资金筹措277.3资金平衡计划:见下表28第八章 效益分析298.1销售收入、销售税金及附加估算298.2经营成本及费用估算30第九章 项目风险及防范措施319.1市场风险319.2筹资风险319.3销售不确定性风险319.4项目开发的风险329.5成本控制的风险32第十章 结论及建议3310.1结论3310.2建议3323

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服