Option Explicit On
Option Strict On
Public Class FRMFinestra
'VARIABILI GLOGALI
Dim Pausa As Boolean = False
Dim cVelocita As Integer = 10
Dim cNCasella As Integer = 1
Dim cArrey(,) As Integer = New Integer(200, 200) {}
Dim cArreyNomeCasella() As
Integer = New Integer(200) {}
Dim CDirezionePresa() As
Integer = New Integer(200) {}
Dim cMossaFatta As Integer = 0
Dim CambioGobba As Boolean = False
Dim cNumeroTotaleUnita As
Integer = 0
Dim cNPunti As Integer = 0
Dim Inizio As Boolean = True
Dim cDirezionePrecedente As
Integer = 39
Dim cDirezione As Integer
Dim cCambioDirezione As
Boolean
Dim cPosizionePunto As
Point
Dim
cDirezioneSecondaCasella() As Integer = New Integer(2) {}
'VARIABILI CHE MI
SERVONO PER LO SFONDO/MURI
Public cSenzaMuro As
Boolean = False
Public cTipoSfondo As
Integer = 0
Public cMangiato As Boolean = False
'PERCORSO RELATIVO
Dim Percorso As String = "C:\Net\Snake\Serpentone"
'TESTA
Dim cImmagineTestaDestra As
Image
Dim cImmagineTestaSinistra As
Image
Dim cImmagineTestaBasso As
Image
Dim cImmagineTestaAlto As
Image
'CODA
Dim
cImmagineCodaDestra As Image
Dim
cImmagineCodaSinistra As Image
Dim
cImmagineCodaBasso As Image
Dim
cImmagineCodaAlto As Image
'CORPO
Dim
cImmagineGobbaDestra As Image
Dim
cImmagineGobbaSinistra As Image
Dim
cImmagineGobbaDestraAlto As Image
Dim
cImmagineGobbaSinistraAlto As Image
'CURVE
Dim
cImmagineCurva5 As Image
Dim
cImmagineCurva6 As Image
Dim
cImmagineCurva7 As Image
Dim
cImmagineCurva8 As Image
'MURI
Dim
cImmagineMuro As Image
'SFONDO ERBA
'MOSCA O PUNTO
Dim
cImmagineMosca As Image
'SFONDO A DESTRA
(CON E SENZA SCRITTA)
Dim
cImmagineSfondoDestra As Image
Dim
cImmagineSfondoDestraConScritta As Image
'SFONDO CON FIUME
Public
CImmagineSfondoFiume As Image
'SFONDO CON IL
LABIRINTO
Public
CImmagineSfondoLabirinto As Image
'IMMAGINE SOPRA
IL LABIRINTO
'POSIONE
LABIRINTO
Dim
cMargineX As Integer
= 140
Dim
cMargineY As Integer
= 180
'PUNTI IN CUI
PASSA IL FIUME
Dim
PuntoLabirintoFiume() As Point = New Point(15) {}
Dim
PuntoLabirintoLabirinto() As Point = New Point(34) {}
Private Sub Form1_Load(ByVal
sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
CARICA_IMMAGINI()
CARICA_PUNTI_SFONDO()
LBLPunteggio.Visible = False
INIZIA_PARTITA()
End Sub
Private Sub CANCELLA_CORPO()
'Cancello il
corpo
For i As Integer = 1 To cNCasella
Dim
P As PictureBox = CType(Me.Controls.Item("Casella"
& i), PictureBox)
Me.Controls.Remove(P)
Next
'Cancello la
mosca (Punto)
Dim Pp As PictureBox = CType(Me.Controls.Item("Mosca"
& cNPunti - 1), PictureBox)
Me.Controls.Remove(Pp)
LBLPunteggio.Visible = False
End Sub
Private Sub RESETTA_VARIABILI()
cNCasella = 1
'cArrey() =
New Integer(200, 200) {}
For i As Integer = 0 To 120
For
ii As Integer =
0 To 120
cArrey(i, ii) = 0
Next
Next
cCambioDirezione = False
Array.Clear(cArreyNomeCasella, 0,
cArreyNomeCasella.Length)
Array.Clear(CDirezionePresa, 0,
CDirezionePresa.Length)
cMossaFatta = 0
CambioGobba = False
cNumeroTotaleUnita = 0
cNPunti = 0
Inizio = True
cDirezionePrecedente = 39
End Sub
Private Sub INIZIA_PARTITA()
CREA_LE_TRE_CASELLE_INTERMEDIE()
'Sposto la
testa e la coda in posizione iniziale
Dim
Punto As Point = New
Point(90, 70)
PICTesta.Location = Punto
PICTesta.Image = cImmagineTestaDestra
Dim
PuntoB As Point = New
Point(30, 70)
CType(Me.Controls("Casella"
& cArreyNomeCasella(1)), PictureBox).Location = PuntoB
CDirezionePresa(0) = 39
PICCoda.Location = PuntoB
PICCoda.Image = cImmagineCodaDestra
cDirezioneSecondaCasella(0) = 2
cDirezioneSecondaCasella(1) = 2
cDirezione = 39
cCambioDirezione = False
MUOVI_SERPENTE(cDirezione,
cCambioDirezione)
End Sub
Private Function COLPITO_COSE_DI_SFONDO(ByVal X As Integer, ByVal Y As Integer, ByVal Sfondo As Integer) As Boolean
'CONTROLLO
CHE NON COLPISCO IL FIUME
Select Case Sfondo
Case
Is = 1
For
i As Integer =
1 To 9
If
PuntoLabirintoFiume(i).X = X And
PuntoLabirintoFiume(i).Y = Y Then
Return True
End
If
Next
Return
False
Case
Is = 2
For
i As Integer =
1 To 34
If
PuntoLabirintoLabirinto(i).X = X And
PuntoLabirintoLabirinto(i).Y = Y Then
Return True
End
If
Next
i
Return
False
End Select
End Function
Private Sub CARICA_PUNTI_SFONDO()
PuntoLabirintoFiume(1) = New Point(10, 110)
PuntoLabirintoFiume(2) = New Point(20, 110)
PuntoLabirintoFiume(3) = New Point(30, 110)
PuntoLabirintoFiume(4) = New Point(60, 110)
PuntoLabirintoFiume(5) = New Point(70, 110)
PuntoLabirintoFiume(6) = New Point(80, 110)
PuntoLabirintoFiume(7) = New Point(90, 110)
PuntoLabirintoFiume(8) = New Point(120, 110)
PuntoLabirintoFiume(9) = New Point(130, 110)
'Prima linea
orizzontale
PuntoLabirintoLabirinto(1) = New Point(80, 60)
PuntoLabirintoLabirinto(2) = New Point(90, 60)
PuntoLabirintoLabirinto(3) = New Point(100, 60)
PuntoLabirintoLabirinto(4) = New Point(110, 60)
PuntoLabirintoLabirinto(5) = New Point(60, 60)
PuntoLabirintoLabirinto(6) = New Point(50, 60)
PuntoLabirintoLabirinto(7) = New Point(40, 60)
PuntoLabirintoLabirinto(8) = New Point(30, 60)
'Seconda
linea orizzontale
PuntoLabirintoLabirinto(9) = New Point(80, 160)
PuntoLabirintoLabirinto(10) = New Point(90, 160)
PuntoLabirintoLabirinto(11) = New Point(100, 160)
PuntoLabirintoLabirinto(12) = New Point(110, 160)
PuntoLabirintoLabirinto(13) = New Point(60, 160)
PuntoLabirintoLabirinto(14) = New Point(50, 160)
PuntoLabirintoLabirinto(15) = New Point(40, 160)
PuntoLabirintoLabirinto(16) = New Point(30, 160)
'Linea
Verticale sinistra
PuntoLabirintoLabirinto(17) = New Point(30, 70)
PuntoLabirintoLabirinto(18) = New Point(30, 80)
PuntoLabirintoLabirinto(19) = New Point(30, 90)
PuntoLabirintoLabirinto(20) = New Point(30, 100)
PuntoLabirintoLabirinto(22) = New Point(30, 120)
PuntoLabirintoLabirinto(23) = New Point(30, 130)
PuntoLabirintoLabirinto(24) = New Point(30, 140)
PuntoLabirintoLabirinto(25) = New Point(30, 150)
'Linea
Verticale Destra
PuntoLabirintoLabirinto(26) = New Point(110, 70)
PuntoLabirintoLabirinto(27) = New Point(110, 80)
PuntoLabirintoLabirinto(28) = New Point(110, 90)
PuntoLabirintoLabirinto(29) = New Point(110, 100)
PuntoLabirintoLabirinto(30) = New Point(110, 120)
PuntoLabirintoLabirinto(31) = New Point(110, 130)
PuntoLabirintoLabirinto(32) = New Point(110, 140)
PuntoLabirintoLabirinto(33) = New Point(110, 150)
End Sub
Private Sub CAMBIO_DIREZIONE_TASTO_PREMUTO(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
'Pausa
If
e.KeyValue = 13 Then
If
Pausa = True Then
Pausa = False
Tempo.Enabled = True
LBLPausa.Visible = False
Else
Pausa = True
Tempo.Enabled = False
LBLPausa.Visible = True
End
If
End If
If
Pausa = False Then
'Variabile
che mi permette di sapere se ho appena iniziato la partita
If
Inizio = True Then
PICOpzioni.Image =
cImmagineSfondoDestra
PICOpzioni.Visible = True
LBLPunteggio.Visible = True
Inizio = False
CREA_PUNTO()
Tempo.Enabled = True
End
If
cMossaFatta = cMossaFatta + 1
If
cMossaFatta = 1 Then
'Direzione
che prende la testa
Dim
Direzione As Integer
= e.KeyValue
'Se
la mossa non è consentita non consento di modificare la direzione intrapresa
If
MOSSA_CONSENTITA(Direzione) = False Then Exit Sub
'Controllo
se ho cambiato direzione
If
cDirezionePrecedente = Direzione Then
cCambioDirezione = False
Else
cCambioDirezione = True
cDirezionePrecedente =
Direzione
cDirezione = Direzione
End
If
End
If
End If
End Sub
Private Sub PREPARA_PER_NUOVA_PARTITA()
CANCELLA_CORPO()
RESETTA_VARIABILI()
INIZIA_PARTITA()
'Cambio lo
sfondo
PICOpzioni.Image =
cImmagineSfondoDestraConScritta
End Sub
Private Function MOSSA_CONSENTITA(ByVal
Direzione As Integer)
As Boolean
' Alto (38)
'Sinistra
(39) Destra (37)
' Basso (40)
If
DIREZIONE = 38 And cDirezionePrecedente = 40 Then
Return
False
End If
If
DIREZIONE = 40 And cDirezionePrecedente = 38 Then
Return
False
End If
If
Direzione = 39 And cDirezionePrecedente = 37 Then
Return False
End If
If
Direzione = 37 And cDirezionePrecedente = 39 Then
Return
False
End If
'CONTROLLO
CHE IL TASTO PREMUTO VADA BENE
If
Direzione = 37 Or Direzione = 38 Or Direzione = 39 Or
Direzione = 40 Then
Return
True
Else
Return
False
End If
End Function
Private Sub MUOVI_SERPENTE(ByVal
DIREZIONE As Integer,
ByVal CambioDirezione As
Boolean)
'Salvo la
posizione della testa e dell'ultima casella
Dim
PosizionePrima As Point = PICTesta.Location
Dim
PosizioneUltima As Point = CType(Me.Controls("Casella" & cArreyNomeCasella(1)),
PictureBox).Location
Dim
DirezioneCoda As Integer
= CDirezionePresa(0)
CDirezionePresa(cNCasella - 1) =
DIREZIONE
'Salvo le
direzioni
cDirezioneSecondaCasella(1) =
cDirezioneSecondaCasella(0)
cDirezioneSecondaCasella(0) = DIREZIONE
Dim
DirezioneSecondaCasella As Integer = cDirezioneSecondaCasella(1)
Dim
Risposta As Integer
= 0
'Sposto la
testa
SPOSTA_IMMAGINE(PICTesta, DIREZIONE)
CAMBIA_BITMAP_TESTA(DIREZIONE)
'Se ho
mangiato una casella (nel giro prima)
'aspetto a
muovere la coda ma creo una casella
'nello spazio
lasciato libero
If
cMangiato = False Then
'Sposto
la coda
SPOSTA_IMMAGINE(PICCoda,
PosizioneUltima)
CAMBIA_BITMAP_CODA(DirezioneCoda)
Else
CREA_CASELLA(PosizioneUltima.X,
PosizioneUltima.Y, DirezioneCoda)
'Faccio
fare un giro a tutte le posizione
'dell'arrey
per poter aver le giuste posizioni
For
i As Integer =
0 To cNCasella - 3
CAMBIA_POSIZIONI_ARREY()
Next
End If
'Sposto
l'ultima casella nella posizione lasciata dalla testa
SPOSTA_IMMAGINE(CType(Me.Controls("Casella" & cArreyNomeCasella(1)),
PictureBox), PosizionePrima)
CAMBIA_BITMAP_CORPO((CType(Me.Controls("Casella" & cArreyNomeCasella(1)),
PictureBox)), DirezioneSecondaCasella)
'Creo la
curva se ho cambiato direzione
If
CambioDirezione = True Then
CREA_BITMAP_CURVA(((CType(Me.Controls("Casella" & cArreyNomeCasella(1)),
PictureBox))), DIREZIONE, DirezioneSecondaCasella)
End If
'Elimino il
vecchio punto e ne creo uno nuovo
If
CONTROLLA_SE_MANGIO() = True Then
Dim
P As PictureBox = CType(Me.Controls.Item("Mosca"
& cNPunti - 1), PictureBox)
Me.Controls.Remove(P)
CREA_PUNTO()
cMangiato = True
Else
cMangiato = False
End If
'1=Tutto a
posto 0= collisione con il corpo
'2=collisione
con il muro
Dim
Collisione As Integer
= CONTROLLA_COLLISIONE_AVVENUTA()
'Controllo la
fine del gioco
If
Collisione = 0 Or (Collisione = 2 And cSenzaMuro = False)
Then
Tempo.Enabled = False
Risposta = MsgBox("Hai fatto " & cNPunti & " punti" & vbCrLf & "Vuoi iniziare un altra partita?",
MsgBoxStyle.YesNo, "Game Over")
'Se
accetto di volere giocare un altra partita
If
Risposta = 6 Then
PREPARA_PER_NUOVA_PARTITA()
End If
'Senza
Pareti
ElseIf
(Collisione = 2 And cSenzaMuro = True) Then
SPOSTA_TESTA_SENZA_MURO(PICTesta,
DIREZIONE)
End If
'CAMBIO
POSIZIONE ARREY
'Se ho gia
riavviato ho già cambiato la posizione dell'arrey, quindi non lo invero più
If
Risposta <> 6 Then
'Sposto
la posizione nell'arrey
CAMBIA_POSIZIONI_ARREY()
End If
'Segno il
numero di punti fatti
If
Inizio = True Then
LBLPunteggio.Text = CStr(cNPunti)
Else
LBLPunteggio.Text = CStr(cNPunti - 1)
End If
End Sub
Private Sub CAMBIA_TESTA(ByVal
Direzione As Integer)
SPOSTA_IMMAGINE(PICTesta, Direzione)
End Sub
'Mi ritorna 1 =
tutto a posto 0= collisione con il corpo 2=collisione con il muro
Private Function CONTROLLA_COLLISIONE_AVVENUTA() As Integer
Dim
PUNTOTESTA As Point = PICTesta.Location
For I As Integer = 1 To cNCasella - 1
Dim
PUNTOCORPO As Point = (CType(Me.Controls("Casella"
& cArreyNomeCasella(I)), PictureBox).Location)
If
PUNTOCORPO = PUNTOTESTA Then Return 0
Next
If
PICCoda.Location = PUNTOTESTA Then Return 0
'Controllo
che ho colpito le pareti
'Se ho
sforato con la testa i muri
If
PUNTOTESTA.X = 0 Then Return
2
If
PUNTOTESTA.X = cMargineX Then Return 2
If
PUNTOTESTA.Y = 30 Then Return
2
If
PUNTOTESTA.Y = cMargineY Then Return 2
'SFONDO FIUME
If
COLPITO_COSE_DI_SFONDO(PUNTOTESTA.X, PUNTOTESTA.Y, cTipoSfondo) = True Then
Return
0
End If
'If
cTipoSfondo = 1 Then
'If
PUNTOTESTA.Y = 110 Then
'If
PUNTOTESTA.X = 40 Or PUNTOTESTA.X = 50 Or PUNTOTESTA.X = 100 Or PUNTOTESTA.X =
110 Then
'Else
'Return 0
'End If
'End If
'End If
'Se non ho
colpito niente ritorno il risultato di falso
Return
1
End Function
Private Sub CREA_BITMAP_CURVA(ByVal
Immagine As PictureBox, ByVal DirezioneAdesso As Integer, ByVal
DirezionePrecedente As Integer)
' Alto (38)
'Sinistra
(39) Destra (37)
' Basso (40)
Dim a As String = Immagine.Name
If
DirezionePrecedente = 40 Then
If
DirezioneAdesso = 37 Then
Immagine.Image =
cImmagineCurva5
Else
Immagine.Image =
cImmagineCurva7
End
If
End If
If DirezionePrecedente
= 37 Then
If
DirezioneAdesso = 38 Then
Immagine.Image =
cImmagineCurva7
Else
Immagine.Image =
cImmagineCurva8
End
If
End If
If
DirezionePrecedente = 38 Then
If
DirezioneAdesso = 37 Then
Immagine.Image =
cImmagineCurva6
Else
Immagine.Image =
cImmagineCurva8
End
If
End If
If
DirezionePrecedente = 39 Then
If
DirezioneAdesso = 38 Then
Immagine.Image =
cImmagineCurva5
Else
Immagine.Image =
cImmagineCurva6
End
If
End If
End Sub
Private Sub CAMBIA_POSIZIONI_ARREY()
'Salvo il
primo valore nella cella 0
'(come se lo
salvassi)
CDirezionePresa(0) = CDirezionePresa(1)
'Faccio
scalare tutti i valori di 1
For i As Integer = 1 To cNCasella
CDirezionePresa(i) =
CDirezionePresa(i + 1)
Next
'Salvo la
direzione presa
CDirezionePresa(cNCasella - 1) =
CDirezionePresa(0)
'Salvo il
primo valore nella cella 0
cArreyNomeCasella(0) =
cArreyNomeCasella(1)
'Faccio
scalare tutti i valori di 1
For i As Integer = 1 To cNCasella
cArreyNomeCasella(i) =
cArreyNomeCasella(i + 1)
Next
cArreyNomeCasella(cNCasella - 1) =
cArreyNomeCasella(0)
End Sub
Private Sub CREA_CASELLA(ByVal
X As Integer, ByVal Y As Integer, ByVal
Direzione As Integer)
Dim
Casella As String
= "Casella" & cNCasella
Dim P As PictureBox = New
System.Windows.Forms.PictureBox
P.Height = 10
P.Width = 10
P.Name = Casella
Dim
Punto As Point = New
Point(X, Y)
P.Location = Punto
P.BringToFront()
CDirezionePresa(cNCasella) = Direzione
If
CambioGobba = True Then
P.Image = cImmagineGobbaSinistra
CambioGobba = False
Else
P.Image = cImmagineGobbaDestra
CambioGobba = True
End If
P.BringToFront()
Me.Controls.Add(P)
P.BringToFront()
cArreyNomeCasella(cNCasella) =
cNCasella
cNCasella = cNCasella + 1
End Sub
'Mi SPOSTA il
valore dell'immagine in base alla velocita e alla direzione
' Alto (38)
'Sinistra
(37) Destra (39)
' Basso (40)
Private Sub SPOSTA_IMMAGINE(ByVal
ImmaginePictureBox As PictureBox, ByVal Direzione As Integer)
Dim
NuovoPunto As Point =
ImmaginePictureBox.Location
Select Case Direzione
'Alto
Case
Is = 38
NuovoPunto.Y = NuovoPunto.Y -
(cVelocita)
'Basso
Case
Is = 40
NuovoPunto.Y = NuovoPunto.Y + (cVelocita)
'Destra
Case
Is = 39
NuovoPunto.X = NuovoPunto.X +
(cVelocita)
'Sinistra
Case
Is = 37
NuovoPunto.X = NuovoPunto.X -
(cVelocita)
End Select
ImmaginePictureBox.Location =
NuovoPunto
End Sub
Private Sub SPOSTA_TESTA_SENZA_MURO(ByVal
ImmaginePictureBox As PictureBox, ByVal Direzione As Integer)
Dim
NuovoPunto As Point =
ImmaginePictureBox.Location
Select Case Direzione
'Alto
Case
Is = 38
NuovoPunto.Y = 170
'Basso
Case
Is = 40
NuovoPunto.Y = 40
'Destra
Case
Is = 39
NuovoPunto.X = 10
'Sinistra
Case
Is = 37
NuovoPunto.X = 130
End Select
ImmaginePictureBox.Location =
NuovoPunto
End Sub
Private Sub CREA_PUNTO()
Dim
NRandom As Random = New
Random
Dim X As Integer
Dim Y As Integer
Dim
PuntoOk As Boolean
= False
Do Until PuntoOk = True
PuntoOk = True
'Trovo un
numero X e Y che vada bene
'X
X = NRandom.Next(cMargineX - 10)
If CBool(X Mod 10) = False And ((X)
<> 0) And COLPITO_COSE_DI_SFONDO(X, Y,
cTipoSfondo) = False Then
Else
Dim
ERRORE As Integer
= 0
Do
Until CBool(X Mod 10) = False And ((X) <> 0) And
COLPITO_COSE_DI_SFONDO(X, Y, cTipoSfondo) = False
X = NRandom.Next(cMargineX
- 10)
ERRORE = ERRORE + 1
If
ERRORE = 200 Then CREA_PUNTO()
Loop
End
If
'Y
Y = NRandom.Next(cMargineY - 10)
If CBool(Y Mod 10) = False And ((Y)
<> 0) And (Y > 30) And COLPITO_COSE_DI_SFONDO(X, Y, cTipoSfondo) = False Then
Else
Do
Until CBool(Y Mod 10) = False And ((Y) <> 0) And
(Y > 30) And COLPITO_COSE_DI_SFONDO(X, Y,
cTipoSfondo) = False
Y = NRandom.Next(cMargineY
- 10)
Loop
End
If
'Riavvio
la funzione se il numero estratto e sopra il serpente/testa/coda
cPosizionePunto.X = X
cPosizionePunto.Y = Y
For
i As Integer =
1 To cNCasella - 1
Dim
PuntoCorpo As Point
Try
PuntoCorpo = (CType(Me.Controls("Casella" & i),
PictureBox).Location)
Catch
ex As Exception
PuntoOk = False
Exit
For
End
Try
If
cPosizionePunto = PuntoCorpo Then
PuntoOk = False
Exit
For
End
If
Next
If
cPosizionePunto = PICTesta.Location Then
PuntoOk = False
If
cPosizionePunto = PICCoda.Location Then PuntoOk
= False
Loop
'Aggiungo la
casella da mangiare
Dim P As PictureBox = New
System.Windows.Forms.PictureBox
P.Height = 10
P.Width = 10
P.Name = "Mosca"
& cNPunti
Dim
Punto As Point = New
Point(X, Y)
P.Location = Punto
P.Image = cImmagineMosca
P.BringToFront()
Me.Controls.Add(P)
P.BringToFront()
cNPunti = cNPunti + 1
End Sub
Private Function CONTROLLA_SE_MANGIO() As Boolean
If
PICTesta.Location = cPosizionePunto Then
Return
True
Else
Return
False
End If
End Function
Private Sub CAMBIA_BITMAP_TESTA(ByVal
Direzione As Integer)
Select Case Direzione
'Alto
Case
Is = 38
PICTesta.Image =
cImmagineTestaAlto
'Basso
Case
Is = 40
PICTesta.Image =
cImmagineTestaBasso
'Destra
Case
Is = 39
PICTesta.Image =
cImmagineTestaDestra
'Sinistra
Case
Is = 37
PICTesta.Image =
cImmagineTestaSinistra
End Select
End Sub
Private Sub CAMBIA_BITMAP_CORPO(ByVal
ImmagineCorpo As PictureBox, ByVal Direzione As Integer)
If
CambioGobba = True Then
Select
Case Direzione
'Alto
Case
Is = 38
ImmagineCorpo.Image =
cImmagineGobbaDestraAlto
'Basso
Case
Is = 40
ImmagineCorpo.Image =
cImmagineGobbaDestraAlto
'Destra
Case
Is = 39
ImmagineCorpo.Image =
cImmagineGobbaDestra
'Sinistra
Case Is = 37
ImmagineCorpo.Image =
cImmagineGobbaDestra
End
Select
CambioGobba = False
Else
Select
Case Direzione
'Alto
Case
Is = 38
ImmagineCorpo.Image =
cImmagineGobbaSinistraAlto
'Basso
Case
Is = 40
ImmagineCorpo.Image =
cImmagineGobbaSinistraAlto
'Destra
Case
Is = 39
ImmagineCorpo.Image =
cImmagineGobbaSinistra
'Sinistra
Case
Is = 37
ImmagineCorpo.Image =
cImmagineGobbaSinistra
End
Select
CambioGobba = True
End If
End Sub
Private Sub CAMBIA_BITMAP_CODA(ByVal
Direzione As Integer)
Select Case Direzione
'Alto
Case
Is = 3
PICCoda.Image =
cImmagineCodaAlto
Case
Is = 38
PICCoda.Image =
cImmagineCodaAlto
'Basso
Case
Is = 4
PICCoda.Image =
cImmagineCodaBasso
Case
Is = 40
PICCoda.Image =
cImmagineCodaBasso
'Destra
Case
Is = 1
PICCoda.Image = cImmagineCodaDestra
Case
Is = 39
PICCoda.Image =
cImmagineCodaDestra
'Sinistra
Case
Is = 2
PICCoda.Image =
cImmagineCodaSinistra
Case
Is = 37
PICCoda.Image =
cImmagineCodaSinistra
End Select
End Sub
Private Sub SPOSTA_IMMAGINE(ByVal
ImmaginePictureBox As PictureBox, ByVal Coordinate As
Point)
ImmaginePictureBox.Location =
Coordinate
End Sub
Private Sub CARICA_IMMAGINI()
'Carico le
immagini che mi servono per l'inizio del serpente
cImmagineTestaDestra = PTESTAD.Image
cImmagineCodaDestra = PCODAD.Image
PICTesta.Image = cImmagineTestaDestra
PICCoda.Image = cImmagineCodaDestra
cImmagineGobbaDestra = PCORPOD.Image
cImmagineGobbaSinistra = PCORPOS.Image
'Carico
Immagini Testa
cImmagineTestaSinistra = PTESTAS.Image
cImmagineTestaDestra = PTESTAD.Image
cImmagineTestaBasso = PTESTAB.Image
cImmagineTestaAlto = PTESTAA.Image
'Carico
Immagini Coda
cImmagineCodaSinistra = PCODAS.Image
cImmagineCodaBasso = PCODAB.Image
cImmagineCodaAlto = PCODAA.Image
'Carico
Immagini Corpo
cImmagineGobbaDestraAlto =
PCORPOA.Image
cImmagineGobbaSinistraAlto =
PCORPOB.Image
'Carico le
immagini delle curve
cImmagineCurva5 = PCURVA5.Image
cImmagineCurva6 = PCURVA6.Image
cImmagineCurva7 = PCURVA7.Image
cImmagineCurva8 = PCURVA8.Image
'Carico le
immagini del Muro
cImmagineMuro = PMUROORIZZONTALE.Image
PICMuroAlto.Image = cImmagineMuro
PICMuroBasso.Image = cImmagineMuro
'Carico le
immagini del Muro
cImmagineMuro = PMUROVERTICALE.Image
PICMuroSinistra.Image = cImmagineMuro
PICMuroDestra.Image = cImmagineMuro
'Immagini
muro
PICSopraMuro.Image = PSNAKE.Image
PICOpzioni.Image = PSFONDOSCRITTA.Image
'Immagine sfondo
cImmagineSfondoDestra =
PSFONDONORMALE.Image
Me.BackgroundImage
= PERBA.Image
'Immagine
Mosca
cImmagineMosca = PPUNTO.Image
cImmagineSfondoDestraConScritta =
PSFONDOSCRITTA.Image
'Immagine
Sfondo Fiume
CImmagineSfondoFiume =
PSFONDOFIUME.Image
'Sfondo
Labirinto
CImmagineSfondoLabirinto =
PSFONDOLABIRINTO.Image
End Sub
Private Sub CREA_LE_TRE_CASELLE_INTERMEDIE()
CREA_CASELLA(30, 70, 1)
cArrey(1, 1) = 30
cArrey(1, 2) = 70
CREA_CASELLA(40, 70, 1)
cArrey(2, 1) = 40
cArrey(2, 2) = 70
CREA_CASELLA(50, 70, 1)
cArrey(3, 1) = 50
cArrey(3, 2) = 70
CREA_CASELLA(60, 70, 1)
cArrey(4, 1) = 60
cArrey(4, 2) = 70
CREA_CASELLA(70, 70, 1)
cArrey(4, 1) = 70
cArrey(4, 2) = 70
CREA_CASELLA(80, 70, 1)
cArrey(5, 1) = 80
cArrey(5, 2) = 70
End Sub
Private Sub
Tempo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Tempo.Tick
MUOVI_SERPENTE(cDirezione,
cCambioDirezione)
cCambioDirezione = False
cMossaFatta = 0
End Sub
Private Sub
CMDNuovaPartita_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
CMDNuovaPartita.Click
PREPARA_PER_NUOVA_PARTITA()
End Sub
Private Sub
CMDOpzioni_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
CMDOpzioni.Click
Form2.CARICA_IMPOSTAZIONI_DA_PRIMA()
Form2.Visible = True
Form2.Show()
End Sub
Private Sub
CMDCrediti_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
CMDCrediti.Click
MsgBox("Francesco Belloni. " & vbCrLf &
"Francobelloni85@libero.it",
MsgBoxStyle.Information, "Power By")
End Sub
Private Sub
CMDEsci_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
CMDEsci.Click
End
End Sub
Private Sub
TastiToolStripMenuItem_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
TastiToolStripMenuItem.Click
MsgBox("Movimento: Freccie direzionali" &
vbCrLf & "Pausa: Invio",
MsgBoxStyle.Information, "TASTI")
End Sub
End Class