资源描述:
《俄罗斯方块课程设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、系统概述1.1现状分析在个人电脑日益普及的今天,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一,它以其趣味性强,易上手等诸多特点得到了大众的认可,因此开发此游戏软件可满足人们的一些娱乐的需求。此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏。1.2项目要求俄罗斯方块游戏是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件要实现的功能如下:(1)游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过
2、程中随时了解得分情况。(2)游戏控制:玩家可以通过游戏控制功能来选择开始新的一局游戏,暂停或退出游戏。(3)级别设置:玩家可以根据自己的需要自行设定游戏的开始级别,级别越高,游戏的速度越快,难度越大。(4)系统功能模块示意图如下:俄罗斯方块游戏游戏区游戏控制显示玩家操作显示操作结果开始暂停/继续提高等级退出降低等级二、设计说明2.1游戏区模块游戏区模块创建游戏区处理玩家游戏操作显示游戏结果2.2控制区模块游戏控制模块开始游戏暂停游戏初始级别设置退出游戏2.3系统流程图是否到顶部处理玩家操作开始设置初始级别创建游戏区
3、游戏开局随机选择方块类型是否到顶部方块下落一行游戏结束是否2.4系统操作界面游戏打开界面游戏进行中界面三、源程序编码importjavax.swing.*;importjava.awt.*;importjavax.swing.border.Border;importjava.awt.event.*;publicclassErsBlocksGameextendsJFrame{publicfinalstaticintalinescore=100;publicfinalstaticinteverylevelscore=a
4、linescore*20;publicfinalstaticintmaxlevel=10;publicfinalstaticintinitlevel=5;privateGameCanvascanvas;privateErsBlockblock;privatebooleanplaying=false;privateControlPanelctrlPanel;privateJMenuBarbar=newJMenuBar();privateJMenumGame=newJMenu("游戏"),mControl=newJMe
5、nu("控制"),mhelp=newJMenu("帮助");privateJMenuItemmiNewGame=newJMenuItem("新游戏"),milevelup=newJMenuItem("提高级数"),mileveldown=newJMenuItem("降低级数"),miExit=newJMenuItem("退出"),miPlay=newJMenuItem("开始"),miPause=newJMenuItem("暂停"),miResume=newJMenuItem("重新开始"),miStop=newJ
6、MenuItem("停止"),miCtrlBlock=newJMenuItem("方块控制键");publicErsBlocksGame(Stringtitle){super(title);setSize(315,392);DimensionscrSize=Toolkit.getDefaultToolkit().getScreenSize();setLocation((scrSize.width-getSize().width)/2,(scrSize.height-getSize().height)/2);crea
7、teMenu();Containercontainer=getContentPane();container.setLayout(newBorderLayout(6,0));canvas=newGameCanvas(20,12);ctrlPanel=newControlPanel(this);container.add(canvas,BorderLayout.CENTER);container.add(ctrlPanel,BorderLayout.EAST);addWindowListener(newWindowA
8、dapter(){publicvoidwindowClosing(WindowEventwe){stopGame();System.exit(0);}});addComponentListener(newComponentAdapter(){publicvoidcomponentResized(ComponentEventce){canvas.fanning