俄罗斯方块游戏程序设计.doc
文本预览下载声明
俄罗斯方块游戏
程序设计报告
学号: 姓名:
难度:****
知识点:(1)绘图 (2)键盘事件处理 (3)定时器控件 (4)多模块程序设计 (5)文本文件的读写
1.功能要求:
(1)启动程序,单击“开始”或“回车”键开始游戏。不同形状以随机颜色出现,出现时的方向是随机的;
(2)使用“选项”菜单画框提供按键方案;
(3)游戏过程中可以单击窗口右下角的“暂停”和“继续”,也可使用“回车”键控制,打开“选项”对话框时,程序自动进入暂停状态;
(4)计分遵循一次消去一行加一百,两行三百,三行七百,四行一千五,程序自动记录并显示历史的最高分;
(5)得分每增加2000分,程序自动将方块下落速度提高一档。
2.需要解决的疑难问题和方法:
(1)本程序在模块中定义变量:
Private blnGrid(0 To 19, 0 To 9) As Boolean 网格
Private lngColor(0 To 19, 0 To 9) As Long 网格绘制颜色
Private blnBlock(0 To 4, 0 To 3, 0 To 3, 0 To 3) As Boolean 五种方块的四种不同方位
Private blnStarted As Boolean 是否已开始玩
Dim intTypeCur As Integer 当前方块的类型
Dim lngColorCur As Long 当前方块的颜色
Dim intOrieCur As Integer 当前方块的方位
Dim intOrieNext As Integer 当前方块的下一个方位
Dim intXCur As Integer 当前方块的当前位置
Dim intYCur As Integer
Dim intXNext As Integer 当前方块的下一个位置
Dim intYNext As Integer
Public intDownDistance As Integer 快速下降时的下降距离
Public blnClockWise As Boolean 方块旋转方向
Public blnShowNext As Boolean 是否显示下一个方块
Public blnScheme As Boolean 按键方案
Dim lngScore As Long 得分
Dim intTypeNew As Integer 下一个方块的类型
Dim lngColorNew As Long 下一个方块的颜色
Dim intOrieNew As Integer 下一个方块的方位
Dim lngHighScore As Long
Dim blnRedraw As Boolean
(2)画10×20的网格:
Dim i As Integer, j As Integer
去掉旧图象
For i = 0 To 3
If i + intYCur = 0 And i + intYCur = 19 Then 如果在大方框外,则不绘制
For j = 0 To 3
If j + intXCur = 0 And j + intXCur = 9 Then
If (j + intXCur = 0) And (j + intXCur = 9) And (blnBlock(intTypeCur, intOrieCur, i, j)) And Not blnGrid(i + intYCur, j + intXCur) Then
picGrid.Line ((j + intXCur) * 20 + 2, (i + intYCur) * 20 + 2)-((j + intXCur) * 20 + 19, (i + intYCur) * 20 + 19), vbBlack, B
picGrid.Line ((j + intXCur) * 20 + 4, (i + intYCur) * 20 + 4)-((j + intXCur) * 20 + 17, (i + intYCur) *
显示全部