关键词不能为空

当前您在: 主页 > 英语 >

俄罗斯方块Java程序设计

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-09 23:41
tags:

-

2021年2月9日发(作者:pending)


俄罗斯方块游戏



一、




题内容和要求


课题内容:俄罗斯方块游戏(


Tetris


)是一款经典单 机游戏,早期常见于各


个平台。


设计一个俄罗斯方块,


玩家根据下落的不同方块形状,


通过上、


下、< /p>


左、


右四个键实现对方块的左右移动、旋转、下落等控制。游戏中 ,一共有


7


种不同


的方块形状、每种方 块以


1/7


的概率随机出现,一旦方块到达顶部,游戏结束。< /p>


当某一个行布满方块时,改行消除。



基 本要求:


通过图形界面实现俄罗斯方块游戏;


能以图形显示游戏 运行的过


程;实现相应四个键游戏玩家的控制;记录消除的行数。



扩展要求:在上述功能要求的基础上,为了提高成绩,可以添加一些额外的功


能;变量、方法命名符合规范;注释详细:每个变量都要求有注释说明用途;函


数有注释说明功能,


对参数、


返回值也要以注释的形式 说明用途;


关键的语句段


要求有注释解释;程序的层次清晰,可 读性强。



系统功能要求:




1




界面设定



玩家可以在界面左侧的游戏 区中堆积方块,游戏区上面有“游戏”



“帮助”


两个选项,界面右侧为游戏得分,玩家在游戏过程中随时可以查看游戏得分。




2




游戏控制




不同的随机图形会从区域上方缓慢落下,


通过键盘的左、右、下键可以控


制方块以一格为单位左右移动,长按实现快速移动; 上键能以


90


度为单位旋转


每一方块;



区域中横向格子方块填满,则该行会自动消除并为玩家的得分 ;当


固定的方块推到区域最上方,则游戏结束。



二、




求分析



1.



需求分析





-1


俄罗斯方块游戏需求分析



2.



任务及实现方式




1




绘制游戏区域



通过绘制地图方块、已经固定的方块和运动中的方块来实现




2




实现键盘对方块的实时控制



添加键盘监听者和方块位置移动的函数




3




记录消除行数



添加记分函数和


Graphics


类的


drawString


函数实现




4




游戏结束



添加判断游戏结束函数并给出提示



3.



预期效果




1




实现俄罗斯方块游戏的动态显示




2




实现键盘对方块各种操作




3




实现消行、记分




4




游戏能够正确结束



三、




要设计



1.



主要功能流程图



说明:游戏流程较为复杂,流程图粗略显示部分流程





-2


主要功能流程图



2.



主要类及类之间的关系的


UML






-3


Class Tetris




-4


Class Tetrisblok




-5


RelationShip


四、源程序代码



import .*;


import Event;


import Listener;


import nt;


import tener;


import .*;


import



public class Tetris extends JFrame {



public Tetris() {




Tetrisblok a = new Tetrisblok();




addKeyListener(a);




add(a);



}




public static void main(String[] args) {




Tetris frame = new Tetris();









































//


菜单条



JMenuBar menu = new JMenuBar();


//


添加菜单条



nuBar(menu);


//


菜单



JMenu game = new JMenu(


游戏




//


菜单项



JMenuItem newgame = (


新游戏



JMenuItem pause = (


暂停



JMenuItem goon = (


继续



JMenuItem exit = (


退出




//


菜单



JMenu help = new JMenu(


帮助



JMenuItem about = (


关于




//


添加菜单至菜单条























}





















}


(game);


(help);





//


对窗口设置




//


居中



ationRelativeTo(null);



//


关闭程序



aultCloseOperation(_ON_CLOSE);



//


大小



e(220, 275);



//


标题



l e(


俄罗斯方块




//


可见性




ible(true);



//


不可更改大小



izable(false);


//


创建俄罗斯方块类



class Tetrisblok extends JPanel implements KeyListener {











// blockType


代表方块类型



// turnState


代表方块状态




private int blockType;



private int turnState;


private int score = 0;












































private int x;


private int y;


private int i = 0;


int j = 0;



int flag = 0;



//


定义已经放下的方块


x=0-11,y=0-21;


int[][] map = new int[13][23];


// 7


种方块类型,每一个方块有


4


种旋转状态,使用


16


位数字表示一种 旋转状态



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

-


-


-


-


-


-


-


-



本文更新与2021-02-09 23:41,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/624974.html

俄罗斯方块Java程序设计的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文