java课程设计报告俄罗斯方块.pptx

上传人:摩西的****12 文档编号:147889800 上传时间:2020-10-14 格式:PPTX 页数:21 大小:84.55KB
返回 下载 相关 举报
java课程设计报告俄罗斯方块.pptx_第1页
第1页 / 共21页
java课程设计报告俄罗斯方块.pptx_第2页
第2页 / 共21页
java课程设计报告俄罗斯方块.pptx_第3页
第3页 / 共21页
java课程设计报告俄罗斯方块.pptx_第4页
第4页 / 共21页
java课程设计报告俄罗斯方块.pptx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《java课程设计报告俄罗斯方块.pptx》由会员分享,可在线阅读,更多相关《java课程设计报告俄罗斯方块.pptx(21页珍藏版)》请在金锄头文库上搜索。

1、I,1,JAVA 程序设计课程设计 之 俄罗斯方块,年级:13 级 班级:T412 网络工程 指导老师:朱林 小组成员: 20138346021 许浩洋,2,II,时间:2015 年 11 月 11 日,目录,摘要. 第一章 课程设计要求.,第二章 设计概要. 2.1 功能设计 . 2.2 功能分析 . 2.2.1 系统操作界面 . 2.2.2 程序主要功能说明 .,第三章 调试分析与测试结果. 3.1 游戏运行界面 . 3.2 测试项目 . 3.2.1 功能区按键测试 . 3.2.2 键盘功能测试 . 3.2.3 游戏结束测试 . 第四章 设计总结. 4.1 改进意见 . 4.2 Java

2、课程设计心得体会 .,1,1,摘要,在现代,高科技的飞跃发展,人们工作习惯的改变,特别是电脑 的大量普及,人们生活节奏越来越快,一些有趣的桌面游戏已经成 为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗 斯方块游戏是人们最熟悉的小游戏之一。俄罗斯方块(Tetris, 俄 文:)是一款风靡全球的电视游戏机和掌上游戏机游 戏,它由俄罗斯人阿列克谢帕基特诺夫发明,故得此名。俄罗斯 方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使 之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆 宜,从而家喻户晓,风靡世界。 为此,我们设计了一款简单的俄罗 斯方块JAVA 游戏程序,以便

3、更好的满足广大电脑工作者闲暇之余的 消遣,并且也让我们学到编程技术与团队意识。 关键字:俄罗斯方块、JAVA 游戏、编程,第一章 课程设计要求,题目名称:俄罗斯方块,题目类型:设计型,课程设计目的: 1)了解 Java 的基本使用方法。,2,2,2)熟悉 eclipse 的运行环境。 3)用 JAVA 来设计一个俄罗斯方块的小游戏。 4)基本实现俄罗斯方块的应用功能。 实验原理: JAVA 程序分析与设计、类的灵活运用、多态技术、模板技术、异 常处理等。 实验内容: 本俄罗斯方块游戏是对于随机给出不同的形状(长条形、Z 字形、反 Z 形、田字形、L 字形、反 L 形、T 字型)下落填充给定的区

4、域,若填满一条便 消掉,记分。若在游戏中各形状填满了给定区域,为输者。,第二章 设计概要,2.1功能设计 本项目是为了实现俄罗斯方块的基本功能而设计的,基本能够达到俄罗斯 方 块 的 各 种 游 戏 性 。 项 目 需 求 分 析 如 下 : 1)由方块组成的不同的随机图形会从区域上方开始缓慢落下。 玩家可以做的操作有: 以 90 度为单位旋转方每一格块。 以格子为单位左右移动方块,让方块加速落下。 方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处, 而新的随机图形会出现在区域上方开始落下。 当区域中某一列横向格子全部由方块填满,则该列会自动消除并成为玩家的 得分。,3 5)一

5、次性销毁不同行数方块得分不同,一行 1 分,两行 2 分,三行 5 分,四行 10 分。 6)当固定的方块堆到区域最上方,则游戏结束。 功能分析 系统操作界面,2.2.2程序主要功能说明 1.面板画笔类 代码: package Tetris; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.Arrays;,处理玩家操作,3,super.p

6、aint(g);,4,4,import java.util.Timer; import java.util.TimerTask; import javax.swing.JFrame; import javax.swing.JPanel; public class TetrisPanel extends JPanel /游戏主面板 20 行 10 列 private static final int ROWS = 20; private static final int COLS = 10; /代表方块着陆的墙 private Cell wall = new CellROWSCOLS; /定义每

7、一小块的大小 private static final int CELL_SIZE = 25; /游戏得分 private int score; /游戏销毁行数 private int lines; /一次性销毁行数的计分标准(0 行=0 分,1 行=1 分,2 行=4 分,3 行=10 分,4 行=20 分) private static final int SCORE_LEVEL =0,1,4,10,20; /游戏结束标记 private boolean gameOver = false; /游戏暂停标记 private boolean pause = false; /正在下落的四格方块

8、private Tetromino currentTetro ; /下一个下落的四格方块 private Tetromino nextTetro ; /定义游戏定时器 private Timer timer; public static void main(String args) JFrame frame = new JFrame(俄罗斯方块); int width = (COLS+8)*CELL_SIZE+100; int height = ROWS*CELL_SIZE+100; frame.setSize(width, height); frame.setLocationRelative

9、To(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /取消系统默认布局 frame.setLayout(null); TetrisPanel panel = new TetrisPanel(); panel.setLocation(45, 35); panel.setSize(COLS+8)*CELL_SIZE,ROWS*CELL_SIZE+1); frame.add(panel); frame.setVisible(true); panel.action(); public void paint(Graphics g

10、),5,5,/填充背景颜色 this.paintBackground(g); /绘制游戏墙 paintWall(g); /绘制分数墙 paintScore(g); /绘制面板边框 paintTetrisBorder(g); /绘制当前四格方块 paintCurrentTetro(g); /绘制下个四格方块 paintNextTetro(g); / private static final int BG_COLOR = 0 xC3D5EA; / private static final int BORDER_COLOR = 0 x667799; / private static final in

11、t FONT_COLOR = 0 x000000; /绘制背景的方法 public void paintBackground(Graphics g) g.setColor(new Color(BG_COLOR); /this.setBackground(new Color(BG_COLOR); g.fillRect(0, 0, this.getWidth(), this.getHeight(); /绘制游戏墙的方法 public void paintWall(Graphics g) for(int row=0;rowROWS;row+) for(int col=0;colCOLS;col+)

12、Cell cell = wallrowcol; int x =col*CELL_SIZE; int y= row*CELL_SIZE; if(cell=null) g.setColor(new Color(BORDER_COLOR); g.drawRect(x, y, CELL_SIZE, CELL_SIZE); else g.setColor(new Color(cell.getColor(); g.fillRect(x, y, CELL_SIZE, CELL_SIZE); g.setColor(new Color(BORDER_COLOR); g.drawRect(x, y, CELL_S

13、IZE, CELL_SIZE); /绘制分数墙的方法 public void paintScore(Graphics g) int x = 12*CELL_SIZE; int y = 6*CELL_SIZE; Font font = new Font(楷体,Font.BOLD,23); String msg =分数:+score; g.setColor(new Color(FONT_COLOR); g.setFont(font); g.drawString(msg, x, y); y+=2*CELL_SIZE; msg = 行数:+lines;,6,6,g.drawString(msg, x, y); if(gameOver) msg = (T_T)【S】再来; y+=2*CELL_SIZE; x-=CELL_SIZE; g.drawString(msg, x, y); else if(pause) msg = 【C】继续; y+=2*CELL_SIZE; g.drawString(msg, x, y); else msg = 【P】暂停; y+=2*CELL_SIZE; g.drawString(msg, x, y); /绘制面板边框的方法 public void paintTetrisBorder(Graph

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号