Red de conocimiento informático - Problemas con los teléfonos móviles - VB producción del juego de la serpiente

VB producción del juego de la serpiente

Copie el código en un formulario vacío y presione F5 para ejecutarlo.

Opción explícita

Privado con eventos Timer1 como temporizador

Privado con eventos Label1 como etiqueta

Dim GFangXiang como booleano

Atenuar HWB como único

Atenuar She() como ShenTi

Atenuar X mientras, Y mientras

Atenuar ZhuangTai(23, 23) mientras

Tipo privado ShenTi

F Mientras

X Mientras

Y Mientras

Tipo final

p>

p>

Private Sub Form_KeyDown(KeyCode como entero, Shift como entero)

Atenuar C siempre

Si KeyCode = 27, entonces finaliza

Si KeyCode = 32 Entonces

Si Timer1.Enabled = True Entonces

Timer1.Enabled = False

Label1.Visible = True

Else

Timer1.Enabled = True

Label1.Visible = False

Finalizar si

Fin si

C = UBound(Ella)

Si GFangXiang = Verdadero, entonces salga de Sub

Seleccione el código clave del caso

Caso 37

Si Ella(C) = 2 Luego Salir Sub

Ella(C).F = 0

GFangXiang = Verdadero

Caso 38

Si She(C).F = 3 Entonces Salir Sub

She(C).F = 1

GFangXiang = True

Caso 39

Si She(C).F = 0 Entonces Salir Sub

She(C).F = 2

GFangXiang = True

Caso 40

Si She(C).F = 1 Entonces Salir Sub

She(C).F = 3

GFangXiang = True

Fin de selección

End Sub

Sub privado Form_Load()

Me.AutoRedraw = True

Me.BackColor = amp; HC000amp;

Me.Fi

llColor = 255

Me.FillStyle = 0

Me.ScaleWidth = 24

Me.ScaleHeight = 24

Me.WindowState = 2

Establecer Temporizador1 = Controls.Add("VB.Timer", "Timer1")

Establecer Etiqueta1 = Controls.Add("VB.Label", "Label1")

Label1.AutoSize = True

Label1.BackStyle = 0

Label1 = "Pausa"

Label1.ForeColor = RGB(255, 255, 0)

Label1.FontSize = 50

ChuShiHua

End Sub

Sub privado Form_Resize()

En caso de error, Ir a 1:

Conmigo

Si .WindowState lt;gt 1 Entonces

.Cls

.ScaleMode = 3

HWB = .ScaleHeight / .ScaleWidth

.ScaleWidth = 24

.ScaleHeight = 24

Label1.Move (Me .ScaleWidth - Label1.Width) / 2, (Me.ScaleHeight - Label1.Height) / 2

HuaTu

Me.Line (X, Y)-(X 1, Y 1), RGB(255, 255, 0), BF

Fin si

Fin con

1:

Fin Sub

Private Sub Timer1_Timer()

Atenuar C mientras, I mientras

En caso de error, Ir a 2:

QingChu

C = UBound(Ella)

Seleccione Caso Ella(C).F

Caso 0

Si ZhuangTai(Ella(C).X - 1, Ella(C).Y) = 2 Entonces

C = C 1

ReDim Preservar Ella(C)

Ella(C).F = Ella(C - 1).F

Ella(C).X = Ella(C - 1).X - 1

Ella(C).Y = Ella(C - 1).Y

ChanShengShiWu

Ir a 1:

ElseIf ZhuangTai(She(C).X -

1, Ella(C).Y) = 1 Entonces

Ir a 2:

Finalizar si

Caso 1

Si ZhuangTai( Ella(C).X, Ella(C).Y - 1) = 2 Entonces

C = C 1

ReDim Preservar Ella(C)

Ella(C).F = Ella(C - 1).F

Ella(C).X = Ella(C - 1).X

Ella(C).Y = Ella(C - 1).Y - 1

ChanShengShiWu

Ir a 1:

ElseIf ZhuangTai(Ella(C).X, Ella(C) .Y - 1) = 1 Entonces

Ir a 2:

Finalizar si

Caso 2

Si ZhuangTai(Ella(C) .X 1, Ella(C).Y) = 2 Entonces

C = C 1

ReDim Preservar Ella(C)

Ella(C). F = Ella(C - 1).F

Ella(C).X = Ella(C - 1).X 1

Ella(C).Y = Ella(C - 1).Y

ChanShengShiWu

Ir a 1:

ElseIf ZhuangTai(Ella(C).X 1, Ella(C).Y) = 1 Luego

Ir a 2:

Finalizar si

Caso 3

Si ZhuangTai(Ella(C).X, Ella(C) .Y 1) = 2 Entonces

C = C 1

ReDim Preservar Ella(C)

Ella(C).F = Ella(C - 1 ).F

Ella(C).X = Ella(C - 1).X

Ella(C).Y = Ella(C - 1).Y 1

ChanShengShiWu

Ir a 1:

ElseIf ZhuangTai(Ella(C).X, Ella(C).Y 1) = 1 Entonces

Ir a 2:

Finalizar si

Finalizar selección

ZhuangTai(She(0).X, She(0).Y) = 0

Para I = 0 a C

Seleccione Caso Ella(I).F

Caso 0

Ella(I).X = Ella( I).X-1

Caso 1

Ella(I).Y = Ella(I).Y - 1

Caso 2

Ella(I).X = Ella(I).X 1

Caso 3

Ella(I).Y = Ella(I).Y 1

Selección final

Siguiente

TiaoZheng

1:

GFangXiang = False

ZhuangTai(Ella(C).X, Ella(C ).Y) = 1

HuaTu

Salir Sub

2:

If MsgBox("El juego ha terminado, haz clic en " Sí" Reinicia el juego, haz clic en "No"", vbYesNo, "Snake") = vbYes Entonces

ChuShiHua

De lo contrario

Finalizar

Finalizar si

End Sub

Sub privado ChuShiHua()

Me.Cls

Timer1.Enabled = True

Timer1.Interval = 200

Borrar ZhuangTai

ReDim She(2)

She(0).F = 2

Ella(0).X = 9

Ella(0).Y = 11

ZhuangTai(9, 11) = 1

Ella(1 ).F = 2

Ella(1).X = 10

Ella(1).Y = 11

ZhuangTai(10, 11) = 1

Ella(2).F = 2

Ella(2).X = 11

Ella(2).Y = 11

ZhuangTai(11, 11) = 1

HuaTu

ChanShengShiWu

End Sub

Sub privado QingChu()

Atenuar I mientras

For I = 0 To UBound(She)

Me.Line (She(I).X, She(I).Y)- (Ella(I).X 1, Ella(I).Y 1), Yo.BackColor, BF

Siguiente

Fin Sub

Sub privado HuaTu ()

Dim I As Long

For I = 0 To UBound(She)

Me.Circle (She(I).X 0.5, She( I).Y 0.5), 0.49, RGB(255, 255, 0), , , HWB

Siguiente

End Sub

Sub privado TiaoZheng()

Atenuar I siempre

Para I = 0 a UBou

nd(Ella) - 1

Ella(I).F = Ella(I 1).F

Siguiente

Fin Sub

Privado Sub ChanShengShiWu()

Temporizador aleatorio

1:

X = Int(Rnd * 24)

Y = Int( Rnd * 24)

Si ZhuangTai(X, Y) gt; 0 Entonces Ir a 1:

ZhuangTai(X, Y) = 2

Me.Line (X, Y)-(X 1, Y 1), RGB(255, 255, 0), BF

End Sub

Esto debería ser