当前位置:文档之家› VB程序设计项目(俄罗斯方块)

VB程序设计项目(俄罗斯方块)

VB程序设计项目(俄罗斯方块)
VB程序设计项目(俄罗斯方块)

VB语言程序设计报告

系(院):计算机科学与技术

专业班级:计科1006 学号(序号): 04101191(26)

学生姓名:杨娜

指导老师:王博

完成日期: 2012年5月26日

一.要求分析

俄罗斯方块游戏是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件要实现的功能如下:

(1)游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况。(2)游戏控制:玩家可以通过游戏控制功能来选择开始新的一局游戏,暂停或退出游戏。(3)级别设置:玩家可以根据自己的需要自行设定游戏的开始级别,级别越高,游戏的速度越快,难度越大。

二.概要设计

三.详细设计

1.游戏区模块

2.控制区模块

3.系统流程

4. 系统操作界面

5.游戏界面

四.编码实现

Dim GameNum(3) As Integer

Dim PreviewNum(3) As Integer

Dim PreviewSituation As Integer

Dim GameSituation As Integer

Dim LineNum As Integer

Dim t As Integer

'定义使方块不可见的过程

Private Sub HideFanku(HideNum As Integer)

'按参数确定隐藏游戏区或预览区方块

Select Case HideNum

'HideNum=0时使游戏区方块不可见

Case 0

Command1(GameNum(0)).Visible = False

Command1(GameNum(1)).Visible = False

Command1(GameNum(2)).Visible = False

Command1(GameNum(3)).Visible = False

'HideNum=1时使预览区方块不可见

Case 1

Command2(PreviewNum(0)).Visible = False

Command2(PreviewNum(1)).Visible = False

Command2(PreviewNum(2)).Visible = False

Command2(PreviewNum(3)).Visible = False

End Select

End Sub

'定义使方块可见的过程

Private Sub ShowFanku(ShowNum As Integer)

'按参数确定显示游戏区或预览区方块

Select Case ShowNum

'ShowNum=0时使游戏区方块可见

Case 0

Command1(GameNum(0)).Visible = True

Command1(GameNum(1)).Visible = True

Command1(GameNum(2)).Visible = True

Command1(GameNum(3)).Visible = True

'ShowNum=1时使预览区方块可见

Case 1

Command2(PreviewNum(0)).Visible = True

Command2(PreviewNum(1)).Visible = True

Command2(PreviewNum(2)).Visible = True

Command2(PreviewNum(3)).Visible = True

End Select

End Sub

Private Sub beginGame_Click()

Dim i As Integer

Dim j As Integer

'游戏区图片控件获得焦点

Picture1.SetFocus

'根据设置的游戏速度来定义方块的下降速度

Timer2.Interval = 1000 / Val(Text2.Text)

'根据设置的游戏难度来产生不同的地基

For i = 19 To 20 - Val(Text1.Text) Step -1

For j = i * 10 To i * 10 + 9

If Rnd >= 0.5 Then Command1(j).Visible = True Next

Next

'引用预览区已经产生的方块

For i = 0 To 3

GameNum(i) = PreviewNum(i)

Next

'在游戏区显示方块

ShowFanku (0)

'获得当前方块状态

GameSituation = PreviewSituation

'打开计时器

Timer2.Enabled = True

'将预览区的方块设置为不可见

HideFanku (1)

'在预览区重新产生方块

LoadFanku

ShowFanku (1)

StopGame.Enabled = True

End Sub

Private Sub Command3_Click()

End Sub

'退出游戏菜单

Private Sub ExitGame_Click()

End

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If t = 0 Then

HideFanku (0)

Select Case KeyCode

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''

'点击向左键

Case vbKeyLeft

If LeftAble() = True Then

For j = 0 To 3

Command1(GameNum(j) - 1).Visible = True

GameNum(j) = GameNum(j) - 1

Next j

End If

ShowFanku (0)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''

'点击向下键

Case vbKeyDown

If DownAble() = True Then

For j = 0 To 3

Command1(GameNum(j) + 10).Visible = True

GameNum(j) = GameNum(j) + 10

Next j

End If

ShowFanku (0)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''

'点击向右键

Case vbKeyRight

If RightAble() = True Then

For j = 0 To 3

Command1(GameNum(j) + 1).Visible = True

GameNum(j) = GameNum(j) + 1

Next j

End If

ShowFanku (0)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''

'点击旋转键(向上键)

Case vbKeyUp

ShowFanku (0)

Zhuan

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''

Case Else

ShowFanku (0)

End Select

End If

End Sub

Private Sub Form_Load()

Dim i As Integer

'创建游戏区的方块

For i = 1 To 199

Load Command1(i)

Next i

'在游戏区以10×20排列方块

For i = 0 To 199

Command1(i).Left = (i Mod 10)

Command1(i).Top = i \ 10

Command1(i).Visible = False

Next i

'创建预览区的方块

For i = 1 To 39

Load Command2(i)

Next i

'在预览区排列方块

For i = 0 To 39

Command2(i).Left = (i Mod 10) - 3

Command2(i).Top = i \ 10

Command2(i).Visible = False

Next i

Randomize

LoadFanku

ShowFanku (1)

End Sub

'级别菜单组,索引值从1开始

Private Sub grade_Click(Index As Integer)

Dim j As Integer

'取消所有级别的复选

For j = 1 To 5

grade(j).Checked = False

Next

'在当前选择的级别后打勾

grade(Index).Checked = True

'修改游戏设置中的级别

Text1.Text = Index

End Sub

'帮助菜单

Private Sub helpAbout_Click()

Dim Msg As String

Msg = "键盘控制方法:" & vbCrLf

Msg = Msg & "1.左右光标键控制方块左右移动。" & vbCrLf

Msg = Msg & "2.上光标键控制方块顺时针旋转90度。" & vbCrLf

Msg = Msg & "3.下光标键控制方块加速向下移动。" & vbCrLf & vbCrLf MsgBox Msg, vbOKOnly + vbQuestion, Me.Caption

End Sub

'继续游戏菜单

Private Sub ResumeGame_Click()

Timer2.Enabled = True

ResumeGame.Enabled = False

StopGame.Enabled = True

End Sub

'速度菜单组,索引值从1开始

Private Sub speed_Click(Index As Integer)

Dim j As Integer

'取消所有速度的复选

For j = 1 To 5

speed(j).Checked = False

Next

'在当前选择的速度后打勾

speed(Index).Checked = True

'修改游戏设置中的速度

Text2.Text = Index

End Sub

'暂停游戏菜单

Private Sub StopGame_Click()

Timer2.Enabled = False

ResumeGame.Enabled = True

StopGame.Enabled = False

End Sub

Private Sub Timer1_Timer()

'产生随机的RGB颜色,改变字体的颜色

Randomize

Label1.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)

End Sub

Private Sub LoadFanku()

'随机产生一种方块的过程

Select Case Int(Rnd * 6)

'长条型方块

Case 0

'长条型方块的两种变形

Select Case Int(Rnd * 2)

Case 0

PreviewNum(0) = 3

PreviewNum(1) = 4

PreviewNum(2) = 5

PreviewNum(3) = 6

PreviewSituation = 0

Case 1

PreviewNum(0) = 5

PreviewNum(1) = 15

PreviewNum(2) = 25

PreviewNum(3) = 35

PreviewSituation = 1

End Select

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''

'正方形方块

Case 1

PreviewNum(0) = 4

PreviewNum(1) = 5

PreviewNum(2) = 14

PreviewNum(3) = 15

PreviewSituation = 2

'正S型方块

Case 2

'正S型方块的两种变形

Select Case Int(Rnd * 2)

Case 0

PreviewNum(0) = 6

PreviewNum(1) = 5

PreviewNum(2) = 15

PreviewNum(3) = 14

PreviewSituation = 3

Case 1

PreviewNum(0) = 4

PreviewNum(1) = 14

PreviewNum(2) = 15

PreviewNum(3) = 25

PreviewSituation = 4

End Select

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''

'反S型方块

Case 3

'反S型方块的两种变形

Select Case Int(Rnd * 2)

Case 0

PreviewNum(0) = 4

PreviewNum(1) = 5

PreviewNum(2) = 15

PreviewNum(3) = 16

PreviewSituation = 5

Case 1

PreviewNum(0) = 5

PreviewNum(1) = 15

PreviewNum(2) = 14

PreviewNum(3) = 24

PreviewSituation = 6

End Select

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''

'T型方块

Case 4

'T型方块的四种变形

Select Case Int(Rnd * 4)

Case 0

PreviewNum(0) = 4

PreviewNum(1) = 5

PreviewNum(3) = 15

PreviewSituation = 7

Case 1

PreviewNum(0) = 5

PreviewNum(1) = 15

PreviewNum(2) = 25

PreviewNum(3) = 14

PreviewSituation = 8

Case 2

PreviewNum(0) = 16

PreviewNum(1) = 15

PreviewNum(2) = 14

PreviewNum(3) = 5

PreviewSituation = 9

Case 3

PreviewNum(0) = 24

PreviewNum(1) = 14

PreviewNum(2) = 4

PreviewNum(3) = 15

PreviewSituation = 10

End Select

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''

'正7字型方块

Case 5

'正7字型方块的四种变形

Select Case Int(Rnd * 4)

Case 0

PreviewNum(0) = 4

PreviewNum(1) = 5

PreviewNum(2) = 15

PreviewNum(3) = 25

PreviewSituation = 11

Case 1

PreviewNum(0) = 5

PreviewNum(1) = 15

PreviewNum(2) = 14

PreviewNum(3) = 13

PreviewSituation = 12

Case 2

PreviewNum(0) = 25

PreviewNum(1) = 24

PreviewNum(3) = 4

PreviewSituation = 13

Case 3

PreviewNum(0) = 14

PreviewNum(1) = 4

PreviewNum(2) = 5

PreviewNum(3) = 6

PreviewSituation = 14

End Select

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''

'反7字型方块

Case 6

'反7字型方块的四种变形

Select Case Int(Rnd * 4)

Case 0

PreviewNum(0) = 5

PreviewNum(1) = 4

PreviewNum(2) = 14

PreviewNum(3) = 24

PreviewSituation = 15

Case 1

PreviewNum(0) = 15

PreviewNum(1) = 5

PreviewNum(2) = 4

PreviewNum(3) = 3

PreviewSituation = 16

Case 2

PreviewNum(0) = 24

PreviewNum(1) = 25

PreviewNum(2) = 15

PreviewNum(3) = 5

PreviewSituation = 17

Case 3

PreviewNum(0) = 4

PreviewNum(1) = 14

PreviewNum(2) = 15

PreviewNum(3) = 16

PreviewSituation = 18

End Select

End Select

End Sub

Private Sub Timer2_Timer()

Dim j As Integer

Dim i As Integer

'隐藏当前位置的游戏区方块

HideFanku 0

'判断是否能够下降

If DownAble() = True Then

'将游戏区方块下移一行

For j = 0 To 3

GameNum(j) = GameNum(j) + 10

Next j

'显示新的方块位置

ShowFanku (0)

Else

'不能继续下降了

ShowFanku (0)

'引用自定义方法,判断是否消除满行

ClearLine

'判断方块是否叠至最上层

For i = 0 To 9

If Command1(i).Visible = True Then Exit For

Next

Dim myMsg As String

Dim myRef As Integer

If i < 10 Then

'如果到达最上层,则提示用记是否重新开始游戏

myMsg = "输了请不要灰心" & vbCrLf & "是否重新开始玩游戏?"

myRef = MsgBox(myMsg, vbYesNo + vbQuestion, "俄罗斯方块游戏")

'选择是

If myRef = vbYes Then

'将游戏区的方块全部隐藏

For i = 1 To 199

Command1(i).Visible = False

Next i

'积分清0

Text3.Text = "0"

LineNum = 0

'根据难度系数添加基数

For i = 19 To 20 - Val(Text1.Text) Step -1

For j = i * 10 To i * 10 + 9

If Rnd >= 0.5 Then Command1(j).Visible = True Next

Next

Else

'否则退出程序

End

End If

End If

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''

'没有达到最上层,引用预览区已经产生的方块

For i = 0 To 3

GameNum(i) = PreviewNum(i)

Next

ShowFanku (0)

GameSituation = PreviewSituation

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''

'计算得分

Text3.Text = Str(Val(Text3.Text) + 100 * (2 ^ LineNum - 1))

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''

'根据积分判断是否升级

If Val(Right(Text3.Text, 4)) < Val(Right(Str(Val(Text3.Text) - 100 * (2 ^ LineNum - 1)), 4)) Then

Text2.Text = Str(Val(Text2.Text) + 1)

Timer2.Interval = 1000 / Val(Text2.Text)

End If

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''

LineNum = 0

HideFanku (1)

LoadFanku

ShowFanku (1)

End If

End Sub

'定义消除整行的过程

Private Sub ClearLine()

'检查游戏区的各行

Dim i As Integer

Dim j As Integer

Dim k As Integer

For i = 190 To 10 Step -10

If Command1(i).Visible = True And _

Command1(i + 1).Visible = True And _

Command1(i + 2).Visible = True And _

Command1(i + 3).Visible = True And _

Command1(i + 4).Visible = True And _

Command1(i + 5).Visible = True And _

Command1(i + 6).Visible = True And _

Command1(i + 7).Visible = True And _

Command1(i + 8).Visible = True And _

Command1(i + 9).Visible = True Then

For j = i + 4 To i Step -1

t = 1

Command1(j).Visible = False

Command1(2 * i + 9 - j).Visible = False

For k = 1 To 4000

DoEvents

Next

t = 0

Next

LineNum = LineNum + 1

For j = i - 1 To 0 Step -1

If Command1(j).Visible = True Then

Command1(j).Visible = False

Command1(j + 10).Visible = True

End If

Next

'为了实现连消数行,这里使用递归调用

ClearLine

End If

Next

End Sub

'自定义函数,确定方块是否能下降

Private Function DownAble() As Boolean

If GameNum(0) < 190 And GameNum(1) < 190 And GameNum(2) < 190 And GameNum(3) < 190 Then

If Command1(GameNum(0) + 10).Visible = False And _

Command1(GameNum(1) + 10).Visible = False And _

Command1(GameNum(2) + 10).Visible = False And _

Command1(GameNum(3) + 10).Visible = False Then

DownAble = True

Else

DownAble = False

End If

Else

DownAble = False

End If

End Function

'自定义函数,确定方块是否能左移

Private Function LeftAble() As Boolean

If GameNum(0) Mod 10 <> 0 And GameNum(1) Mod 10 <> 0 And GameNum(2) Mod 10 <> 0 And GameNum(3) Mod 10 <> 0 Then

If Command1(GameNum(0) - 1).Visible = False And _

Command1(GameNum(1) - 1).Visible = False And _

Command1(GameNum(2) - 1).Visible = False And _

Command1(GameNum(3) - 1).Visible = False Then

LeftAble = True

Else

LeftAble = False

End If

Else

LeftAble = False

End If

End Function

'自定义函数,确定方块是否能右移

Private Function RightAble() As Boolean

If GameNum(0) Mod 10 <> 9 And GameNum(1) Mod 10 <> 9 And GameNum(2) Mod 10 <> 9 And GameNum(3) Mod 10 <> 9 Then

If Command1(GameNum(0) + 1).Visible = False And _

Command1(GameNum(1) + 1).Visible = False And _

Command1(GameNum(2) + 1).Visible = False And _

Command1(GameNum(3) + 1).Visible = False Then

RightAble = True

Else

RightAble = False

End If

Else

RightAble = False

End If

End Function

'定义使方块旋转的过程

Private Sub Zhuan()

Select Case GameSituation

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''

'长条型方块由横着变成竖立状态

Case 0

If GameNum(0) - 18 >= 2 And GameNum(3) + 9 <= 198 Then

If Command1(GameNum(0) - 18).Visible = False And _

Command1(GameNum(1) - 9).Visible = False And _

Command1(GameNum(3) + 9).Visible = False Then

HideFanku (0)

GameNum(0) = GameNum(0) - 18

GameNum(1) = GameNum(1) - 9

GameNum(3) = GameNum(3) + 9

ShowFanku (0)

GameSituation = 1

End If

End If

'由竖立变成横着状态

Case 1

If (GameNum(0) + 18) Mod 10 < 8 And (GameNum(3) - 9) Mod 10 > 0 Then

If Command1(GameNum(0) + 18).Visible = False And _

Command1(GameNum(1) + 9).Visible = False And _

Command1(GameNum(3) - 9).Visible = False Then

HideFanku (0)

GameNum(0) = GameNum(0) + 18

GameNum(1) = GameNum(1) + 9

GameNum(3) = GameNum(3) - 9

ShowFanku (0)

GameSituation = 0

End If

End If

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''

'正方形方块无变化

Case 2

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''

'正S型方块的变化

Case 3

If GameNum(0) - 11 > 1 Then

If Command1(GameNum(0) - 11).Visible = False And _

Command1(GameNum(3) + 2).Visible = False Then

HideFanku (0)

GameNum(0) = GameNum(0) - 11

GameNum(2) = GameNum(2) - 9

GameNum(3) = GameNum(3) + 2

ShowFanku (0)

GameSituation = 4

End If

End If

Case 4

If (GameNum(3) - 2) Mod 10 < 9 Then

If Command1(GameNum(2) + 9).Visible = False And _

Command1(GameNum(3) - 2).Visible = False Then

HideFanku (0)

GameNum(0) = GameNum(0) + 11

GameNum(2) = GameNum(2) + 9

GameNum(3) = GameNum(3) - 2

ShowFanku (0)

GameSituation = 3

End If

End If

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''

'反S型方块的变化

Case 5

If GameNum(0) - 9 > 1 Then

If Command1(GameNum(0) - 9).Visible = False And _

Command1(GameNum(3) - 2).Visible = False Then

HideFanku (0)

GameNum(0) = GameNum(0) - 9

GameNum(2) = GameNum(2) - 11

GameNum(3) = GameNum(3) - 2

ShowFanku (0)

GameSituation = 6

End If

End If

Case 6

If (GameNum(3) + 2) Mod 10 > 0 Then

If Command1(GameNum(2) + 11).Visible = False And _

Command1(GameNum(3) + 2).Visible = False Then

HideFanku (0)

GameNum(0) = GameNum(0) + 9

GameNum(2) = GameNum(2) + 11

GameNum(3) = GameNum(3) + 2

ShowFanku (0)

GameSituation = 5

End If

End If

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''

'T型方块的变化

Case 7

If GameNum(0) - 9 > 0 Then

If Command1(GameNum(0) - 9).Visible = False Then

HideFanku (0)

GameNum(0) = GameNum(0) - 9

GameNum(2) = GameNum(2) + 9

GameNum(3) = GameNum(3) - 11

ShowFanku (0)

GameSituation = 8

End If

End If

Case 8

If (GameNum(0) + 11) Mod 10 > 0 Then

If Command1(GameNum(0) + 11).Visible = False Then

HideFanku (0)

GameNum(0) = GameNum(0) + 11

GameNum(2) = GameNum(2) - 11

GameNum(3) = GameNum(3) - 9

ShowFanku (0)

GameSituation = 9

End If

End If

Case 9

If GameNum(0) + 9 < 199 Then

If Command1(GameNum(0) + 9).Visible = False Then

HideFanku (0)

GameNum(0) = GameNum(0) + 9

GameNum(2) = GameNum(2) - 9

GameNum(3) = GameNum(3) + 11

ShowFanku (0)

GameSituation = 10

俄罗斯方块游戏的开发需求分析

俄罗斯方块游戏的开发 组长:XXX 组员:XXX XXX XXX XXX 05软件工程一班 一、课程设计的目的和意义 俄罗斯方块游戏是一个经典的小游戏,由于它简单有趣,因而得到了广泛的流行,男女老幼都适合。而俄罗斯方块游戏的设计工作复杂且富有挑战性,它包含的内容多,涉及的知识广泛,与图形界面联系较大,包括界面的显示与更新、数据收集等,在设计的过程中,必将运用到各方面的知识,这对于visualbasi语言设 计者而言,是个很好的锻炼机会。 二、系统功能设计 本系统主要设计以下几种功能 1、游戏难度选择功能 游戏难度选择界面设置在程序运行开始时,一共有九种难度供玩家选择,每选一级难度,都会相应地显示出代表该难度的图片。开始时不设置任何默认的难度,如果玩家不选难度直接按“Enter”进入,将会弹出提示框,提示其先选难度再 进入。 2、方块下落、变形功能 在整个俄罗斯方块游戏中,方块的设计是核心。这里设计了一个方块类:Square(),用来生成方块以及实现块的左移、右移、向下、变形、重画、同步显 示、初始化新块等。 3、自动升级功能 当分数累积到一定大小时,系统将自动为玩家提高难度。这里设置了每消除10行方块,就增加一级难度。当难度增加的时候,方块会相应地改变颜色,以作为 对玩家的提示。 4、游戏音乐功能 游戏开始音乐就自动播放,游戏暂停与结束时音乐相应消除。 5、获取帮助功能 这里设置了一个类,用来显示帮助,按F1键就能弹出窗口,显示游戏规则。

三、系统功能设计分析 俄罗斯方块游戏根据功能的不同,设置了如下12个类:Square,Command, GameArea,GameSetting,GameOver,Help,ImagePanel,JieMian,MyPanel, MyTimer,PlayMidi,WinListener,每个类的描述如下: 1、Square,方块类。这个类中定义了生成方块的方法,用二维数组int[][]pattern,存放7种方块的四种状态。在构造方法中以随机的形式生成方块,同时提供了以下几种方法:reset(),leftTurn(),leftMove(),rightMove(),fallDown(),assertValid(int t,int s,int row,int col),dispBlock(int s)。分别实现方块的重画、翻转、 左移、右移、下落、同步显示等功能。 2、Command,处理控制类。这是一个实现ActionListener接口的类,主要处理点击按钮事件。类中定义了三个int型变量:button_play,button_quit,button_pause,和一个boolean型的变量:pause_resume,并赋值。在GameArea类中通过事件响应,在按钮执行方法中调用其值,使用switch语句,根据不同按钮不同的值, 来响应不同的事件。 3、GameArea,游戏界面类。GameArea继承了JFrame,是俄罗斯方块的主要游 戏界面。这个类定义了GameSetting类的gameScr对象和ImagePanel类的imagepanel对象作为游戏区域面板和控制区域面板。在游戏区域,主要是根据相应格子的设置标志来显示相应的图形图片,这样就实现了俄罗斯方块的实时显 示。 4、GameSetting,游戏画布类。这个类生成的对象将作为游戏界面的方块下落区域,画布的设置为15行10列,当中的方格边长为30,类中还定义了一个二维数组int[][]scrArr作为屏幕数组,表示每一个方格。游戏区域中每一个方格是否存在游戏方块是由该方格的值来决定的,如果该方格的值为1,则表示该方格中存在游戏方块;如果该方格中的值为0,则表示该方格中不存在游戏方块,因此二维数组用于记录游戏区域中每个小方格的值。此外,类中还定义了画方块的方法,根据不同的难度画出不同颜色的方块。单击Play按钮时,系统调用initScr()方法,初始化屏幕,将屏幕数组清零。当满足满行删除的条件时,系统调用deleteFullLine()方法,进行删行加分,而且每删除十行,难度自动增加一级,方块颜色改变,并在难度显示框中相应显示。 5、GameOver,游戏结束弹出提示框类。当游戏结束时,系统弹出提示,包括玩 家分数以及询问玩家要继续游戏还是退出。 6、Help,帮助类。在游戏界面,按F1键,弹出提示窗口,获取帮助。 7、ImagePanel,背景图片类。这个类继承了JPanel类,用来作为游戏界面中控 制区域的容器,并添加图片。 8、JieMian,主界面类。这个类继承了JPanel类,作为游戏的第一个界面,也是难度选择界面。定义了9个单选按钮,当玩家未选任何难度就按Enter时,系统会弹出一个提示框,提示玩家先选难度再进入。 9、MyPanel,重写MyPanel类,使Panel的四周留空间。

俄罗斯方块游戏设计报告

C语言课程设计 报告 设计题目:俄罗斯方块游戏设计 院系: 班级: 学号: 姓名: 指导教师: 设计地点: 开课时间:

学生姓名成绩 评语: 指导教师(签名) 年月日

目录 1.设计目的和任务....................................................................................................................................... - 1 - 1.1目的: .............................................................................................................................................. - 1 - 1.2任务: .............................................................................................................................................. - 1 - 2.开发环境.................................................................................................................................................... - 1 - 2.1硬件环境:.................................................................................................................................... - 1 - 2.2软件环境:.................................................................................................................................... - 1 - 3.设计题目...................................................................................................................................................... - 2 - 3.1题目名称:.................................................................................................................................... - 2 - 3.2题目详细描述: ........................................................................................................................... - 2 - 3.3功能要求: ............................................................................................................................................ - 2 - 4.相关技术以及知识点.......................................................................................................................... - 3 - 4.1编写BLOCK类:............................................................................................................................... - 3 - 4.2 PATHGRADIENTBRUSH 类: ........................................................................................................ - 3 - 4.3 RANDOM类:.................................................................................................................................. - 3 - 4.4 GDI图形处理: ........................................................................................................................... - 3 - 5. 设计与实现 .............................................................................................................................................. - 4 - 5.1 设计流程图................................................................................................................................... - 4 - 5.2 游戏主体界面 .............................................................................................................................. - 4 - 5.3 游戏图形界面 ............................................................................................................................ - 11 - 5.4 图形的移动与消行 ................................................................................................................... - 13 - 5.5 得分的实现................................................................................................................................. - 15 -6.总结 ........................................................................................................................................................ - 16 -7.参考资料................................................................................................................................................ - 16 -

C语言俄罗斯方块游戏源代码

/*学无止境*/ #include #include #include #define ESC 27 #define UP 328 #define DOWN 336 #define LEFT 331 #define RIGHT 333 #define BLANK 32 #define BOTTOM 2 #define CANNOT 1 #define CAN 0 #define MAX 30 #define F1 315 #define ADD 43 #define EQUAL 61 #define DEC 45 #define SOUNDs 115 #define SOUNDS 83 #define PAUSEP 80 #define PAUSEp 112

void Init(); void Down(); void GoOn(); void ksdown(); void Display(int color); void Give(); int Touch(int x,int y,int dx,int dy); int GeyKey(); void Select(); void DetectFill(); void GetScores(); void Fail(); void Help(); void Quit(); void DrawBox(int x,int y,int Color); void OutTextXY(int x,int y,char *String); void DispScore(int x,int y,char Ch); void DrawNext(int Color); int Heng=12,Shu=20; /*横竖*/ int Position[MAX][MAX]; int middle[MAX][MAX]; int ActH,ActS;

俄罗斯方块C语言代码

【转载】88行代码实现俄罗斯方块游戏(含讲解) 来源:https://www.doczj.com/doc/f25435678.html,/p/8 在正式阅读本文之前,请你记得你应该用娱乐的心态来看, 本代码所使用到的技巧,在工作了的人眼里会觉得很纠结,很蛋疼,很不可理喻,很丑, 注意,是你蛋疼,不关我的事 通常,写一个俄罗斯方块,往往动不动就几百行,甚至上千行,而这里只有88行 正所谓头脑风暴,打破常规。这里将使用很多不平常的手段来减少代码 以下是Win-TC可以成功编译并执行的代码(代码保证单行长度不超过80字符,如果你是Win7系统,那请看后文): 程序代码: #include"graphics.h" #include #include int gcW = 20, gcColor[] = {DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA,MAGENTA, YELLOW}; struct tetris { int _pool[16][32], (*pool)[32], tmap[8][4][16]; int x, y, s, st, t; }gt; void trsInit() { int sp[8][4] = {{15,4369},{23,785,116,547},{71,275,113,802}, {39,305,114,562},{54,561},{99,306},{51,51},{-1}}; int *p, i, j, b; for (p = sp[0]; *p >= 0; ++p) if ( *p == 0 ) *p = p[-2]; gt.pool = >._pool[4]; for (j = 0; j < 7; ++j) for (i = 0; i < 4; ++i) for (b = 0; b < 16; ++b) gt.tmap[j+1][i][b] = (sp[j][i] & 1) * (j + 1), sp[j][i] >>= 1; memset(gt._pool, -1, sizeof(gt._pool));

C语言课程设计报告 俄罗斯方块改进版

课程设计 俄罗斯方块改进 2016年4月20 日 设计题目 学号 专业班级 学生姓名 指导教师

目录 1. 课程设计目的错误!未定义书签。 2. 功能分析错误!未定义书签。 3. 程序设计实现过程错误!未定义书签。 程序总体设计结构错误!未定义书签。 界面设计错误!未定义书签。 重要数据的数据结构设计错误!未定义书签。函数设计错误!未定义书签。 4. 运行效果错误!未定义书签。 5. 源代码详解错误!未定义书签。 6. 参考文献错误!未定义书签。

俄罗斯方块改进 1. 课程设计问题 据百度百科,俄罗斯方块(Tetris)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。游戏的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。 要求支持键盘操作和7种不同类型方块的旋转变换,并且界面上显示下一个方块的提示以及当前的玩家的得分,随着游戏的进行,等级越高,游戏难度越大,即方块的下落速度越快,相应的等级,等级越高,消去一行所得到的分数越高,为玩家提供了不同的选择。 2. 功能分析 俄罗斯方块游戏需要解决的问题包括: ⑴按任意键开始游戏,随机产生方块并自动下移 ⑵用Esc键退出游戏。 ⑶用键变换方块 ⑷用键和键左右移动方块 ⑸用键使方块加速下移 ⑹用空格键使方块暂停 ⑺能正确判断满行并消行、计分、定级别 ⑻设定游戏方块为不同形状重点: *游戏面包的数据结构:二维数组 *7种形状方块的数据结构:结构体保存每种形状方块的坐标 3. 程序设计实现过程 程序总体设计结构 首先初始化进入图形模式,进入欢迎界面,玩家按任意进入主菜单界面,按键进入游戏界面,键然后设置新的时钟中断。开始游戏后,进入该程序最核心的部分——处理和实现进行过程中的各种事件和函数。在处理中判断游戏是否结束,如果没有结束,则重新开始游戏,否则结束游戏。 详解如下: (1)游戏方块预览功能。在游戏过程中,当在游戏底板中出现一个游戏方块时,必须在游戏方块预览区域中出现下一个游戏方块,这样有利于游戏玩家控制游戏的策略。由于在此游戏中存在19种不同的游戏方块,所以在游戏方块预览区域中需要显示随机生成的游戏方块。

俄罗斯方块设计思想

南京邮电大学 通达学院 算法与数据结构设计报告( 2016/ 2017学年第二学期) 专业软件工程嵌入式 学号姓名 学号姓名 学号姓名 学号姓名 指导教师陈兴国 指导单位计算机学院计算机科学与技术系 日期2017-5-26

俄罗斯方块 一、课题内容 实现俄罗斯方块游戏。主要功能为游戏界面显示、上下左右键响应以及当前得分统计。通过该课题全面熟悉数组、字符串等的使用。掌握设计的基本方法及友好界面的设计。 课题要求: 1、游戏界面显示:下落方块和方块堆、左右移动、旋转、删除行等特效以及得分。 2、动作选择:上下左右键对应于旋转、加速、左右移动的功能。 3、得分统计判断:判定能否消除行、并统计得分总数等。 扩展要求: 1、用户数据管理。 二、算法设计与分析 I、俄罗斯方块游戏需要解决的问题包括 (1)、随机产生方块并自动下移 (2)键变体 (3)Q退出,按space暂停 II (1)、声明俄罗斯方块的结构体 (2)、函数原型声明 (3)、制作游戏窗口 (4)、制作俄罗斯方块 (5)、判断是否可动 (6)、随机产生俄罗斯方块类型序号 (7)、判断是否满行并删除满行的俄罗斯方块 (8)暂停,继续功能 (9)新游戏创建 (10)用户的创建,分数用户名的保存,查看分数

Tetris类(主要类) 该类包含m a i n方法,应为应用程序的主类。该类用来创建游戏的用户界面,事件处理功能和menu餐单,用户信息的存储。整个程序从该类的m a i n方法开始执行。 成员变量:String userName; 构造方法:Tetris 内部类:Members,Tetrisblock Tetrisblok类: 用来设计游戏界面。游戏界面显示在由Tetrisblok类创建的整个用户界面的中(Center)区,游戏的即时分数、方块的效果图及方的预览功能都在整个类里面实现。用来封装俄罗斯小方块。一个方块的属性是由方块1位置即x和y的坐标、颜色决定的。 成员变量 private int blockType; Timer timer=null; private int turnState; private int x; private int y; private int i = 0; int j = 0; static int score = 0; int flag = 0; int delay=1000; // 定义已经放下的方块x=0-12,y=0-22; int[][] map = new int[14][24]; // 方块的形状第一组代表方块类型有S、Z、L、J、I、O、T 7种第二组代表旋转几次第三四组为方块矩阵 private final int shapes[][][] 成员方法:public void newblock() public void drawwall() public void newmap() public void newgame()

C++俄罗斯方块代码(北邮版)

#include #include #include #include #include #include "colorConsole.h" //老师的文件 void begin(); //开始游戏 void frame(); //边框设定 int * getblocks(); //方块产生 void move(int line); //移动 void drawblocks(int line); //方块显示 void clearsquare(int line); //方块擦出 void turn(int line); //方块旋转 bool isavailable(int line); //判断是否能下落 void remember(int line); //记忆方块位置 void deleteline(int line); //方块满一行消除 bool ifgameover(); //判断是否游戏结束 void end(); //游戏结束 #define up 72 #define down 80 #define left 75 #define right 77 #define esc 27 HANDLE handle; int a1[4][4]={{1},{1,1,1}}; //七种方块的二维数组 int a2[4][4]={{0,1},{1,1,1}}; int a3[4][4]={{1,1},{0,1,1}}; int a4[4][4]={{0,0,1},{1,1,1}}; int a5[4][4]={{0,1,1},{1,1}}; int a6[4][4]={{1,1,1,1}}; int a7[4][4]={{1,1},{1,1}}; int row=0; //列数 int score=0; int level=0; int * block1=NULL; int * block2=NULL; int * block3=NULL; int coordinate[12][18]={0}; //坐标数组,边框12*18(最后一行,两边边框计算在内) int judge=0;

俄罗斯方块C语言程序设计报告

C语言课程设计报告 俄罗斯方块程序设计报告 一、问题描述 俄罗斯方块(Tetris,俄文:Тетрис)是一款电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。 在本次设计中,要求支持键盘操作和若干种不同类型方块的旋转变换,并且界面上显示下一个方块的提示以及当前的玩家的得分,随着游戏的进行,等级越高,游戏难度越大,即方块的下落速度越快,相应的等级,等级越高,为玩家提供了不同的选择。 二、功能分析 I、俄罗斯方块游戏需要解决的问题包括: ⑴、随机产生方块并自动下移 ⑵、用Esc键退出游戏 ⑶、用键变体 ⑷、用键和键左右移动方块 ⑸、用空格键使游戏暂停

⑹、能正确判断满行并消行、计分、定级别 ⑺、设定游戏为不同级别,级别越高难度越大 II、俄罗斯方块游戏需要设计的功能函数包括: ⑴、声明俄罗斯方块的结构体 ⑵、函数原型声明 ⑶、制作游戏窗口 ⑷、制作俄罗斯方块 ⑸、判断是否可动 ⑹、随机产生俄罗斯方块类型的序号 ⑺、打印俄罗斯方块 ⑻、清除俄罗斯方块的痕迹 ⑼、判断是否满行并删除满行的俄罗斯方块 三、程序设计 1、程序总体结构设计 (1)、游戏方块预览功能。在游戏过程中,游戏界面右侧会有预览区。由于在此游戏中存在多种不同的游戏方块,所以在游戏方块预览区域中显示随机生成的游戏方块有利于游戏玩家控制游戏的策略。 (2)、游戏方块控制功能。通过各种条件的判断,实现对游戏方块的左移、右移、自由下落、旋转功能,以及行满消除行的功能。 (3)、游戏数据显示功能。在游戏玩家进行游戏过程中,需要按照一定的游戏规则给玩家计算游戏分数。例如,消除一行加100分,游戏分数达到一定数量

C课程设计-俄罗斯方块

C#程序设计实训报告 题目:俄罗斯方块 专业____计算机科学与技术 _ 年级班别___ 计算机09-2班__ 学号 学生姓名_____ _______ 指导教师_ 成绩 2012 年 1 月

目录 一系统设计要求 (3) 课题分析............................................................................. 错误!未定义书签。 设计环境 (3) 设计思路 (3) 二课题总体框架设计 (3) 程序流程图 (4) 类的结构图 (5) 三课题实现 (6) 程序主界面 (6) 开始游戏界面 (6) 游戏结束界面 (7) 暂停游戏界面 (7) 使用说明界面 (8) 关键程序代码 (8) 四总结 (21) 设计总结 (21) 设计体会 (22)

一、系统设计要求 1.1课题分析 本游戏系统是利用C#实现的,是制作为我们所熟悉的非常简单的俄罗斯方块游戏,该系统能实现的具体功能如下: 1).能简便的开始游戏,游戏中的方块的功能与日常我们所熟悉的游戏的功能一致,各种块的设置也一致,包括方块的旋转,加速下降,左右移动,满行消去,满行消去自动加分,以及到顶游戏结束等功能; 2).能够通过对话框窗体说明各个功能的使用说明,以及一些其他功能。 3).界面简洁美观,简单易用。跟其他一般的游戏相差不大。 1.2设计环境 本程序选择Visual Studio 2010作为实验环境。 设计思路 用面向对象的方法分析系统 对于俄罗斯方块的程序制作,我们可以定义一个或者几个类,专门来描述俄罗斯方块,在这个类中,包含与之相关的方法、属性和字段,通过封装,实现其业务逻辑。其中,每一个俄罗斯方块都有相同的特征,由4个小正方形构成,有旋转,左右移动,下落的动作,整行被填满除去并计算分数而构成行的小正方体块。基中块的形状类型有7种:田、一、L、倒L、Z、倒Z、上。 在窗口中通过调用主窗体Form1当中的菜单栏来设置游戏的开始、暂停、结束、重新开始以及推出程序。还可以通过其菜单中游戏说明选项来查看游戏各个键的使用说明,还可调用帮助菜单来查看版权说明。 二、课题总体框架设计

基于单片机的俄罗斯方块设计与实现毕设论文

基于单片机的俄罗斯方块设计与实现 摘要 随着单片机在手持娱乐设备上应用的发展,越来越多的应用在电子领域中,如:电子宠物,俄罗斯方块,智能IC卡等。俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。 本文选用STC89C52RC单片机作为系统的芯片,实现人机交互、娱乐等功能。选用LCD12864实现俄罗斯方块游戏界面、图形显示;选用独立按键实现游戏控制。本设计实现的基本功能是:用按键控制目标方块的变换与移动;消除一行并计分,方块堆满时结束游戏等俄罗斯方块的基本功能。 此次设计初期是在keil和proteus联合仿真中进行,编程语言为c语言,后期是进行实物焊接。 关键词:俄罗斯方块;单片机;控制;仿真

Abstract With the development of the single chip microcomputer application on handheld entertainment equipment, more and more application in the field of electronics.Such as: electronic pet, tetris, smart IC card, etc.Tetris is a popular global TV game and PSP games, it consists of the Russian alexei palmer jeter's invention, therefore the name. This article chooses STC89C52RC single-chip microcomputer as the system of chip, realize human-machine interaction, entertainment, etc.Selection of tetris game interface, graphical display LCD12864 implementation;Choose independent control game buttons.This design is to realize the basic function of: key control target square transformation and movement;Remove a row and scoring, square pile end game tetris, such as the basic functions. The early stage of design is done in keil and proteus simulation, programming language is the c language, is late for real welding. Keywords:Russian square;Microprocessor;Control;Simulation

用vb编写图形

来个房子的吧: Private Sub Command1_Click() Dim i As Integer, n As Integer Cls n = 5 For i = 1 To 3 Print String(4 - i, " ") & String(2 * i - 1, "*") & String(10, "*") Next For i = 1 To 4 Print " * *" & String(9, " ") & "*" Next Print " " & String(15, "*") End Sub VB 填充封闭区间 Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Private Sub Command1_Click() Dim hBrush As Long Dim OldhBrush As Long hBrush = CreateSolidBrush(RGB(0, 0, 255))'要填充的颜色 OldhBrush = SelectObject(Me.hdc, hBrush) Me.Line (10, 10)-(100, 100), RGB(255, 0, 0), B FloodFill Me.hdc, 20, 20, RGB(255, 0, 0)'区间边界颜色 SelectObject Me.hdc, OldhBrush DeleteObject hBrush End Sub

java课程设计报告材料-俄罗斯方块

JAVA程序设计课程设计 之 俄罗斯方块 年级:13级 班级:T412 网络工程 指导老师:朱林 小组成员: 20138346021 许浩洋

时间: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课程设计》心得体会 ......................................

Android俄罗斯方块课程设计报告

河南城建学院 课程设计报告书 专业:计算机科学与技术 课程设计名称:《Java高级应用》 题目:俄罗斯方块 班级: 学号: 设计者: 同组人员: 指导老师: 完成时间:2016年06月08

目录 一、设计目的 (1) 二、需求分析 (1) 2.1游戏功能的需求分析 (1) 2.2方块及旋转变换需求分析 (1) 2.3游戏运行需求分析 (1) 2.4消行和分数统计需求分析 (1) 三、模块分析及设计 (1) 3.1 总体设计思想 (1) 3.2功能模块 (1) 四、制作过程及要点 (1) 4.1 游戏一个单元块的设计与实现 (1) 4.2俄罗斯方块的控制设计 (1) 4.3 俄罗斯方块的设计与实现 (1) 4.4要点分析 (1) 五、设计总结 (1) 六、参考资料 (1)

一、设计目的 在个人电脑日益普及的今天,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一,它以其趣味性强,易上手等诸多特点得到了大众的认可,因此开发此游戏软件可满足人们的一些娱乐的需求。此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏。 俄罗斯方块是家喻户晓的益智小游戏,它由俄罗斯人阿列克谢帕基特诺夫(Alexey Pazhitnov)在1984年6月利用空暇时间编写的游戏程序,故此得名。俄罗斯方块的基本规则是移动、旋转和摆放游戏随机产生的各种方块,使之排列成完整的一行或多行并且消除得分。它看似简单却变化无穷,俄罗斯方块上手极其简单,且游戏过程变化无穷,作为游戏本身很有魅力,但是要熟练掌握其中的操作和摆放技巧,难度却不低。此软件给用户提供了一个展现自己高超技艺的场所,在这里,它不仅放松自己,还能感受到游戏中的乐趣。游戏区域会从顶部不断随机落下7种方块类型的一种,游戏区域右上角有一个区域可以显示下一个方块的形状,玩家可以控制俄罗斯方块移动、旋转。通过玩家的操作,下坠物在游戏区域以“摆积木”的形式出现。下坠物在一行或多行堆满后就可以自动消除,消行后会得到相应的分数,如果当前下坠物堆积至窗口顶端,则游戏结束。

C语言课程设计俄罗斯方块源代码

1、新建“.h”头文件,将“头文件” 代码粘贴至其中, 2、新建“.c”源文件,将“源代码” 代码粘贴到其中。 3、新建空白工程,将头文件和源代码 添加进去,调试使用。 //头文件 //1.自定义枚举类型,定义7种形态的游戏方块 typedef enum tetris_shape { ZShape=0, SShape, LineShape, TShape, SquareShape, LShape, MirroredLShape }shape; //2.函数声明 //(1)操作方块函数 int maxX();//取得当前方块的最大x坐标 int minX();//取得当前方块的最小x坐标 void turn_left();//当前方块逆时针旋转90度 void turn_right(); int out_of_table(); void transform(); int leftable(); int rightable(); int downable(); void move_left(); void move_right(); //(2)操作游戏桌面的函数 int add_to_table();

void remove_full(); //(3)控制游戏函数 void new_game(); void run_game(); void next_shape(); int random(int seed); //(4)绘图函数 void paint(); void draw_table(); //(5)其他功能函数 void key_down(WPARAM wParam); void resize(); void initialize(); void finalize(); //(6)回调函数,用来处理Windows消息 LRESULT CALLBACK WndProc (HWND,UINT,WPARAM,LPARAM); //源代码 //1.文件包含 #include #include #include #include"tetris.h" //2.常量定义 #define APP_NAME "TETRIS" #define APP_TITLE "Tetris Game" #define GAMEOVER "GAME OVER" #define SHAPE_COUNT 7 #define BLOCK_COUNT 4 #define MAX_SPEED 5 #define COLUMS 10 #define ROWS 20 #define RED RGB(255,0,0)

俄罗斯方块完整源代码

//不多说,直接可以拷贝下面的东西,就可以运行。 package day04; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.applet.*; import https://www.doczj.com/doc/f25435678.html,ng.String.*; import https://www.doczj.com/doc/f25435678.html,ng.*; import java.io.*; public class ERSBlock extends JPanel implements ActionListener,KeyListener//应该是继承JPanel { static Button but[] = new Button[6]; static Button noStop = new Button("取消暂停"); static Label scoreLab = new Label("分数:"); static Label infoLab = new Label("提示:"); static Label speedLab = new Label("级数:"); static Label scoreTex = new Label("0"); static Label infoTex = new Label(" "); static Label speedTex = new Label("1");

static JFrame jf = new JFrame(); static MyTimer timer; static ImageIcon icon=new ImageIcon("resource/Block.jpg"); static JMenuBar mb = new JMenuBar(); static JMenu menu0 = new JMenu("游戏 "); static JMenu menu1 = new JMenu("帮助 "); static JMenuItem mi0 = new JMenuItem("新游戏"); static JMenuItem mi1 = new JMenuItem("退出"); static JMenuItem mi1_0 = new JMenuItem("关于"); static JDialog dlg_1; static JTextArea dlg_1_text = new JTextArea(); static int startSign= 0;//游戏开始标志 0 未开始 1 开始 2 暂停 static String butLab[] = {"开始游戏","重新开始","降低级数","提高级数","游戏暂停","退出游戏"}; static int game_body[][] = new int[19][10]; static int game_sign_x[] = new int[4];//用于记录4个方格的水平位置 static int game_sign_y[] = new int[4];//用于记录4个方格的垂直位置

相关主题
文本预览
相关文档 最新文档