分享
 
 
 

俄罗斯方块的VB实现,部分代码!

王朝vb·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Option Explicit

Dim i As Integer

Dim time_hour, time_minute, time_second As Integer

Private Sub Form_KeyPress(KeyAscii As Integer)

Select Case KeyAscii

Case 105

Call turn(next_block_kind)

Case 106

Call move_left(next_block_kind)

Case 108

Call move_right(next_block_kind)

Case 107

Call down_block(next_block_kind)

End Select

End Sub

Public Sub Form_Load()

Timer_speed.Enabled = False

Call image_position '排列方块

Call face '设置窗体属性

bx = 3

by = 0

Label_hour.Caption = 0

Label_minute.Caption = 0

'Call next_block

next_block_kind = 7

Timer_speed.Enabled = True

Me.KeyPreview = True

End Sub

Private Sub menu_about_Click()

Load about

about.Visible = True

End Sub

Private Sub timer_now_Timer() '计时

time_second = time_second + 1

If time_second = 60 Then

time_minute = time_minute + 1

time_second = 0

Label_minute.Caption = time_minute

End If

If time_minute = 60 Then

time_hour = time_hour + 1

time_minute = 0

Label_hour.Caption = time_hour

End If

Label_second.Caption = time_second

End Sub

Private Sub Timer_speed_Timer()

Call down_block(next_block_kind)

End Sub

Option Explicit

Public bx, by As Integer

Public next_block_kind As Integer

Public p As Integer

Public q As Integer

Public a As Integer

Public n As Integer

Public m As Integer

'Public turn_kind As Integer

Sub show1(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

End Sub

Sub show2(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 12).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

End Sub

Sub show3(X, Y As Integer)

Form_main.Image_block(Y * 10 + X + 2).Visible = True

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

End Sub

Sub show4(X, Y As Integer)

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 12).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

End Sub

Sub show5(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 12).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

End Sub

Sub show6(X, Y As Integer)

Form_main.Image_block(Y * 10 + X + 2).Visible = True

Form_main.Image_block(Y * 10 + X + 12).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

End Sub

Sub show7(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 2).Visible = True

Form_main.Image_block(Y * 10 + X + 3).Visible = True

End Sub

Sub show8(X, Y As Integer)

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

Form_main.Image_block(Y * 10 + X + 20).Visible = True

End Sub

Sub show9(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

Form_main.Image_block(Y * 10 + X + 21).Visible = True

End Sub

Sub show10(X, Y As Integer)

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

Form_main.Image_block(Y * 10 + X + 21).Visible = True

End Sub

Sub show11(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

Form_main.Image_block(Y * 10 + X + 20).Visible = True

End Sub

Sub show12(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 2).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

End Sub

Sub show13(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 20).Visible = True

End Sub

Sub show14(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 2).Visible = True

Form_main.Image_block(Y * 10 + X + 12).Visible = True

End Sub

Sub show15(X, Y As Integer)

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

Form_main.Image_block(Y * 10 + X + 21).Visible = True

Form_main.Image_block(Y * 10 + X + 20).Visible = True

End Sub

Sub show16(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 11).Visible = True

Form_main.Image_block(Y * 10 + X + 21).Visible = True

End Sub

Sub show17(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 1).Visible = True

Form_main.Image_block(Y * 10 + X + 2).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

End Sub

Sub show18(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 20).Visible = True

Form_main.Image_block(Y * 10 + X + 21).Visible = True

End Sub

Sub show19(X, Y As Integer)

Form_main.Image_block(Y * 10 + X).Visible = True

Form_main.Image_block(Y * 10 + X + 10).Visible = True

Form_main.Image_block(Y * 10 + X + 20).Visible = True

Form_main.Image_block(Y * 10 + X + 30).Visible = True

End Sub

Sub next_block() '产生下一个方块(random)

Randomize

next_block_kind = Int((19 * Rnd) + 1)

Call is_full(next_block_kind)

End Sub

Sub down_block(block_k As Integer) '方块下落,慢

Call fall_buttom(block_k)

Select Case block_k

Case 1

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

by = by + 1

Call show1(bx, by)

Case 2

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

by = by + 1

Call show2(bx, by)

Case 3

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

by = by + 1

Call show3(bx, by)

Case 4

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

by = by + 1

Call show4(bx, by)

Case 5

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

by = by + 1

Call show5(bx, by)

Case 6

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

by = by + 1

Call show6(bx, by)

Case 7

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 3).Visible = False

by = by + 1

Call show7(bx, by)

Case 8

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

by = by + 1

Call show8(bx, by)

Case 9

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

by = by + 1

Call show9(bx, by)

Case 10

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

by = by + 1

Call show10(bx, by)

Case 11

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

by = by + 1

Call show11(bx, by)

Case 12

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 2).Visible = False

by = by + 1

Call show12(bx, by)

Case 13

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

by = by + 1

Call show13(bx, by)

Case 14

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 2).Visible = False

by = by + 1

Call show14(bx, by)

Case 15

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

by = by + 1

Call show15(bx, by)

Case 16

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

by = by + 1

Call show16(bx, by)

Case 17

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 2).Visible = False

by = by + 1

Call show17(bx, by)

Case 18

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

by = by + 1

Call show18(bx, by)

Case 19

Form_main.Image_block(by * 10 + bx).Visible = False

by = by + 1

Call show19(bx, by)

End Select

End Sub

Sub clear(b_kinds As Integer, now_y As Integer) '满行后清行

' Dim i As Integer

'Dim q As Integer

Select Case b_kinds

Case 1, 2, 3, 4, 5, 6, 12, 14, 17

p = 1

Case 7

p = 0

Case 8, 9, 10, 11, 13, 16, 15, 18

p = 2

Case 19

p = 3

End Select

For q = 0 To p

If canClear(now_y + q) Then

Call clearOneLine(now_y + q)

End If

Next

End Sub

Function canClear(l As Integer) As Boolean

'Dim a As Integer

For a = (l * 10 + 0) To (l * 10 + 9)

If Form_main.Image_block(a).Visible = False Then

canClear = False

Exit Function

End If

Next

canClear = True

End Function

Sub clearOneLine(lineNum As Integer)

'Dim n As Integer

'Dim m As Integer

For n = lineNum To 1 Step -1

For m = 0 To 9

Form_main.Image_block(n * 10 + m).Visible = Form_main.Image_block((n - 1) * 10 + m).Visible

Next

Next

End Sub

Sub is_full(block_end As Integer) '是否游戏结束

Select Case block_end

Case 1 '田字型

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 2 'Z字型

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Or Form_main.Image_block(by * 10 + 15).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 3 '反Z字型

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 4 '土字型

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 5 'L字型

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 6 '反L字型

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 7 '一字型

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 8

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 9

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 10

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 11 '一

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 12

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 13

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 14

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 15

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 16

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 17

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 18

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

Case 19

If Form_main.Image_block(by * 10 + 3).Visible = True Or Form_main.Image_block(by * 10 + 4).Visible = True Or Form_main.Image_block(by * 10 + 13).Visible = True Or Form_main.Image_block(by * 10 + 14).Visible = True Then

Form_main.Timer_speed.Enabled = False

Form_main.timer_now.Enabled = False

MsgBox "游戏结束!^_^"

Else

Form_main.Timer_speed = True

End If

End Select

End Sub

Sub fall_buttom(block_l As Integer) '是否达到底部

Select Case block_l

Case 1 '正方形

If by = 15 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 20).Visible = True Or Form_main.Image_block(by * 10 + bx + 21).Visible Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 2 'Z字形

If by = 15 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 10).Visible = True Or Form_main.Image_block(by * 10 + bx + 21).Visible = True Or Form_main.Image_block(by * 10 + bx + 22).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 3 '反Z字型

If by = 15 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 12).Visible = True Or Form_main.Image_block(by * 10 + bx + 20).Visible = True Or Form_main.Image_block(by * 10 + bx + 21).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 4 '土字型

If by = 15 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 21).Visible = True Or Form_main.Image_block(by * 10 + bx + 20).Visible = True Or Form_main.Image_block(by * 10 + bx + 22).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 5 'L字型

If by = 15 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 21).Visible = True Or Form_main.Image_block(by * 10 + bx + 20).Visible = True Or Form_main.Image_block(by * 10 + bx + 22).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 6 '反L字型

If by = 15 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 21).Visible = True Or Form_main.Image_block(by * 10 + bx + 20).Visible = True Or Form_main.Image_block(by * 10 + bx + 22).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 7 '一字型

If by = 16 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 10).Visible = True Or Form_main.Image_block(by * 10 + bx + 11).Visible = True Or Form_main.Image_block(by * 10 + bx + 12).Visible = True Or Form_main.Image_block(by * 10 + bx + 13).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 8

If by = 14 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 30).Visible = True Or Form_main.Image_block(by * 10 + bx + 21).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 9

If by = 14 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 20).Visible = True Or Form_main.Image_block(by * 10 + bx + 31).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 10

If by = 14 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 20).Visible = True Or Form_main.Image_block(by * 10 + bx + 31).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 11

If by = 14 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 30).Visible = True Or Form_main.Image_block(by * 10 + bx + 21).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 12

If by = 15 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 10).Visible = True Or Form_main.Image_block(by * 10 + bx + 21).Visible = True Or Form_main.Image_block(by * 10 + bx + 12).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 13

If by = 14 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 30).Visible = True Or Form_main.Image_block(by * 10 + bx + 11).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 14

If by = 15 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 10).Visible = True Or Form_main.Image_block(by * 10 + bx + 11).Visible = True Or Form_main.Image_block(by * 10 + bx + 22).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 15

If by = 14 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 30).Visible = True Or Form_main.Image_block(by * 10 + bx + 31).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 16

If by = 14 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 10).Visible = True Or Form_main.Image_block(by * 10 + bx + 31).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 17

If by = 15 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 20).Visible = True Or Form_main.Image_block(by * 10 + bx + 11).Visible = True Or Form_main.Image_block(by * 10 + bx + 12).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 18

If by = 14 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 30).Visible = True Or Form_main.Image_block(by * 10 + bx + 31).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

Case 19

If by = 13 Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

ElseIf Form_main.Image_block(by * 10 + bx + 40).Visible = True Then

Call clear(block_l, by)

bx = 3

by = 0

Form_main.Timer_speed.Enabled = False

Call next_block

Else

End If

End Select

End Sub

Sub add_score()

End Sub

Sub add_level()

End Sub

Sub block_play(block_kind As Integer) '显示于play_field的方块

Select Case block_kind

Case 2

Call show2(bx, by) 'Z字型

Case 3

Call show3(bx, by) '反Z字型

Case 4

Call show4(bx, by) '土字型

Case 5

Call show5(bx, by) 'L字型

Case 6

Call show6(bx, by) '反L字型

Case 7

Call show7(bx, by) '一字型

Case 1

Call show1(bx, by) '正方形

Case 8

Call show8(bx, by)

Case 9

Call show9(bx, by)

Case 10

Call show10(bx, by)

Case 11

Call show11(bx, by)

Case 12

Call show12(bx, by)

Case 13

Call show13(bx, by)

Case 14

Call show14(bx, by)

Case 15

Call show15(bx, by)

Case 16

Call show16(bx, by)

Case 17

Call show17(bx, by)

Case 18

Call show18(bx, by)

Case 19

Call show19(bx, by)

End Select

End Sub

Sub move_left(move_left_kind)

Select Case move_left_kind

Case 1 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

bx = bx - 1

Call show1(bx, by)

End If

End If

Case 2 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 10).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

bx = bx - 1

Call show2(bx, by)

End If

End If

Case 3 'ok

If Form_main.Image_block(by * 10 + bx).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

bx = bx - 1

Call show3(bx, by)

End If

End If

Case 4 'ok

If Form_main.Image_block(by * 10 + bx).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

bx = bx - 1

Call show4(bx, by)

End If

End If

Case 5 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

bx = bx - 1

Call show5(bx, by)

End If

End If

Case 6

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

bx = bx - 1

Call show6(bx, by)

End If

End If

Case 7 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 3).Visible = False

bx = bx - 1

Call show7(bx, by)

End If

End If

Case 8 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 19).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx - 1

Call show8(bx, by)

End If

End If

Case 9 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 20).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

bx = bx - 1

Call show9(bx, by)

End If

End If

Case 10 'ok

If Form_main.Image_block(by * 10 + bx).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 20).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

bx = bx - 1

Call show10(bx, by)

End If

End If

Case 11 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 19).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx - 1

Call show11(bx, by)

End If

End If

Case 12 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 10).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

bx = bx - 1

Call show12(bx, by)

End If

End If

Case 13 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 19).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx - 1

Call show13(bx, by)

End If

End If

Case 14 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

bx = bx - 1

Call show14(bx, by)

End If

End If

Case 15 'ok

If Form_main.Image_block(by * 10 + bx).Visible = False And Form_main.Image_block(by * 10 + bx + 10).Visible = False And Form_main.Image_block(by * 10 + bx + 19).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

bx = bx - 1

Call show15(bx, by)

End If

End If

Case 16 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 10).Visible = False And Form_main.Image_block(by * 10 + bx + 20).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

bx = bx - 1

Call show16(bx, by)

End If

End If

Case 17 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

bx = bx - 1

Call show17(bx, by)

End If

End If

Case 18 'ok

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 19).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

bx = bx - 1

Call show18(bx, by)

End If

End If

Case 19

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 19).Visible = False And Form_main.Image_block(by * 10 + bx + 29).Visible = False Then

If bx >= 1 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Form_main.Image_block(by * 10 + bx + 30).Visible = False

bx = bx - 1

Call show19(bx, by)

End If

End If

End Select

End Sub

Sub move_right(move_right_kind As Integer)

Select Case move_right_kind

Case 1 'ok

If Form_main.Image_block(by * 10 + bx + 2).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False Then

If bx < 8 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

bx = bx + 1

Call show1(bx, by)

End If

End If

Case 2 'ok

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 2).Visible = False And Form_main.Image_block(by * 10 + bx + 13).Visible = False Then

If bx < 7 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

bx = bx + 1

Call show2(bx, by)

End If

End If

End If

Case 3 'ok

If Form_main.Image_block(by * 10 + bx + 3).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False Then

If bx < 7 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

bx = bx + 1

Call show3(bx, by)

End If

End If

Case 4

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 2).Visible = False And Form_main.Image_block(by * 10 + bx + 13).Visible = False Then

If bx < 7 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

bx = bx + 1

Call show4(bx, by)

End If

End If

End If

Case 5

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 13).Visible = False Then

If bx < 7 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

bx = bx + 1

Call show5(bx, by)

End If

End If

End If

Case 6

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 3).Visible = False And Form_main.Image_block(by * 10 + bx + 13).Visible = False Then

If bx < 7 Then

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

bx = bx + 1

Call show6(bx, by)

End If

End If

End If

Case 7

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 4).Visible = False Then

If bx < 6 Then

Form_main.Image_block(by * 10 + bx).Visible = False

bx = bx + 1

Call show7(bx, by)

End If

End If

End If

Case 8

If Form_main.Image_block(by * 10 + bx + 2).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx + 21).Visible = False Then

If bx < 8 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx + 1

Call show8(bx, by)

End If

End If

Case 9

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx + 22).Visible = False Then

If bx < 8 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

bx = bx + 1

Call show9(bx, by)

End If

End If

End If

Case 10

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 2).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx + 22).Visible = False Then

If bx < 8 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

bx = bx + 1

Call show10(bx, by)

End If

End If

End If

Case 11

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx + 21).Visible = False Then

If bx < 8 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx + 1

Call show11(bx, by)

End If

End If

Case 12

If Form_main.Image_block(by * 10 + bx + 3).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False Then

If bx < 7 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

bx = bx + 1

Call show12(bx, by)

End If

End If

Case 13

If Form_main.Image_block(by * 10 + bx + 2).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False And Form_main.Image_block(by * 10 + bx + 21).Visible = False Then

If bx < 8 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx + 1

Call show13(bx, by)

End If

End If

Case 14

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 3).Visible = False And Form_main.Image_block(by * 10 + bx + 13).Visible = False Then

If bx < 7 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

bx = bx + 1

Call show14(bx, by)

End If

End If

End If

Case 15

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 2).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx + 22).Visible = False Then

If bx < 8 Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx + 1

Call show15(bx, by)

End If

End If

End If

Case 16

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 2).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx + 22).Visible = False Then

If bx < 8 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

bx = bx + 1

Call show16(bx, by)

End If

End If

End If

Case 17

If Form_main.Image_block(by * 10 + bx + 3).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False Then

If bx < 7 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

bx = bx + 1

Call show17(bx, by)

End If

End If

Case 18

If (by * 10 + bx + 22) < 169 Then

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False And Form_main.Image_block(by * 10 + bx + 22).Visible = False Then

If bx < 8 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx + 1

Call show18(bx, by)

End If

End If

End If

Case 19

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False And Form_main.Image_block(by * 10 + bx + 21).Visible = False And Form_main.Image_block(by * 10 + bx + 31).Visible = False Then

If bx < 9 Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Form_main.Image_block(by * 10 + bx + 30).Visible = False

bx = bx + 1

Call show19(bx, by)

End If

End If

End Select

'Form_main.Timer_speed.Enabled = True

End Sub

Sub turn(turn_kind As Integer)

Select Case turn_kind

Case 1

Case 2

If by * 10 + bx + 21 < 169 Then

If Form_main.Image_block(by * 10 + bx + 2).Visible = False And Form_main.Image_block(by * 10 + bx + 21).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

bx = bx + 1

Call show8(bx, by)

next_block_kind = 8

End If

End If

Case 3

If by * 10 + bx + 22 < 169 Then

If Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx + 22).Visible = False Then

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

bx = bx + 1

Call show9(bx, by)

next_block_kind = 9

End If

End If

Case 4

If by * 10 + bx + 21 < 169 Then

If Form_main.Image_block(by * 10 + bx + 21).Visible = False Then

Form_main.Image_block(by * 10 + bx + 12).Visible = False

Call show10(bx, by)

next_block_kind = 10

End If

End If

Case 5

If by * 10 + bx + 21 < 169 Then

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 20).Visible = False And Form_main.Image_block(by * 10 + bx + 21).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

Call show15(bx, by)

next_block_kind = 15

End If

End If

Case 6

If by * 10 + bx + 21 < 169 Then

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 22).Visible = False Then

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 11).Visible = False

bx = bx + 1

Call show16(bx, by)

next_block_kind = 16

End If

End If

Case 7

If by * 10 + bx + 21 < 169 Then

If Form_main.Image_block(by * 10 + bx - 9).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False And Form_main.Image_block(by * 10 + bx + 21).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 3).Visible = False

bx = bx + 1

by = by - 1

Call show19(bx, by)

next_block_kind = 19

End If

End If

Case 8

If by * 10 + bx + 20 < 169 And bx >= 1 Then

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx).Visible = False Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx - 1

Call show2(bx, by)

next_block_kind = 2

End If

Else

If Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx).Visible = False Then

Form_main.Image_block(by * 10 + bx + 10).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Call show2(bx, by)

next_block_kind = 2

End If

End If

Case 9

If by * 10 + bx + 20 < 169 And bx >= 1 Then

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

Form_main.Image_block(by * 10 + bx + 11).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

bx = bx - 1

Call show3(bx, by)

next_block_kind = 3

End If

Else

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 2).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

Call show3(bx, by)

next_block_kind = 3

End If

End If

Case 10

If by * 10 + bx + 21 < 169 And bx <= 7 Then

If Form_main.Image_block(by * 10 + bx + 12).Visible = False Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

by = by + 1

Call show12(bx, by)

next_block_kind = 12

End If

Else

If Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 20).Visible = False Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

by = by + 1

bx = bx - 1

Call show12(bx, by)

next_block_kind = 12

End If

End If

Case 11

If by * 10 + bx + 20 < 169 And bx >= 1 Then

If Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx - 1

Call show4(bx, by)

next_block_kind = 4

End If

Else

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False Then

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Form_main.Image_block(by * 10 + bx).Visible = False

Call show4(bx, by)

next_block_kind = 4

End If

End If

Case 12

If Form_main.Image_block(by * 10 + bx - 9).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

by = by - 1

bx = bx + 1

Call show11(bx, by)

next_block_kind = 11

End If

Case 13

If by * 10 + bx + 21 < 169 And bx >= 1 Then

If Form_main.Image_block(by * 10 + bx - 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

bx = bx - 1

Call show5(bx, by)

next_block_kind = 5

End If

Else

If Form_main.Image_block(by * 10 + bx + 11).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Call show5(bx, by)

next_block_kind = 5

End If

End If

Case 14

If by * 10 + bx + 12 < 169 Then

If Form_main.Image_block(by * 10 + bx - 9).Visible = False And Form_main.Image_block(by * 10 + bx - 8).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 2).Visible = False

Form_main.Image_block(by * 10 + bx + 12).Visible = False

by = by - 1

bx = bx + 1

Call show13(bx, by)

next_block_kind = 13

End If

End If

Case 15

If by * 10 + bx + 22 < 169 And bx <= 7 Then

If Form_main.Image_block(by * 10 + bx + 10).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx + 22).Visible = False Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

by = by + 1

Call show14(bx, by)

next_block_kind = 14

End If

Else

If Form_main.Image_block(by * 10 + bx + 10).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

by = by + 1

bx = bx - 1

Call show14(bx, by)

next_block_kind = 14

End If

End If

Case 16

If by * 10 + bx + 19 < 169 And bx >= 1 Then

If Form_main.Image_block(by * 10 + bx + 10).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 19).Visible = False Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

by = by + 1

bx = bx - 1

Call show17(bx, by)

next_block_kind = 17

End If

Else

If Form_main.Image_block(by * 10 + bx + 10).Visible = False And Form_main.Image_block(by * 10 + bx + 20).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

by = by + 1

Call show17(bx, by)

next_block_kind = 17

End If

End If

Case 17

If by * 10 + bx + 11 < 169 Then

If Form_main.Image_block(by * 10 + bx - 10).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False Then

Form_main.Image_block(by * 10 + bx + 1).Visible = False

Form_main.Image_block(by * 10 + bx + 2).Visible = False

by = by - 1

Call show18(bx, by)

next_block_kind = 18

End If

End If

Case 18

If by * 10 + bx + 21 < 169 And bx <= 7 Then

If Form_main.Image_block(by * 10 + bx + 2).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

Call show6(bx, by)

next_block_kind = 6

End If

Else

If Form_main.Image_block(by * 10 + bx + 1).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Form_main.Image_block(by * 10 + bx + 21).Visible = False

bx = bx - 1

Call show6(bx, by)

next_block_kind = 6

End If

End If

Case 19

If by * 10 + bx + 30 < 169 And bx >= 1 And bx <= 7 Then

If Form_main.Image_block(by * 10 + bx + 9).Visible = False And Form_main.Image_block(by * 10 + bx + 11).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Form_main.Image_block(by * 10 + bx + 30).Visible = False

bx = bx - 1

by = by + 1

Call show7(bx, by)

next_block_kind = 7

End If

ElseIf by * 10 + bx + 30 < 169 And bx < 1 Then

If Form_main.Image_block(by * 10 + bx + 11).Visible = False And Form_main.Image_block(by * 10 + bx + 12).Visible = False And Form_main.Image_block(by * 10 + bx + 13).Visible = False Then

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Form_main.Image_block(by * 10 + bx + 30).Visible = False

Form_main.Image_block(by * 10 + bx).Visible = False

by = by + 1

Call show7(bx, by)

next_block_kind = 7

End If

ElseIf by * 10 + bx + 30 < 169 And bx = 8 Then

If Form_main.Image_block(by * 10 + bx + 7).Visible = False And Form_main.Image_block(by * 10 + bx + 8).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Form_main.Image_block(by * 10 + bx + 30).Visible = False

by = by + 1

bx = bx - 2

Call show7(bx, by)

next_block_kind = 7

End If

ElseIf by * 10 + bx + 30 < 169 And bx = 9 Then

If Form_main.Image_block(by * 10 + bx + 7).Visible = False And Form_main.Image_block(by * 10 + bx + 8).Visible = False And Form_main.Image_block(by * 10 + bx + 9).Visible = False Then

Form_main.Image_block(by * 10 + bx).Visible = False

Form_main.Image_block(by * 10 + bx + 20).Visible = False

Form_main.Image_block(by * 10 + bx + 30).Visible = False

by = by + 1

bx = bx - 3

Call show7(bx, by)

next_block_kind = 7

End If

End If

End Select

End Sub

Option Explicit

Dim block_i, block_j As Integer

Dim next_i, next_j As Integer

Sub face()

Form_main.Height = 8420 '设置窗体的大小

Form_main.Width = 8000

Form_main.Picture_play_field.Left = 0 '设置容器位置

Form_main.Picture_play_field.Top = -480

Form_main.Picture_play_field.Height = 8200 '设置容器大小

Form_main.Picture_play_field.Width = 4850

End Sub

Sub image_position()

For block_i = 0 To 16

For block_j = 0 To 9

Form_main.Image_block(block_i * 10 + block_j).Left = block_j * 480

Form_main.Image_block(block_i * 10 + block_j).Top = block_i * 480

Form_main.Image_block(block_i * 10 + block_j).Visible = False

Next

Next

For next_i = 0 To 3

For next_j = 0 To 3

Form_main.Image_next(next_i * 4 + next_j).Left = next_j * 480

Form_main.Image_next(next_i * 4 + next_j).Top = next_i * 480

Form_main.Image_next(next_i * 4 + next_j).Visible = False

Next

Next

End Sub

'十七种方块

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有