Necesito urgentemente un pequeño juego Tetris escrito en VB
Privado n(3), m(3) Como Integer 'n(3) registra los números de los cuatro bloques activos en el área de juego
'm(3) registra el números del área de vista previa Los números de los cuatro bloques activos
Situación privada, situación2, linenum, t As Integer 'situation registra el estilo de bloque del área de juego
'situation2 registra el estilo de bloque del área de vista previa
'linenum registra el número de líneas eliminadas a la vez
Private Sub hidefang(a As Integer) 'Define el proceso de hacer que el bloque sea invisible p>
Seleccione Caso a
Caso 0 'a=0 hace que el bloque del área de juego sea invisible
cmdfang(n(0)).Visible = False
cmdfang(n(1)).Visible = False
cmdfang(n(2)).Visible = False
cmdfang(n(3)).Visible = False
Caso 1 'a=1 habilita la vista previa El bloque de área es invisible
cmdfangnext(m(0)).Visible = False
cmdfangnext(m(1) ).Visible = False
cmdfangnext(m (2)).Visible = False
cmdfangnext(m(3)).Visible = False
Finalizar selección
End Sub
Private Sub showfang(a As Integer) 'Define el proceso de hacer visible el bloque
Selecciona Caso a
El caso 0 'a=0 hace visible el bloque del área de juego
cmdfang(n(0)).Visible = True
cmdfang(n(1)).Visible = True p>
cmdfang(n(2)).Visible = True
cmdfang(n(3)).Visible = True
Caso 1 'a=1 hace que el bloque del área de vista previa sea invisible p> p>
cmdfangnext(m(0)).Visible = Verdadero
cmdfangnext(m(1)).Visible = Verdadero
cmdfangnext(m(2)) .Visible = True
cmdfangnext(m(3)).Visible = True
End Select
End Sub
Sub privado clearline () 'Define el proceso de eliminación de toda la línea
For i = 190 To 10 Step -10
If cmdfang(i).Visible = True And _
cmdfang( i + 1).Visible = Verdadero y _
cmdfang(i + 2).Visible = Verdadero y _
cmdfang(i + 3).Visible = Verdadero Y _ p>
cmdfang(i + 4).Visible = Verdadero Y _
cmdfang(i + 5).Visible = Verdadero Y _
cmdfang(i + 6 = Verdadero y _
cmdfang(i + 7).Visible = Verdadero y _
cmdfang(i + 8).Visible = Verdadero y _
cmdfang(i + 9).Visible = Verdadero Entonces
Para j = i + 4 Para i Paso -1
t = 1
cmdfang(j) .Visible = False
cmdfang(2 * i + 9 - j).Visible = False
Para k = 1 a 4000
DoEvents
Siguiente
t = 0
Siguiente
linenum = linenum + 1
Para j = i - 1 a 0 Paso -1
Si cmdfang(j).Visible =
Verdadero Entonces
cmdfang(j).Visible = False
cmdfang(j + 10).Visible = Verdadero
Fin si
Siguiente
clearline 'Para realizar la eliminación de varias líneas, aquí se utilizan llamadas recursivas
End If
Next
End Sub
Función privada downable() Como booleana 'Función personalizada para determinar si el bloque puede caer
Si n(0) < 190 y n(1) < 190 y n(2 ) < 190 Y n(3) < 190 Entonces
Si cmdfang(n(0) + 10).Visible = False Y _
cmdfang(n(1) + 10) .Visible = False Y _
cmdfang(n(2) + 10).Visible = False Y _
cmdfang(n(3) + 10).Visible = False Entonces
downable = True
Else
downable = False
Finalizar si
Else
downable = False
End If
Función final
Función privada leftable() As Boolean 'Función personalizada para determinar si el bloque se puede mover hacia la izquierda p>
Si n(0) Mod 10 <> 0 y n(1) Mod 10 <> 0 y n(2) Mod 10 <> 0 y n(3) Mod 10 <> 0 entonces
Si cmdfang (n(0) - 1).Visible = False Y _
cmdfang(n(1) - 1).Visible = False Y _
cmdfang( n(2) - 1).Visible = False Y _
cmdfang(n(3) - 1).Visible = False Entonces
leftable = True
Else
leftable = False
Finalizar si
Else
leftable = False
End If
Fin de función
Función privada rightable() As Boolean 'Función personalizada para determinar si el bloque se puede mover hacia la derecha
Si n(0) Mod 10 <> 9 y n(1) Mod 10 <> 9 y n(2) Mod 10 <> 9 y n(3) Mod 10 <> 9 entonces
Si cmdfang(n(0) + 1).Visible = False Y _
cmdfang(n(1) + 1).Visible = False Y _
cmdfang (n( 2) + 1).Visible = False Y _
cmdfang(n(3) + 1).Visible = False Entonces
rightable = True
Else
rightable = False
Finalizar si
Else
rightable = False
Finalizar si
Función final
Sub carga privadafangkuai() 'Define el proceso de generación aleatoria de un tipo de bloque
Seleccione Case Int(Rnd * 6)
'' '''''''''''''''''''''''''''''''''''' ''' '''''''''''''''''''''''''
Caso 0 'Esta es una barra larga Tipo Cuadrado
Seleccione Caso Int(Rnd * 2)
Caso 0
m(0) = 3
m(1) = 4
m(2) = 5
m(3) = 6
situación2 = 0
Caso 1
m( 0) = 5
m(1) = 15
m(2) = 25
m(3) = 35
situación2 = 1
Finalizar selección
''''''''''''''''''''' '''''''' '''''''''''''''''''''''''''''' '''''''''''' p>
Caso 1 'Este es un bloque cuadrado
m(0) = 4
m(1) = 5
m(2) = 14
m(3) = 15
situación2 = 2
'''''''''''''''''''' ' ''''''''''''''''''''''''''''''''''' ''''''''' '''''
Caso 2 'Este es un cuadrado positivo en forma de S
Seleccione Case Int(Rnd * 2)
Caso 0 p>
m(0) = 6
m(1) = 5
m(2) = 15
m(3) = 14
situación2 = 3
Caso 1
m(0) = 4
m(1) = 14
m(2) = 15
m(3) = 25
situación2 = 4
Finalizar selección
''' '''''''''''''''''''''''''''''''' '''''''''''' ''''''''''''''''''''
Caso 3 'Este es un bloque en forma de S inversa
Seleccione Caso Int (Rnd * 2)
Caso 0
m(0) = 4
m(1) = 5
m(2 ) = 15
m(3) = 16
situación2 = 5
Caso 1
m(0) = 5 p>
m(1) = 15
m(2) = 14
m (3) = 24
situación2 = 6
Finalizar selección
''''''''''''''''' '''''''''''''''''' '''''''''''''''''''''' ''''''''''''''''
Caso 4
'Este es un cuadrado en forma de T
Select Case Int(Rnd * 4)
Caso 0
m(0) = 4
m(1) = 5
m(2) = 6
m(3) = 15
situación2 = 7
Caso 1
m(0) = 5
m(1) = 15
m(2) = 25
m (3 ) = 14
situación2 = 8
Caso 2
m(0) = 16
m(1) = 15
p>m(2) = 14
m(3) = 5
situación2 = 9
Caso 3
m(0) = 24
m(1) = 14
m(2) = 4
m(3) = 15
situación2 = 10
Finalizar selección
''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''' '''''''' ''
Caso 5 'Este es un cuadrado recto con forma de 7
Seleccione Case Int(Rnd * 4)
Caso 0
m(0) = 4
m(1) = 5
m(2) = 15
m(3) = 25
situación2 = 11
Caso 1
m(0) = 5
m(1) = 15
m( 2) = 14
m(3) = 13
situación2 = 12
Caso 2
m (0) = 25
m(1) = 24
m(2) = 14
m(3) = 4
situación
2 = 13
Caso 3
m(0) = 14
m(1) = 4
m(2) = 5
m(3) = 6
situación2 = 14
Selección final
'''''''''' '''''''''''''''''''''''''''''''''''' '''''''' '''''''''''''''''''
Caso 6 'Este es un cuadrado invertido con forma de 7
Seleccione Case Int(Rnd * 4)
Caso 0
m(0) = 5
m(1) = 4
m(2) = 14
m(3) = 24
situación2 = 15
Caso 1
m( 0) = 15
m(1) = 5
m(2) = 4
m(3) = 3
situación2 = 16
Caso 2
m(0) = 24
m(1) = 25
m(2) = 15
m (3) = 5
situación2 = 17
Caso 3
m(0) = 4
m(1) = 14
m(2) = 15
m(3) = 16
situación2 = 18
Selección final
End Select
End Sub
Private Sub zhuan() 'Definir el proceso de rotación del bloque
Seleccionar situación de caso
'''''''''''''''''''''''''''''' '''''''''''''' ''''''''''''''''''''
Caso 0 'Este es un cuadrado largo
Si n(0) - 18 >= 2 y n(3) + 9 <=
198 Entonces
Si cmdfang(n(0) - 18).Visible = False Y _
cmdfang(n(1) - 9).Visible = False Y _
cmdfang(n(3) + 9).Visible = False Entonces
hidefang 0
n(0) = n(0) - 18
n(1) = n(1) - 9
n(3) = n(3) + 9
espectáculo 0
situación = 1
Finalizar si
Finalizar si
Caso 1
Si (n(0) + 18) Mod 10 < 8 Y (n (3) - 9) Mod 10 > 0 Entonces
Si cmdfang(n(0) + 18).Visible = False Y _
cmdfang(n(1) + 9) .Visible = Falso Y _
cmdfang(n(3) - 9).Visible = Falso Entonces
hidefang 0
n(0) = n( 0) + 18
n(1) = n(1) + 9
n(3) = n(3) - 9
espectáculo 0
situación = 0
Finalizar si
Finalizar si
'''''''''''''''' '''''''''''''''''''''''''''''''''''' '''''''' '''''''''''
Caso 2 'Este es un bloque cuadrado
''''''' ''''''''' ''''''''''''''''''''''''''''' '''''''''''''''' '''''''''
Caso 3 'Este es un cuadrado positivo en forma de S
Si n(0) - 11 > 1 Entonces
Si cmdfang(n(0) - 11).Visible = False Y _
cmdfang(n(3)
+ 2).Visible = Falso Entonces
hidefang 0
n(0) = n(0) - 11
n(2) = n(2 ) - 9
n(3) = n(3) + 2
showfang 0
situación = 4
Fin si
Fin si
Caso 4
Si (n(3) - 2) Mod 10 < 9 Entonces
Si cmdfang(n( 2) + 9).Visible = False Y _
cmdfang(n(3) - 2).Visible = False Entonces
hidefang 0
n( 0) = n(0) + 11
n(2) = n(2) + 9
n(3) = n(3) - 2
showfang 0
situación = 3
Finalizar si
Finalizar si
''''''''''' '''''''''''''''''''''''''''''''''''' '''''''' '''''''''''''''''
Caso 5 'Este es un bloque en forma de S invertida
Si n(0) - 9 > 1 Entonces
Si cmdfang(n(0) - 9).Visible = False Y _
cmdfang(n(3) - 2) Visible = False Entonces
.ocultar colmillo 0
n(0) = n(0) - 9
n(2) = n(2) - 11
n( 3) = n(3) - 2
showfang 0
situación = 6
Finalizar si
Finalizar si
Caso 6
Si (n(3) + 2) Mod 10 > 0 Entonces
Si cmdfang(n(2) + 11 ).Visible = False Y _
cmdfang(
n(3) + 2).Visible = Falso Entonces
hidefang 0
n(0) = n(0) + 9
n(2) = n(2) + 11
n(3) = n(3) + 2
espectáculo 0
situación = 5
Finalizar si
Finalizar si
''''''''''''''''''''''''' '''' ''''''''''''''''''''''''''''''''' '''''''
Caso 7 'Este es un cuadrado en forma de T
Si n(0) - 9 > 0 Entonces
Si cmdfang(n (0) - 9).Visible = False Entonces
hidefang 0
n(0) = n(0) - 9
n(2) = n(2) + 9
n(3) = n(3) - 11
showfang 0
situación = 8
Fin si
Fin Si
Caso 8
Si (n(0) + 11) Mod 10 > 0 Entonces
Si cmdfang (n(0) + 11).Visible = Falso Entonces
hidefang 0
n(0) = n(0) + 11
n(2 ) = n(2) - 11 p>
n(3) = n(3) - 9
showfang 0
situación = 9
Fin si
Finalizar si
Caso 9
Si n(0) + 9 < 199 Entonces
Si cmdfang(n (0) + 9).Visible = False Entonces
hidefang 0
n(0) = n(0) + 9
n(2) = n(2) - 9
n(3) = n(3) + 11
<p> showfang 0
situación = 10
Fin si
Fin si
Caso 10
Si ( n(0) - 11) Mod 10 < 9 Entonces
Si cmdfang(n(0) - 11).Visible = False Entonces
hidefang 0
n(0) = n(0) - 11
n(2) = n(2) + 11
n(3) = n(3) + 9
showfang 0
situación = 7
Finalizar si
Finalizar si