Option Explicit On
Option Strict On
Public Class Form1
'Creo il mazzo dalla classe creata
Public NuovoMazzo As Mazzo = New Mazzo
'Variabile che uso per memorizzare il numero di giocatori
Public CNumeroGiocatori As Integer = 6
Public cNumeroGiocatoriGlobali As Integer = CNumeroGiocatori
'Mi salvo le carte che metto nel mezzo
Public cTavolo() As String = New String(5) {}
'Mi indica quale giocatore č il mazziere
Public cMazziere As Integer = 0
'Mi indica quante mani ho giocato
Public CNumeroDiMano As Integer = 4
' ---------- variabili statistiche ---------------
'Variabile che uso per segnare le statistiche-partita
Public cNGiocatoreVincente() As Integer = New Integer(6) {}
'Variabili che uso per le statistiche globali
Public CGiocatoreVincente As Integer = 0
Public CNumeroNiente As Integer = 0
Public CNumeroCoppia As Integer = 0
Public CNumeroDoppiaCoppia As Integer = 0
Public CNumeroTris As Integer = 0
Public CNumeroFull As Integer = 0
Public CNumeroScala As Integer = 0
Public CNumeroColore As Integer = 0
Public CNumeroPoker As Integer = 0
'--------------------------------------------------
'Imposto i soldi iniziali
Public Soldi_Iniziali As Integer = 25
'Classe che uso per salvare le variabili di ogni giocatore
Public cGiocatore() As ClasseGIOCATORE = New ClasseGIOCATORE(6) {}
'Decido la puntata del piatto
Public cPiccoloBuio As Integer = 1
'Classe per gestire il piatto
Public cPiatto As ClassePIATTO = New ClassePIATTO()
'Variabili che uso per gli stati di un giocatore
Public cProntoAGiocare As String = "In attesa di giocare"
'Public cEntroInGioco As String = "Entro in gioco"
Public cGameOver As String = "Game Over"
Public cLascio As String = "Lascio"
Public cSTRPiccoloBuio As String = "Piccolo Buio"
Public cGioco As String = "Gioco "
Public cFish As String = " fish"
Public cAbbandonato As String = "Abbandonato"
Public cVedo As String = "Vedo"
Public cAllIn As String = "All in"
'Public cNGiocatoreTemporizzato As Integer = 0
Public cSecondaCarta_PrimoGiro As Boolean = True
Public cPuntata As Integer = 0
Public cPuntataGiocatore As Integer = 0
Public cNGiocatoreRilancio As Integer = 0
Public cRilancio As Boolean = False
Public ciRilancio As Integer = 0
Public cRilancioGlobale As Boolean = False
Public cArreyGiocatori() As Integer = New Integer(0) {}
Public cNGiocatoreTurno As Integer = 0
'Public cGiocatoriRimasti As Integer = 0
Public cFine_Turno As Boolean = False
Public cFine_TurnoUMANO As Boolean = False
Public cTurnoRilancio As Boolean = False
Public cUltimoMazziere As Integer = 0
Dim cSoldiNonDati As Integer = 0
'Percentuale Rischio
Dim cPercentuale As Integer = 5
Dim cModificocRilancio As Integer = 0
Dim cGiocatoreVincitoreAllIn As Boolean
Public CDifferenzaDaAggiungereNelPiatto As Integer = 0
Dim TempoMassimo As Integer = 500
Dim cNPartite As Integer = 0
Private Sub INIZIO_PARTITA()
'Posiziono i giocatori in base al loro numero
POSIZIONA_GIOCATORI(CNumeroGiocatori)
CREA_GIOCATORI(CNumeroGiocatori)
CREA_ARREY_POSIZIONE_GIOCATORI()
End Sub
Public Sub CREA_GIOCATORI(ByVal NumeroGiocatori As Integer)
For i As Integer = 0 To NumeroGiocatori
cGiocatore(i) = New ClasseGIOCATORE(Soldi_Iniziali)
Dim Rand As Random = New Random
'Imposta il coraggio/imprudenza dell'avversario
Dim NCasuale As Integer = Rand.Next(0, 40)
cGiocatore(i).cCoraggio = NCasuale
'cGiocatore(i) = New ClasseGIOCATORE(Soldi_Iniziali)
cGiocatore(i).IMPOSTA_STATO_GIOCATORE(cGioco)
REFRESH_SOLDI_GIOCATORE(i)
Next
End Sub
'Creo un Arrey con le posizione dei Giocatori
Public Sub CREA_ARREY_POSIZIONE_GIOCATORI()
Dim ii As Integer = 0
For i As Integer = cMazziere + 1 To CNumeroGiocatori
If cGiocatore(i).RITORNA_STATO_GIOCATORE <> cGameOver Then
cArreyGiocatori(ii) = i
ii += +1
End If
Next
For i As Integer = 0 To cMazziere
If cGiocatore(i).RITORNA_STATO_GIOCATORE <> cGameOver Then
cArreyGiocatori(ii) = i
ii += +1
End If
Next
End Sub
Public Sub PICCOLO_BUIO(ByVal Giocatore_Piccolo_buio As Integer)
cGiocatore(Giocatore_Piccolo_buio).SCALA_SOLDI(cPiccoloBuio)
cGiocatore(Giocatore_Piccolo_buio).IMPOSTA_PUNTATA(0, cPiccoloBuio)
cGiocatore(Giocatore_Piccolo_buio).IMPOSTA_STATO_GIOCATORE(cGioco)
cPiatto.AGGIUNGI_SOLDI(cPiccoloBuio)
End Sub
Public Sub REFRESH_SOLDI_GIOCATORE(ByVal NumeroGiocatore As Integer)
CType(Me.Controls.Item("SoldiG" & NumeroGiocatore), Label).Text = CStr(cGiocatore(NumeroGiocatore).RITORNA_SOLDI_GIOCATORE)
End Sub
Public Sub REFRESH_SOLDI_PIATTO()
LBLPiatto.Text = CStr(cPiatto.RITORNA_VALORE_PIATTO)
'TextBox2.Text &= CStr(cPiatto.RITORNA_VALORE_PIATTO) & vbCrLf
End Sub
Public Function RITORNA_NOME_COMPLETO_DA_SIGLA(ByVal Sigla As String) As String
Dim PrimaParte As String = Sigla.Substring(0, 1)
Dim SecondaParte As String = ""
Dim Terzaparte As String = ""
Dim LungehezzaSigla As Integer = Sigla.Length
SecondaParte = (Sigla.Substring(1, (1)))
If LungehezzaSigla = 3 Then
Terzaparte = Sigla.Substring(2, 1)
End If
Dim Risultato As String = ""
Select Case PrimaParte
Case Is = "R"
Risultato = "Scala Reale di "
Case Is = "P"
Risultato = "Poker di "
Case Is = "F"
Risultato = "Full di "
Case Is = "L"
Risultato = "Colore di "
Case Is = "T"
Risultato = "Tris di "
Case Is = "S"
Risultato = "Scala di "
Case Is = "D"
Risultato = "Doppia c. di "
Case Is = "C"
Risultato = "Coppia di "
Case Is = "N"
Risultato = "Niente"
End Select
If PrimaParte = "L" Then
Select Case SecondaParte
Case Is = "Q"
Risultato &= "quadri"
Case Is = "P"
Risultato &= "picche"
Case Is = "F"
Risultato &= "fiori"
Case Is = "C"
Risultato &= "cuori"
End Select
Else
Select Case SecondaParte
Case Is = "A"
Risultato &= "asso"
Case Is = "K"
Risultato &= "re"
Case Is = "Q"
Risultato &= "donna"
Case Is = "J"
Risultato &= "jack"
Case Is = "D"
Risultato &= "10"
Case Is = "9"
Risultato &= "9"
Case Is = "8"
Risultato &= "8"
Case Is = "7"
Risultato &= "7"
Case Is = "6"
Risultato &= "6"
Case Is = "5"
Risultato &= "5"
Case Is = "4"
Risultato &= "4"
Case Is = "3"
Risultato &= "3"
Case Is = "2"
Risultato &= "2"
End Select
If Terzaparte <> "" Then
Select Case Terzaparte
Case Is = "A"
Risultato &= " e asso"
Case Is = "K"
Risultato &= " e re"
Case Is = "Q"
Risultato &= " e donna"
Case Is = "J"
Risultato &= " e jack"
Case Is = "D"
Risultato &= " e 10"
Case Is = "9"
Risultato &= " e 9"
Case Is = "8"
Risultato &= " e 8"
Case Is = "7"
Risultato &= " e 7"
Case Is = "6"
Risultato &= " e 6"
Case Is = "5"
Risultato &= " e 5"
Case Is = "4"
Risultato &= " e 4"
Case Is = "3"
Risultato &= " e 3"
Case Is = "2"
Risultato &= " e 2"
End Select
End If
End If
Return Risultato
End Function
Private Sub NUOVA_MANO()
'Creo un nuovo mazzo ad ogni partita
NuovoMazzo = New Mazzo()
'Distribuisco le prime 2 carte coperte
cMazziere = cArreyGiocatori(cArreyGiocatori.Length - 1)
DISTRIBUISCI_CARTE(CNumeroGiocatori, cMazziere, 1)
DISTRIBUISCI_CARTE(CNumeroGiocatori, cMazziere, 2)
'Controllo che cosa hanno i giocatori
'CONTROLLA_CARTE()
'Faccio girare il mazziere, e l'immagine; alla fine del giro riparto da 0 (l'umano)
MUOVI_MAZZIERE()
End Sub
Public Sub MUOVI_MAZZIERE()
Dim POSIZIONE_MAZZO As Point
POSIZIONE_MAZZO = (CType(Me.Controls.Item("LBLNomeGiocatore" & cMazziere), Label).Location)
POSIZIONE_MAZZO.X = POSIZIONE_MAZZO.X - 9
POSIZIONE_MAZZO.Y = POSIZIONE_MAZZO.Y + 2
PICMazziere.Location = POSIZIONE_MAZZO
'cMazziere = cMazziere + 1
'If cMazziere = CNumeroGiocatori + 1 Then
'cMazziere = 0
'End If
End Sub
Public Function PRESENZA_SCALA(ByVal Carte As String) As String
'Carte scritte in lettere es. Asso ->A
Dim CarteA() As String = New String(6) {}
'Carte trasformate in numeri es. asso ->13
Dim CartaB() As Integer = New Integer(6) {}
'Carte trasformate in numeri con l'asso cha vale 1
Dim CartaC() As Integer = New Integer(6) {}
Dim NumeroCarte As Integer = 0
Dim LunghezzaStringa As Integer = Carte.Length
'Trasformo in numero le carte e le salvo nell'arrey B
For i As Integer = 0 To CInt(LunghezzaStringa) Step 2
If i = LunghezzaStringa Then Exit For
CarteA(NumeroCarte) = Carte.Substring(i, 1)
CartaB(NumeroCarte) = RITORNA_NUMERO_DAL_TIPO_DI_CARTA(CarteA(NumeroCarte), True)
'Cambio da asso 13 ad asso 1
If CartaB(NumeroCarte) = 13 Then
CartaC(NumeroCarte) = 0
Else
CartaC(NumeroCarte) = CartaB(NumeroCarte)
End If
NumeroCarte += +1
Next
Dim Indice As Integer = 13
Dim IndicePresenzaScala As Integer = 0
Dim PresenzaCartaSuccessiva As Boolean = False
'---------ARREY B ----------
'Cerco nell'arrey B partendo dal piů n piů alto se c'č una scala
For i As Integer = 13 To 0 Step -1
PresenzaCartaSuccessiva = False
For ii As Integer = 0 To NumeroCarte - 1
If i = CartaB(ii) Then
PresenzaCartaSuccessiva = True
Exit For
End If
Next
If PresenzaCartaSuccessiva = True Then
IndicePresenzaScala += +1
Else
IndicePresenzaScala = 0
End If
'Se trovo la scala
If IndicePresenzaScala = 5 Then
Dim RisultatoNumerico As Integer = i + 5
Dim RisultatoStringa As String = ""
'Riconverto il numero in lettera
If RisultatoNumerico = 14 Then
RisultatoStringa = "A"
ElseIf RisultatoNumerico = 13 Then
RisultatoStringa = "K"
ElseIf RisultatoNumerico = 12 Then
RisultatoStringa = "Q"
ElseIf RisultatoNumerico = 11 Then
RisultatoStringa = "J"
ElseIf RisultatoNumerico = 10 Then
RisultatoStringa = "D"
Else
RisultatoStringa = CStr(RisultatoNumerico)
End If
Return RisultatoStringa
End If
Next
'---------ARREY C ----------
'Cerco nell'arrey C partendo dal piů n piů alto se c'č una scala
For i As Integer = 4 To 0 Step -1
PresenzaCartaSuccessiva = False
For ii As Integer = 0 To NumeroCarte - 1
If i = CartaC(ii) Then
PresenzaCartaSuccessiva = True
Exit For
End If
Next
If PresenzaCartaSuccessiva = True Then
IndicePresenzaScala += +1
Else
IndicePresenzaScala = 0
End If
'Se trovo la scala
If IndicePresenzaScala = 5 Then
Dim RisultatoNumerico As Integer = i + 5
Dim RisultatoStringa As String = ""
RisultatoStringa = CStr(RisultatoNumerico)
Return RisultatoStringa
End If
Next
Return ""
End Function
Public Function TROVA_N_VINCITORE(ByVal TrovaIlSecondo As Boolean) As String
Dim CartaGiocatore As Integer = 0
Dim Ngiocatori As Integer = cArreyGiocatori.Length - 1
Dim PunteggioGiocatore() As Integer = New Integer(cNumeroGiocatoriGlobali) {}
Dim Giocatore As String() = New String(cNumeroGiocatoriGlobali) {}
For ii As Integer = 0 To Ngiocatori
'Numero Giocatore
Dim i As Integer = cArreyGiocatori(ii)
Dim StatoGiocatore As String = cGiocatore(i).RITORNA_STATO_GIOCATORE
'Cerco tra le carte (se il giocatore non ha abbandonato) il vincitore
If StatoGiocatore = cGioco Or StatoGiocatore = cAllIn Or StatoGiocatore = cVedo Then
Giocatore(i) = cGiocatore(i).RITORNA_STRINGA_CARTE_GIOCATORE
Dim CartaUnoGiocatore As String = cGiocatore(i).RITORNA_CARTE_GIOCATORE
Dim CartaDueGiocatore As String = ""
CartaDueGiocatore = CartaUnoGiocatore.Substring(2, 1)
CartaUnoGiocatore = CartaUnoGiocatore.Substring(0, 1)
Dim NCartaAltaGiocatore As Integer = RITORNA_NUMERO_DAL_TIPO_DI_CARTA(CartaUnoGiocatore, True)
Dim NCartaAltaGiocatore2 As Integer = RITORNA_NUMERO_DAL_TIPO_DI_CARTA(CartaDueGiocatore, True)
Dim CartaAlta As Integer = 0
If NCartaAltaGiocatore >= NCartaAltaGiocatore2 Then
CartaAlta = NCartaAltaGiocatore
Else
CartaAlta = NCartaAltaGiocatore2
End If
'Scompongo la mano del giocatore in 2 e assegno un punteggio in base alle carte che ha
'Es. coppia (10 punti) di 3 (3 punti) = 13 punti
'Es. Doppiacoppia (20 punti) di 3 (3 punti) = 23 punti
'Tipo di punteggio che ho fatto
Dim CartaA As String = Giocatore(i).Substring(0, 1)
'Con che carta ho fatto il punto
Dim CartaB As String = Giocatore(i).Substring(1, 1)
Dim SecondaCartaDoppia As Integer = 0
If CartaA = "D" Or CartaA = "F" Then
Dim CartaC As String = Giocatore(i).Substring(2, 1)
SecondaCartaDoppia = RITORNA_NUMERO_DAL_TIPO_DI_CARTA(CartaC, True)
End If
CartaGiocatore = (RITORNA_NUMERO_DAL_TIPO_DI_CARTA(CartaA, False)) * 10000000
CartaGiocatore += (RITORNA_NUMERO_DAL_TIPO_DI_CARTA(CartaB, True)) * 10000 + SecondaCartaDoppia * 10 + CartaAlta
'Salvo i risultati in questo arrey
PunteggioGiocatore(i) = CartaGiocatore
End If
Next
Dim NGiocatorePrimoP As String = ""
Dim NGiocatoreSecondoP As String = ""
Dim PunteggioPrimo As Integer = 0
Dim PunteggioSecondo As Integer = 0
'Trovo il primo punteggio
For i As Integer = 0 To cNumeroGiocatoriGlobali
If PunteggioGiocatore(i) >= PunteggioPrimo Then
If PunteggioGiocatore(i) = PunteggioPrimo Then
NGiocatorePrimoP &= (i)
Else
NGiocatorePrimoP = CStr(i)
PunteggioPrimo = PunteggioGiocatore(i)
End If
End If
Next
'Trovo il secondo punteggio
For i As Integer = 0 To Ngiocatori
If PunteggioGiocatore(i) <> PunteggioPrimo Then
If PunteggioGiocatore(i) >= PunteggioSecondo Then
If PunteggioGiocatore(i) = PunteggioSecondo Then
NGiocatoreSecondoP &= (i)
Else
NGiocatoreSecondoP = CStr(i)
PunteggioSecondo = PunteggioGiocatore(i)
End If
End If
End If
Next
If TrovaIlSecondo = True Then
Return CStr(NGiocatoreSecondoP)
Else
Return CStr(NGiocatorePrimoP)
End If
End Function
Public Sub RIAVVIA_IMPOSTAZIONI_GRAFICHE_FINE_PARTITA()
For I As Integer = 0 To cArreyGiocatori.Length - 1
Dim NumeroGiocatore As Integer = cArreyGiocatori(I)
CType(Me.Controls.Item("Giocatore" & NumeroGiocatore), Label).Text = cGiocatore(NumeroGiocatore).RITORNA_STATO_GIOCATORE
Next
End Sub
Public Sub CONTROLLA_CARTE()
Dim Ngiocatori As Integer = cArreyGiocatori.Length - 1
'Mi scrive x ogni giocatore quello che ha
For i As Integer = 0 To Ngiocatori
Dim X As Integer = cArreyGiocatori(i)
'------------------- M O D I F I C A ------- C A R T E ----------
'Dim SiglaCarta As String = "AP2P3P4P5P5P3Q"
Dim Mano As String = RITORNA_NOME_CARTE(cGiocatore(X).RITORNA_CARTE_GIOCATORE)
cGiocatore(X).IMPOSTA_STRINGA_CARTE_GIOCATORE(Mano)
'Visualizzo la mani degli avversati
'If Mano <> "Niente " Then Mano = RITORNA_NOME_COMPLETO_DA_SIGLA(Mano)
'CType(Me.Controls.Item("Giocatore" & i), Label).Text &= vbCrLf & "-->" & Mano
'CType(Me.Controls.Item("Giocatore" & i), Label).Text = Mano
Next
End Sub
Public Sub DISTRIBUISCI_CARTA_TAVOLO_A_GIOCATORI(ByVal Carta As String)
For i As Integer = 0 To cArreyGiocatori.Length - 1
Dim nGiocatore As Integer = cArreyGiocatori(i)
cGiocatore(nGiocatore).AGGIUNGI_CARTA(Carta)
Next
End Sub
Public Function CONTA_NUMERO_GIOCATORI_IN_GIOCO() As Integer
Dim Numero As Integer = cArreyGiocatori.Length - 1
For i As Integer = 0 To cArreyGiocatori.Length - 1
Dim NGiocatore As Integer = (cArreyGiocatori(i))
Dim StatoGiocatore As String = cGiocatore(NGiocatore).RITORNA_STATO_GIOCATORE
If StatoGiocatore = cGioco Or StatoGiocatore = cVedo Or StatoGiocatore = cProntoAGiocare Or StatoGiocatore = cAllIn Then
Else
Numero = Numero - 1
Select Case cGiocatore(NGiocatore).RITORNA_STATO_GIOCATORE
Case Is = cLascio
SCRIVI_STATO_GIOCO_ABBANDONATO(NGiocatore)
Case Is = cGameOver
SCRIVI_STATO_GIOCO_GAME_OVER(NGiocatore)
End Select
End If
Next
Return Numero
End Function
Public Function CONTA_NUMERO_GIOCATORI_IN_GIOCO_FINE_PARTITA() As Integer
Dim Numero As Integer = cNumeroGiocatoriGlobali
For i As Integer = 0 To cNumeroGiocatoriGlobali
Dim StatoGiocatore As String = cGiocatore(i).RITORNA_STATO_GIOCATORE
If StatoGiocatore = cGioco Or StatoGiocatore = cProntoAGiocare Or StatoGiocatore = cAllIn Then
Else
Numero = Numero - 1
Select Case cGiocatore(i).RITORNA_STATO_GIOCATORE
Case Is = cLascio
SCRIVI_STATO_GIOCO_ABBANDONATO(i)
Case Is = cGameOver
SCRIVI_STATO_GIOCO_GAME_OVER(i)
End Select
End If
Next
CNumeroGiocatori = Numero - 1
Return Numero
End Function
Public Sub SCRIVI_STATO_GIOCO_GAME_OVER(ByVal NGiocatore As Integer)
CType(Me.Controls.Item("Giocatore" & NGiocatore), Label).Text = cGameOver
End Sub
Public Sub SCRIVI_STATO_GIOCO_ABBANDONATO(ByVal NGiocatore As Integer)
CType(Me.Controls.Item("Giocatore" & NGiocatore), Label).Text = cAbbandonato
End Sub
Public Sub SCRIVI_STATO_GIOCO_IN_ATTESA(ByVal NGiocatore As Integer)
CType(Me.Controls.Item("Giocatore" & NGiocatore), Label).Text = cProntoAGiocare
End Sub
Public Function DISTRIBUISCI_CARTA_SUL_TAVOLO(ByVal NumeroGiro As Integer, ByVal NumeroGiocatori As Integer) As String
Dim Carta As String = NuovoMazzo.DAI_CARTA
cTavolo(NumeroGiro) = Carta
'Visualizza immagine sul tavolo
CARICA_IMMAGINE_CARTA_SUL_TAVOLO(NumeroGiro, Carta)
'Aggiungo la carta uscita ha ogni giocatore
DISTRIBUISCI_CARTA_TAVOLO_A_GIOCATORI(Carta)
Return Carta
End Function
Public Sub CARICA_IMMAGINE_CARTA_SUL_TAVOLO(ByVal NumeroGiro As Integer, ByVal Carta As String)
Dim Parte1 As String = Carta.Substring(0, 1)
Dim Parte2 As String = Carta.Substring(1, 1)
Dim Immagine As Image = CType(Me.Controls.Item(CStr("PIC" & Parte1 & Parte2)), PictureBox).Image
CType(Me.Controls.Item(CStr("PICTav" & NumeroGiro - 1)), PictureBox).Image = Immagine
End Sub
Public Sub DISTRIBUISCI_CARTE(ByVal NumeroGiocatori As Integer, ByVal NGiocatoreMazziere As Integer, ByVal NumeroCarta As Integer)
'Distribuisco la carta partendo dal mazziere fino all'ultimo giocatore
For ii As Integer = 0 To cArreyGiocatori.Length - 1
Dim i As Integer = cArreyGiocatori(ii)
Dim Carta As String = NuovoMazzo.DAI_CARTA
If cGiocatore(i).RITORNA_STATO_GIOCATORE <> cGameOver Then
cGiocatore(i).AGGIUNGI_CARTA(Carta)
'Vedo le carte dell'avversario---------------
'Dim Parte1 As String = Carta.Substring(0, 1)
'Dim Parte2 As String = Carta.Substring(1, 1)
'Dim Immagine As Image = CType(Me.Controls.Item(CStr("PIC" & Parte1 & Parte2)), PictureBox).Image
'CType(Me.Controls.Item(("Carta" & i & "G" & NumeroCarta)), PictureBox).Image = Immagine
'Modifica visualizzo le carte .-.-.-.-.-.-.-.-.-.
'Visualizzo la carta del l'umano
If i = 0 Then
Dim Parte1 As String = Carta.Substring(0, 1)
Dim Parte2 As String = Carta.Substring(1, 1)
Dim Immagine As Image = CType(Me.Controls.Item(CStr("PIC" & Parte1 & Parte2)), PictureBox).Image
CType(Me.Controls.Item(("Carta" & i & "G" & NumeroCarta)), PictureBox).Image = Immagine
Else
'Visualizzo la carta coperta al PC
CType(Me.Controls.Item(CStr("Carta" & i & "G" & NumeroCarta)), PictureBox).Image = PICRetro.Image
End If
' .-.-.-.-.-.-.-.-.-..-.-.-.-.-.-.-.-.-..-.-.-.
End If
Next
End Sub
Public Sub POSIZIONA_GIOCATORI(ByVal NumeroGiocatori As Integer)
'Raggio della circonferenza sulla quale verranno disposti i giocatori
Dim Raggio As Integer = 380
'Posizione del centro della circonferenza
Dim PosizioneCentrale As Point = New Point((Giocatore0.Location.X + 15), (Giocatore0.Location.Y))
'Posiziona label nome Giocatore
Dim PuntoLabelGiocatoreUmano As Point = New Point((Giocatore0.Location.X - 5), (Giocatore0.Location.Y - 100))
LBLNomeGiocatore0.Location = PuntoLabelGiocatoreUmano
PuntoLabelGiocatoreUmano.X += +50
CType(Me.Controls.Item("SoldiG" & 0), Label).Location = PuntoLabelGiocatoreUmano
PuntoLabelGiocatoreUmano.Y += +1
PuntoLabelGiocatoreUmano.X += +26
CType(Me.Controls.Item("LBLSoldiG" & 0), Label).Location = PuntoLabelGiocatoreUmano
'Arrey che mi salva la posizione dei giocatori
Dim PosioneGiocatori As Point() = New Point(NumeroGiocatori) {}
'Ciclo che mi fa passare da un giocatore all'altro
For i As Integer = 1 To NumeroGiocatori
'Mi dice l'angolo che ogni giocatore ha rispetto al centro
Dim AngoloProgressivo As Double = 180 / (NumeroGiocatori + 1) * i
'Trasformo l'angolo in radianti
Dim Radiante As Double = (Math.PI * AngoloProgressivo) / 180
'Calcolo la posizione della X del giocatore
Dim Angolo As Double = (Math.Cos(Radiante))
Dim Risultato As Double = PosizioneCentrale.X + (Raggio * Angolo)
PosioneGiocatori(i).X = CInt(Risultato)
'Calcolo la posizione della Y del giocatore
Angolo = (Math.Sin(Radiante))
Dim RisultatoDue As Double = PosizioneCentrale.Y - (Raggio * Angolo)
PosioneGiocatori(i).Y = CInt(RisultatoDue) + 50
'Sposto la Label Giocatore i in base hai risultati ottenuti
PosioneGiocatori(i).Y += +25
PosioneGiocatori(i).X -= +45
CType(Me.Controls.Item("Giocatore" & i), Label).Location = PosioneGiocatori(i)
CType(Me.Controls.Item("Giocatore" & i), Label).Text = "Giocatore " & i
CType(Me.Controls.Item("Giocatore" & i), Label).Visible = True
PosioneGiocatori(i).Y -= +25
PosioneGiocatori(i).X += +45
'Sposto + in giů la carta
PosioneGiocatori(i).Y = PosioneGiocatori(i).Y - 60
'Sposto a sinistra la carta 1
PosioneGiocatori(i).X = PosioneGiocatori(i).X - 44
CType(Me.Controls.Item("Carta" & i & "G1"), PictureBox).Location = PosioneGiocatori(i)
CType(Me.Controls.Item("Carta" & i & "G1"), PictureBox).Visible = True
'Sposto a destra la carta 2
PosioneGiocatori(i).X = PosioneGiocatori(i).X + 70
CType(Me.Controls.Item("Carta" & i & "G2"), PictureBox).Location = PosioneGiocatori(i)
CType(Me.Controls.Item("Carta" & i & "G2"), PictureBox).Visible = True
'Posiziono Etichetta Giocatore
PosioneGiocatori(i).Y -= +25
PosioneGiocatori(i).X -= +75
CType(Me.Controls.Item("LBLNomeGiocatore" & i), Label).Visible = True
CType(Me.Controls.Item("LBLNomeGiocatore" & i), Label).Text = "Giocatore " & (i)
CType(Me.Controls.Item("LBLNomeGiocatore" & i), Label).Location = PosioneGiocatori(i)
'Posiziono label che mi indica i $ del giocatore
PosioneGiocatori(i).X += +85
CType(Me.Controls.Item("SoldiG" & i), Label).Visible = True
CType(Me.Controls.Item("SoldiG" & i), Label).Location = PosioneGiocatori(i)
PosioneGiocatori(i).X += +26
PosioneGiocatori(i).Y += +2
CType(Me.Controls.Item("LBLSoldiG" & i), Label).Visible = True
CType(Me.Controls.Item("LBLSoldiG" & i), Label).Location = PosioneGiocatori(i)
Next
End Sub
Private Function RITORNA_NOME_CARTE(ByVal Carte As String) As String
Dim SiglaCarta() As String = New String(6) {}
Dim DimensioneStringa As Integer = Carte.Length
Dim NumeroCiclo As Integer = -1
Dim Risultato As String = ""
Dim Coppia As Boolean = False
Dim DoppiaCoppia As Boolean = False
Dim Tris As Boolean = False
Dim Full As Boolean = False
Dim Poker As Boolean = False
Dim Colore As Boolean = False
Dim Scala As Boolean = False
Dim CCoppia As String = ""
Dim cDoppiaCoppia As String = ""
Dim IDoppiaCoppia As Integer = 0
Dim cTris As String = ""
Dim cFull As String = ""
Dim cPoker As String = ""
Dim cColore As String = ""
Dim cScala As String = ""
'Ciclo sulle carte che mi ritorna solo il tipo di carte senza il seme (es. 1, 5 ,7 )
For i As Integer = 0 To DimensioneStringa - 1 Step 2
NumeroCiclo += +1
SiglaCarta(NumeroCiclo) = Carte.Substring(i, 1)
Next
Dim Punteggio As Integer = 0
Dim Prova As String = ""
Dim NomeCarta As String = ""
'Faccio un ciclo sui numeri ( 1,2,...,8,9 ) mi ritorna quanti di questi numeri ci sono
'Ciclo sulle carte
Dim ArreyCarte As String() = New String(12) {"2", "3", "4", "5", "6", "7", "8", "9", "D", "J", "Q", "K", "A"}
'i -> Ciclo sui numeri
For i As Integer = 0 To 12
NomeCarta = ""
'ii -> Ciclo sulle carte del giocatore
For ii As Integer = 0 To 6
If ((SiglaCarta(ii)) = "") Then Exit For
If CStr(ArreyCarte(i)) = (SiglaCarta(ii)) Then
Punteggio += +1
NomeCarta = SiglaCarta(ii)
End If
Next
Select Case Punteggio
Case Is = 2
If Coppia = True Then
Prova = Prova & NomeCarta
DoppiaCoppia = True
cDoppiaCoppia = NomeCarta
'La seconda volta che esce la coppia, sostituisco il valore piů basso della prima coppia con questo piů alto
If Prova.Length = 2 Then
CCoppia = Prova.Substring(0, 1)
End If
Else
CCoppia = NomeCarta
End If
Coppia = True
Case Is = 3
Tris = True
cTris = NomeCarta
Case Is = 4
Poker = True
cPoker = NomeCarta
End Select
If Coppia = True And Tris = True Then Full = True
Punteggio = 0
Next
Dim Scaladi As String = PRESENZA_SCALA(Carte)
Dim PresenzaColore As String = (PRESENZA_COLORE(Carte))
If Poker = True Then
Return "P" & cPoker
ElseIf Full = True Then
Return "F" & cTris & CCoppia
ElseIf PresenzaColore <> "0" Then
Return "L" & PresenzaColore
ElseIf Scaladi <> "" Then
Return "S" & Scaladi
ElseIf Tris = True Then
Return "T" & cTris
ElseIf DoppiaCoppia = True Then
Return "D" & cDoppiaCoppia & CCoppia
ElseIf Coppia = True Then
Return "C" & CCoppia
Else
Return "Niente"
End If
End Function
'Scompongo le carte e conto quanti caratteri ci sono.
'Se sono 5 vuol dire che c'č la presenza del colore
Public Function PRESENZA_COLORE(ByVal Carte As String) As String
Dim ScompongoCarte() As String = New String(6) {}
Dim LunghezzaCiclo As Integer = CInt(Carte.Length)
Dim NCarta As Integer = 0
For i As Integer = 0 To LunghezzaCiclo - 1 Step 2
ScompongoCarte(NCarta) = Carte.Substring(i + 1, 1)
NCarta += +1
Next
Dim Cuori As Integer = 0
Dim Quadri As Integer = 0
Dim Picche As Integer = 0
Dim Fiori As Integer = 0
For i As Integer = 0 To CInt(LunghezzaCiclo / 2) - 1
Select Case ScompongoCarte(i)
Case Is = "C"
Cuori += +1
If (Cuori = 5) Then
Return "C"
End If
Case Is = "Q"
Quadri += +1
If (Quadri = 5) Then
Return "Q"
End If
Case Is = "P"
Picche += +1
If (Picche = 5) Then
Return "P"
End If
Case Is = "F"
Fiori += +1
If (Fiori = 5) Then
Return "F"
End If
End Select
Next
Return "0"
End Function
Private Function RITORNA_NUMERO_DAL_TIPO_DI_CARTA(ByVal TipoCarta As String, ByVal SecondoTentativo As Boolean) As Integer
If SecondoTentativo = False Then
Select Case TipoCarta
'Scala Reale
Case Is = "R"
Return 16
'Poker
Case Is = "P"
Return 14
'Full
Case Is = "F"
Return 12
'Colore
Case Is = "L"
Return 10
Case Is = "S"
'Scala fuffa
Return 8
'Tris
Case Is = "T"
Return 6
'Doppia Coppia
Case Is = "D"
Return 4
'Coppia
Case Is = "C"
Return 2
'Niente
Case Is = "N"
Return 0
End Select
Else
Select Case TipoCarta
Case Is = "A"
Return 13
Case Is = "K"
Return 12
Case Is = "Q"
Return 11
Case Is = "J"
Return 10
Case Is = "D"
Return 9
Case Is = "9"
Return 8
Case Is = "8"
Return 7
Case Is = "7"
Return 6
Case Is = "6"
Return 5
Case Is = "5"
Return 4
Case Is = "4"
Return 3
Case Is = "3"
Return 2
Case Is = "2"
Return 1
End Select
End If
End Function
'Decido in base alle carte,n del giro, $ cosa fare
Private Function DECIDI_COSA_FARE_PRIME_DUE_CARTE(ByVal Carte As String, ByVal NGiocatore As Integer) As String
Randomize()
Dim Ncasuale As Integer = New Integer()
Dim Rand As Random = New Random()
Ncasuale = Rand.Next(0, 100)
Dim Risultato As String = "Errore"
If cGiocatore(NGiocatore).RITORNA_STATO_GIOCATORE = cAllIn Then
Return cAllIn
End If
If DECIDERE_GIOCARE_PRIME_DUE_CARTE(NGiocatore) = True Then
Risultato = cGioco
Else
Risultato = cLascio
End If
Return Risultato
End Function
Public Function DECIDERE_GIOCARE_PRIME_DUE_CARTE(ByVal nGiocatore As Integer) As Boolean
Dim CartaA As String = (cGiocatore(nGiocatore).cCarte.Substring(0, 1))
Dim CartaB As String = (cGiocatore(nGiocatore).cCarte.Substring(2, 1))
'MI STAMPA COSA HO
CType(Me.Controls.Item("Carte" & nGiocatore), Label).Text = CStr(RITORNA_NUMERO_DAL_TIPO_DI_CARTA(CartaA, True))
CType(Me.Controls.Item("Carte" & nGiocatore), Label).Text &= " " & CStr(RITORNA_NUMERO_DAL_TIPO_DI_CARTA(CartaB, True))
Dim A As Integer = (RITORNA_NUMERO_DAL_TIPO_DI_CARTA(CartaA, True))
Dim B As Integer = (RITORNA_NUMERO_DAL_TIPO_DI_CARTA(CartaB, True))
If (A > 5) Or (B > 5) Then
Return True
Else
Return False
End If
End Function
'Decido in base alle carte,n del giro, $ cosa fare
Private Function DECIDI_COSA_FARE_SECONDA_MANO(ByVal Carte As String, ByVal NGiocatore As Integer) As String
Randomize()
If cGiocatore(NGiocatore).RITORNA_STATO_GIOCATORE = cAllIn Then
Return cAllIn
End If
'Se sono l'ultimo e l'unico giocatore in gioco; gioco per forza
If SOLO_UN_GIOCATORE_IN_GIOCO() = 0 Then
Return cGioco
End If
Dim Ncasuale As Integer = New Integer()
Dim StrCarteMie As String = RITORNA_NOME_CARTE(Carte)
Dim LunghezzaCarte As Integer = Carte.Length
Carte = Carte.Substring(4, LunghezzaCarte - 4)
Dim StrCarteTavolo As String = RITORNA_NOME_CARTE(Carte)
Dim PercentualeTavolo As Integer = 0
Dim PercentualeCarteMie As Integer = 0
Select Case StrCarteMie.Substring(0, 1)
'Non ho niete
Case Is = "N"
PercentualeCarteMie = 1
'Coppia
Case Is = "C"
PercentualeCarteMie = 2
'DoppiaCoppia
Case Is = "D"
PercentualeCarteMie = 3
'Tris
Case Is = "T"
PercentualeCarteMie = 4
Case Is = "S"
PercentualeCarteMie = 5
'Colore
Case Is = "L"
PercentualeCarteMie = 6
'Full
Case Is = "F"
PercentualeCarteMie = 7
'Poker
Case Is = "P"
PercentualeCarteMie = 8
End Select
Select Case StrCarteTavolo.Substring(0, 1)
'Non ho niete
Case Is = "N"
PercentualeTavolo = 1
'Coppia
Case Is = "C"
PercentualeTavolo = 2
'DoppiaCoppia
Case Is = "D"
PercentualeTavolo = 3
'Tris
Case Is = "T"
PercentualeTavolo = 4
Case Is = "S"
PercentualeTavolo = 5
'Colore
Case Is = "L"
PercentualeTavolo = 6
'Full
Case Is = "F"
PercentualeTavolo = 7
'Poker
Case Is = "P"
PercentualeTavolo = 8
End Select
Dim PuntataMax As Integer = 0
Dim PuntataGiocatore As Integer = 0
Dim Risultato As String = "Errore"
Dim Coraggio As Integer = cGiocatore(NGiocatore).cCoraggio
Select Case CNumeroDiMano
Case Is = 4
'Non ho niente, non posso migliorare il punto che giŕ č giů.
If PercentualeTavolo = PercentualeCarteMie Then
PuntataGiocatore = PUNTATA(0, Coraggio, 70, 1, 100, 2, 200, 1, 300, 1)
End If
Select Case StrCarteMie.Substring(0, 1)
'Coppia
Case Is = "C"
PuntataGiocatore = PUNTATA(0, Coraggio, 40, 1, 60, 2, 90, 3, 110, 4)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(2 + (Coraggio / 10))
'DoppiaCoppia
Case Is = "D"
PuntataGiocatore = PUNTATA(1, Coraggio, 30, 1, 50, 2, 80, 3, 90, 4)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(3 + (Coraggio / 10))
'Tris
Case Is = "T"
PuntataGiocatore = PUNTATA(2, Coraggio, 20, 3, 40, 4, 50, 5, 95, 6)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(4 + (Coraggio / 10))
'Scala
Case Is = "S"
PuntataGiocatore = PUNTATA(3, Coraggio, 10, 1, 30, 2, 50, 3, 60, 5)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(5 + (Coraggio / 10))
'Colore
Case Is = "L"
PuntataGiocatore = PUNTATA(3, Coraggio, 10, 2, 30, 3, 50, 4, 70, 6)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(5 + (Coraggio / 10))
'Full
Case Is = "F"
PuntataGiocatore = PUNTATA(4, Coraggio, 10, 2, 30, 3, 50, 5, 70, 7)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(6 + (Coraggio / 10))
'Poker
Case Is = "P"
PuntataGiocatore = PUNTATA(6, Coraggio, 5, 3, 20, 4, 40, 6, 60, 8)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(15 + (Coraggio / 10))
End Select
'Altra mano
Case Is = 5
'Non ho niente, non posso migliorare il punto che giŕ č giů.
If PercentualeTavolo = PercentualeCarteMie Then
PuntataGiocatore = PUNTATA(0, Coraggio, 70, 1, 100, 2, 0, 0, 0, 0)
End If
Select Case StrCarteMie.Substring(0, 1)
'Coppia
Case Is = "C"
PuntataGiocatore = PUNTATA(0, Coraggio, 40, 1, 60, 2, 90, 3, 0, 0)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(2 + (Coraggio / 10))
'DoppiaCoppia
Case Is = "D"
PuntataGiocatore = PUNTATA(1, Coraggio, 30, 1, 50, 2, 80, 3, 90, 4)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(3 + (Coraggio / 10))
'Tris
Case Is = "T"
PuntataGiocatore = PUNTATA(2, Coraggio, 20, 3, 40, 4, 50, 5, 95, 6)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(4 + (Coraggio / 10))
'Scala
Case Is = "S"
PuntataGiocatore = PUNTATA(3, Coraggio, 10, 1, 30, 2, 50, 3, 60, 5)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(5 + (Coraggio / 10))
'Colore
Case Is = "L"
PuntataGiocatore = PUNTATA(3, Coraggio, 10, 2, 30, 3, 50, 4, 70, 6)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(5 + (Coraggio / 10))
'Full
Case Is = "F"
PuntataGiocatore = PUNTATA(4, Coraggio, 10, 2, 30, 3, 50, 5, 70, 7)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(6 + (Coraggio / 10))
'Poker
Case Is = "P"
PuntataGiocatore = PUNTATA(6, Coraggio, 5, 3, 20, 4, 40, 6, 60, 8)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(15 + (Coraggio / 10))
End Select
Case Is = 6
'Non ho niente, non posso migliorare il punto che giŕ č giů.
If PercentualeTavolo = PercentualeCarteMie Then
PuntataGiocatore = PUNTATA(0, Coraggio, 70, 1, 100, 2, 0, 0, 0, 0)
End If
Select Case StrCarteMie.Substring(0, 1)
'Coppia
Case Is = "C"
PuntataGiocatore = PUNTATA(0, Coraggio, 40, 1, 60, 2, 90, 3, 0, 0)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(2 + (Coraggio / 10))
'DoppiaCoppia
Case Is = "D"
PuntataGiocatore = PUNTATA(1, Coraggio, 30, 1, 50, 2, 80, 3, 90, 4)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(3 + (Coraggio / 10))
'Tris
Case Is = "T"
PuntataGiocatore = PUNTATA(2, Coraggio, 20, 3, 40, 4, 50, 5, 95, 6)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(4 + (Coraggio / 10))
'Scala
Case Is = "S"
PuntataGiocatore = PUNTATA(3, Coraggio, 10, 1, 30, 2, 50, 3, 60, 5)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(5 + (Coraggio / 10))
'Colore
Case Is = "L"
PuntataGiocatore = PUNTATA(3, Coraggio, 10, 2, 30, 3, 50, 4, 70, 6)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(5 + (Coraggio / 10))
'Full
Case Is = "F"
PuntataGiocatore = PUNTATA(4, Coraggio, 10, 2, 30, 3, 50, 5, 70, 7)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(6 + (Coraggio / 10))
'Poker
Case Is = "P"
PuntataGiocatore = PUNTATA(6, Coraggio, 5, 3, 20, 4, 40, 6, 60, 8)
cGiocatore(NGiocatore).cRilancioMassimo = CInt(15 + (Coraggio / 10))
End Select
End Select
If PuntataGiocatore = 0 Then
Return cVedo
End If
'Posso giocare solo se ho abbastanza soldi
If cGiocatore(NGiocatore).RITORNA_SOLDI_GIOCATORE > PuntataGiocatore Then
'cPuntataGiocatore = PuntataGiocatore
If PuntataGiocatore > cPuntata Then
cRilancio = True
cPuntata = PuntataGiocatore
Risultato = cGioco
Else
Risultato = cLascio
End If
Else
'Voglio giocare anche se non ho abbastanza soldi
Risultato = cAllIn
End If
Return Risultato
End Function
Public Function PUNTATA(ByVal PuntataCheVorreiFare As Integer, ByVal Coraggio As Integer, ByVal SogliaA As Integer, ByVal ValoreA As Integer, ByVal SogliaB As Integer, ByVal ValoreB As Integer, ByVal SogliaC As Integer, ByVal ValoreC As Integer, ByVal SogliaD As Integer, ByVal ValoreD As Integer) As Integer
Dim Rand As Random = New Random()
Dim NumeroCasuale As Integer = Rand.Next(0, 100) + Coraggio
If PuntataCheVorreiFare >= cPuntata Then
Select Case NumeroCasuale
Case Is < 30
Return PuntataCheVorreiFare
Case Is < 60
Return ValoreC
Case Is > 90
Return ValoreD
End Select
End If
If cPuntata = 0 And PuntataCheVorreiFare = 0 Then
Return 0
Else
Select Case NumeroCasuale
Case Is < SogliaA
Return ValoreA
Case Is < SogliaB
Return ValoreB
Case Is < SogliaC
Return ValoreC
Case Is < SogliaD
Return ValoreD
Case Is > SogliaD
Return ValoreD + 1
End Select
End If
End Function
Private Sub STATISTICHE_PARTITE(ByVal NGiocatoreVincente As String)
'Visualizzo le possibilitŕ solo con questo giocatore
'NGiocatoreVincente = CStr(0)
Dim Risultato As String = cGiocatore(CInt(NGiocatoreVincente.Substring(0, 1))).RITORNA_STRINGA_CARTE_GIOCATORE
If NGiocatoreVincente.Length = 1 Then cNGiocatoreVincente(CInt(NGiocatoreVincente.Substring(0, 1))) += +1
Select Case Risultato.Substring(0, 1)
'Case Is = "R"
'Return 16
Case Is = "P"
CNumeroPoker += +1
Case Is = "F"
CNumeroFull += +1
Case Is = "T"
CNumeroTris += +1
Case Is = "S"
CNumeroScala += +1
Case Is = "D"
CNumeroDoppiaCoppia += +1
Case Is = "C"
CNumeroCoppia += +1
Case Is = "N"
CNumeroNiente += +1
Case Is = "L"
CNumeroColore += +1
End Select
Label3.Text = "Coppia: " & CNumeroCoppia & vbCrLf
Label3.Text &= "CNumeroDoppiaCoppia: " & CNumeroDoppiaCoppia & vbCrLf
Label3.Text &= "CNumeroScala: " & CNumeroScala & vbCrLf
Label3.Text &= "CNumeroTris: " & CNumeroTris & vbCrLf
Label3.Text &= "CNumeroFull: " & CNumeroFull & vbCrLf
Label3.Text &= "CNumeroPoker: " & CNumeroPoker & vbCrLf
Label3.Text &= "CNumeroColore: " & CNumeroColore & vbCrLf
Label3.Text &= "CNumeroNiente: " & CNumeroNiente & vbCrLf & vbCrLf
Label3.Text &= "Giocatore0 " & cNGiocatoreVincente(0) & vbCrLf
Label3.Text &= "Giocatore1 " & cNGiocatoreVincente(1) & vbCrLf
Label3.Text &= "Giocatore2 " & cNGiocatoreVincente(2) & vbCrLf
Label3.Text &= "Giocatore3 " & cNGiocatoreVincente(3) & vbCrLf
Label3.Text &= "Giocatore4 " & cNGiocatoreVincente(4) & vbCrLf
Label3.Text &= "Giocatore5 " & cNGiocatoreVincente(5) & vbCrLf
Label3.Text &= "Giocatore6 " & cNGiocatoreVincente(6) & vbCrLf
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'INIZIO_PARTITA()
'IMPOSTAZIONI_NUOVA_MANO()
End Sub
Public Sub IMPOSTAZIONI_NUOVA_MANO()
PULSANTE_ABILITATO(CMDNuovaMano)
PULSANTE_DISABILITATO(CmdVedo)
PULSANTE_DISABILITATO(CMDGioco)
PULSANTE_DISABILITATO(CMDLascia)
End Sub
Public Sub IMPOSTAZIONI_GIOCO_IN_CORSO_PRIMA_MANO()
PULSANTE_DISABILITATO(CMDNuovaMano)
PULSANTE_DISABILITATO(CmdVedo)
PULSANTE_ABILITATO(CMDGioco)
PULSANTE_ABILITATO(CMDLascia)
End Sub
Public Sub PULSANTE_ABILITATO(ByVal Pulsante As Button)
Pulsante.Enabled = True
Pulsante.Font = New Font("Century Gothic", 9, FontStyle.Bold)
End Sub
Public Sub PULSANTE_DISABILITATO(ByVal Pulsante As Button)
Pulsante.Enabled = False
Pulsante.Font = New Font("Century Gothic", 7, FontStyle.Regular)
End Sub
Public Sub IMPOSTAZIONI_TURNO_GIOCATORE(ByVal PossoVedere As Boolean)
If PossoVedere = True Then
PULSANTE_ABILITATO(CmdVedo)
Else
PULSANTE_DISABILITATO(CmdVedo)
End If
PULSANTE_ABILITATO(CMDGioco)
PULSANTE_ABILITATO(CMDLascia)
IMPOSTAZIONE_AUMENTO_PUNTATA()
End Sub
Public Sub IMPOSTAZIONE_AUMENTO_PUNTATA()
If cPuntata = 0 Then
cPuntata = 1
End If
CMDDiminuisciPuntata.Enabled = False
CMDAumentaPuntata.Enabled = True
If cPuntata < cGiocatore(0).RITORNA_SOLDI_GIOCATORE Then
TXTPuntata.Text = CStr(cPuntata)
Else
TXTPuntata.Text = CStr(cGiocatore(0).RITORNA_SOLDI_GIOCATORE)
CMDAumentaPuntata.Enabled = False
End If
If cTurnoRilancio = True Then
'GRAFICA -------------------------------------
TXTPuntata.Text = CStr(CDifferenzaDaAggiungereNelPiatto)
PULSANTE_DISABILITATO(CMDDiminuisciPuntata)
PULSANTE_DISABILITATO(CMDAumentaPuntata)
'FINE GRAFICA --------------------------------
End If
End Sub
Public Sub IMPOSTAZIONI_TEMPORIZZAZIONE_TURNO_PC(ByVal AzzeraPuntata As Boolean)
PULSANTE_DISABILITATO(CMDNuovaMano)
PULSANTE_DISABILITATO(CmdVedo)
PULSANTE_DISABILITATO(CMDGioco)
PULSANTE_DISABILITATO(CMDLascia)
PULSANTE_DISABILITATO(CMDDiminuisciPuntata)
PULSANTE_DISABILITATO(CMDAumentaPuntata)
If AzzeraPuntata = True Then
TXTPuntata.Text = ""
End If
TXTPuntata.Enabled = False
End Sub
Public Sub IMPOSTAZIONI_GIOCO_ABBANDONATO()
CMDNuovaMano.Enabled = False
CMDNuovaMano.Font = New Font("Century Gothic", 7, FontStyle.Regular)
CmdVedo.Enabled = False
CmdVedo.Font = New Font("Century Gothic", 9, FontStyle.Bold)
CMDGioco.Enabled = False
CMDGioco.Font = New Font("Century Gothic", 9, FontStyle.Bold)
CMDLascia.Enabled = False
CMDLascia.Font = New Font("Century Gothic", 9, FontStyle.Bold)
End Sub
' --------- AGGIUNGI UNA NUOVA CARTA --------------------
'Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'DISTRIBUISCI_CARTA_SUL_TAVOLO(CNumeroDiMano, CNumeroGiocatori)
'CONTROLLA_CARTE()
'CNumeroDiMano = CNumeroDiMano + 1
'DECISIONI_SULLE_CARTE_PRIMA_MANO()
'If CNumeroDiMano = 6 Then
'Dim GiocatoreVincente As String = (TROVA_N_VINCITORE())
'Label2.Text = "Vince il Giocatore " & GiocatoreVincente
'CMDNuovaMano.Enabled = True
'STATISTICHE_PARTITE(GiocatoreVincente)
'End If
'End Sub
' ---------------------------------------------------------
Public Sub PULISCI_CARTE_TAVOLO()
'Dim Immagine As Image = PICRetro.Image
For i As Integer = 0 To 4
CType(Me.Controls.Item(CStr("PICTav" & i)), PictureBox).Image = Nothing
'CType(Me.Controls.Item(CStr("PICTav" & 4 - i)), PictureBox).Refresh()
CType(Me.Controls.Item(CStr("PICTav" & i)), PictureBox).Refresh()
Next
End Sub
Public Sub AGGIUNGI_NUOVA_CARTA()
DISTRIBUISCI_CARTA_SUL_TAVOLO(CNumeroDiMano, CNumeroGiocatori)
CONTROLLA_CARTE()
CNumeroDiMano = CNumeroDiMano + 1
'If CNumeroDiMano = 6 Then
'Dim GiocatoreVincente As String = (TROVA_N_VINCITORE())
'End If
End Sub
Public Sub GESTISCI_DECISIONE_GIOCATORE(ByVal NumeroGiocatore As Integer, ByVal DecisioneGiocatore As String, ByVal Puntata As Integer)
Dim i As Integer = NumeroGiocatore
cGiocatore(i).IMPOSTA_STATO_GIOCATORE(DecisioneGiocatore)
Select Case DecisioneGiocatore
Case Is = cGioco
'Dim SoldiDisponibili As Integer = cGiocatore(NumeroGiocatore).RITORNA_SOLDI_GIOCATORE
cGiocatore(NumeroGiocatore).SCALA_SOLDI(Puntata)
cGiocatore(NumeroGiocatore).IMPOSTA_PUNTATA_GIOCATORE(Puntata)
cGiocatore(NumeroGiocatore).IMPOSTA_PUNTATA(CNumeroDiMano - 3, Puntata)
cPiatto.AGGIUNGI_SOLDI(Puntata)
REFRESH_SOLDI_PIATTO()
REFRESH_SOLDI_GIOCATORE(NumeroGiocatore)
CType(Me.Controls.Item("Giocatore" & i), Label).Text = DecisioneGiocatore & Puntata & cFish
TextBox1.Text &= vbCrLf & CNumeroDiMano & ">> " & i & " ---> " & DecisioneGiocatore & " | " & Puntata
Case Is = cLascio
CType(Me.Controls.Item("Giocatore" & i), Label).Text = DecisioneGiocatore
CType(Me.Controls.Item(CStr("Carta" & i & "G" & 1)), PictureBox).Image = PICRetroA.Image
CType(Me.Controls.Item(CStr("Carta" & i & "G" & 2)), PictureBox).Image = PICRetroA.Image
cGiocatore(NumeroGiocatore).IMPOSTA_PUNTATA(CNumeroDiMano - 3, 0)
TextBox1.Text &= vbCrLf & CNumeroDiMano & ">> " & i & " ---> " & DecisioneGiocatore & " | " & Puntata
Case Is = cVedo
CType(Me.Controls.Item("Giocatore" & i), Label).Text = DecisioneGiocatore
cGiocatore(NumeroGiocatore).IMPOSTA_PUNTATA(CNumeroDiMano - 3, 0)
TextBox1.Text &= vbCrLf & CNumeroDiMano & ">> " & i & " ---> " & DecisioneGiocatore & " | " & Puntata
Case Is = cAllIn
Dim SoldiGiocatore As Integer = cGiocatore(NumeroGiocatore).RITORNA_SOLDI_GIOCATORE
If SoldiGiocatore > 0 Then
cGiocatore(NumeroGiocatore).SCALA_SOLDI(SoldiGiocatore)
cGiocatore(NumeroGiocatore).IMPOSTA_PUNTATA_GIOCATORE(SoldiGiocatore)
cPiatto.AGGIUNGI_SOLDI(SoldiGiocatore)
REFRESH_SOLDI_PIATTO()
REFRESH_SOLDI_GIOCATORE(NumeroGiocatore)
CType(Me.Controls.Item("Giocatore" & i), Label).Text = DecisioneGiocatore & " con " & SoldiGiocatore & " fish"
cGiocatore(NumeroGiocatore).IMPOSTA_PUNTATA(CNumeroDiMano - 3, SoldiGiocatore)
cGiocatore(NumeroGiocatore).IMPOSTA_STATO_GIOCATORE(cAllIn)
TextBox1.Text &= vbCrLf & CNumeroDiMano & ">> " & i & " ---> " & DecisioneGiocatore & " All| "
Else
CType(Me.Controls.Item("Giocatore" & i), Label).Text = DecisioneGiocatore
cGiocatore(NumeroGiocatore).IMPOSTA_PUNTATA(CNumeroDiMano - 3, 0)
TextBox1.Text &= vbCrLf & CNumeroDiMano & ">> " & i & " ---> " & DecisioneGiocatore & "Inn| " & 0
End If
End Select
End Sub
Public Sub DECISIONE_PRIME_DUE_CARTE(ByVal I As Integer)
Dim DecisioneGiocatore As String = DECIDI_COSA_FARE_PRIME_DUE_CARTE(cGiocatore(I).RITORNA_CARTE_GIOCATORE, I)
GESTISCI_DECISIONE_GIOCATORE(I, DecisioneGiocatore, cPiccoloBuio)
Me.Refresh()
End Sub
Public Sub DECISIONI_SULLE_CARTE_SECONDA_MANO_TIMER(ByVal I As Integer)
Dim DecisioneGiocatore As String = DECIDI_COSA_FARE_SECONDA_MANO(cGiocatore(I).RITORNA_CARTE_GIOCATORE, I)
GESTISCI_DECISIONE_GIOCATORE(I, DecisioneGiocatore, cPuntata)
Me.Refresh()
End Sub
Private Sub CMDNuovaMano_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDNuovaMano.Click
cNPartite = cNPartite + 1
'Aumento ogni 3 partite il piccolo buio
If CBool(cNPartite Mod 3) = False Then
cPiccoloBuio = cPiccoloBuio + 1
cNPartite = 0
End If
'_______________________________
'Cancello il contenuto
TextBox2.Text = ""
'_______________________________
LBLScrittaMazz.Visible = False
IMPOSTAZIONI_TEMPORIZZAZIONE_TURNO_PC(True)
MODIFICA_STATO_GIOCATORE_FINE_PARTITA(True)
RIAVVIA_IMPOSTAZIONI_GRAFICHE_FINE_PARTITA()
PULISCI_CARTE_TAVOLO()
For ii As Integer = 0 To cArreyGiocatori.Length - 1
Dim i As Integer = cArreyGiocatori(ii)
cGiocatore(i).RIAZZERA_CARTE()
Next
cFine_Turno = False
CNumeroDiMano = 3
cPiatto.RIAZZERA_PIATTO()
If cSoldiNonDati <> 0 Then
cPiatto.AGGIUNGI_SOLDI(cSoldiNonDati)
cSoldiNonDati = 0
End If
'cGiocatore(0).IMPOSTA_SOLDI_INIZIALI(50)
'cGiocatore(1).IMPOSTA_SOLDI_INIZIALI(40)
'cGiocatore(2).IMPOSTA_SOLDI_INIZIALI(30)
'cGiocatore(3).IMPOSTA_SOLDI_INIZIALI(20)
'cGiocatore(4).IMPOSTA_SOLDI_INIZIALI(30)
'cGiocatore(5).IMPOSTA_SOLDI_INIZIALI(40)
'cGiocatore(6).IMPOSTA_SOLDI_INIZIALI(50)
MODIFICA_ARREY_POSIZIONE_GIOCATORI(False)
NUOVA_MANO()
'PICCOLO_BUIO(cMazziere)
'REFRESH_SOLDI_GIOCATORE(cMazziere)
'CType(Me.Controls.Item("Giocatore" & cMazziere), Label).Text = cSTRPiccoloBuio
'Faccio Mettere la Fish al piccolo Buio
PICCOLO_BUIO(cArreyGiocatori(0))
REFRESH_SOLDI_GIOCATORE(cArreyGiocatori(0))
CType(Me.Controls.Item("Giocatore" & cArreyGiocatori(0)), Label).Text = cSTRPiccoloBuio
'Imposto la variabile che mi permette di scorrere la posizione dei giocatori
'Imposto giŕ ad uno poiche il piccolo buio ha giŕ giocato
cNGiocatoreTurno = 1
'Avvio il timer,ogni intervallo il computer pensa a cosa fare
Timer.Interval = 500
Timer.Start()
End Sub
Public Sub CANCELLA_DECISIONI_GIOCATORI()
'For I As Integer = 0 To cGiocatoriRimasti - 1
For I As Integer = 0 To cArreyGiocatori.Length - 1
Dim StatoGiocatore As String = cGiocatore(cArreyGiocatori(I)).RITORNA_STATO_GIOCATORE
If StatoGiocatore = cGameOver Or StatoGiocatore = cAllIn Then
Else
CType(Me.Controls.Item("Giocatore" & cArreyGiocatori(I)), Label).Text = ""
End If
Next
End Sub
Public Sub RESETTA_VARIABILI_TIMER()
'Salvo in una variabile globale il numero del giocatore che fa il mazziere
cNGiocatoreTurno = 0
cPuntata = 0
cRilancio = False
ciRilancio = 0
cRilancioGlobale = False
cFine_TurnoUMANO = False
cTurnoRilancio = False
End Sub
Public Sub PASSA_A_PRIMA_CARTA()
Timer.Stop()
CNumeroDiMano = CNumeroDiMano + 1
'Distribuisco in mezzo le carte e aggiungo le carte uscite alla lista delle carte che ognuno ha
DISTRIBUISCI_CARTA_SUL_TAVOLO(1, CNumeroGiocatori)
DISTRIBUISCI_CARTA_SUL_TAVOLO(2, CNumeroGiocatori)
DISTRIBUISCI_CARTA_SUL_TAVOLO(3, CNumeroGiocatori)
'Controllo che cosa hanno i giocatori
'CONTROLLA_CARTE()
RESETTA_VARIABILI_TIMER()
LBLDecisioneGiocatore.Text = "Si girano le carte"
Dim Num As Integer = CONTA_NUMERO_GIOCATORI_IN_GIOCO()
MODIFICA_ARREY_POSIZIONE_GIOCATORI(False)
LBLDecisioneGiocatore.Text = LBLDecisioneGiocatore.Text & vbCrLf & vbCrLf & "Numero di Giocatori: " & Num + 1
CANCELLA_DECISIONI_GIOCATORI()
Timer1.Interval = 1000
Timer1.Start()
End Sub
Public Sub GIRA_CARTA_SINGOLA()
Timer1.Stop()
PREPARA_PER_GIRARE_CARTE()
Timer1.Interval = 1000
Timer1.Start()
End Sub
Public Sub PREPARA_PER_GIRARE_CARTE()
RESETTA_VARIABILI_TIMER()
LBLDecisioneGiocatore.Text = "Si gira la carta ... "
Dim Num As Integer = CONTA_NUMERO_GIOCATORI_IN_GIOCO()
MODIFICA_ARREY_POSIZIONE_GIOCATORI(False)
LBLDecisioneGiocatore.Text = LBLDecisioneGiocatore.Text & vbCrLf & vbCrLf & "Numero di Giocatori: " & Num
CANCELLA_DECISIONI_GIOCATORI()
AGGIUNGI_NUOVA_CARTA()
End Sub
'-------------- TEMPORIZZO LA DECISIONE PER VOLTARE LE PRIME 3 CARTE
Private Sub TEMPORIZZA_DECISIONE_PRIME_DUE_CARTE(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
If cFine_TurnoUMANO = True Then
GoTo 0
End If
cFine_Turno = False
Dim Giocatore As Integer = cArreyGiocatori(cNGiocatoreTurno)
If Giocatore = cArreyGiocatori(cArreyGiocatori.Length - 1) Then
cFine_Turno = True
End If
If Giocatore <> 0 And (cGiocatore(Giocatore).RITORNA_STATO_GIOCATORE <> cGameOver) Then
LBLDecisioneGiocatore.Text = "Il giocatore " & Giocatore & vbCrLf & " sta pensando cosa fare ... "
DECISIONE_PRIME_DUE_CARTE(Giocatore)
Else
'Imposto per l'umano la possibilitŕ di scegliere cosa fare
LBLDecisioneGiocatore.Text = "č il tuo turno" & vbCrLf & "decidi cosa fare ... "
IMPOSTAZIONI_GIOCO_IN_CORSO_PRIMA_MANO()
Timer.Stop()
Exit Sub
End If
'Imposto quanto tempo ci mettera il prossimo avversario a pensare la mossa
Dim Random As Random = New Random()
Timer.Interval = Random.Next(200, TempoMassimo)
'If cNGiocatoreTurno = CNumeroGiocatori + 1 Then Timer.Interval = 1
'If cNGiocatoreTurno = cMazziere Then Timer.Interval = 1
cNGiocatoreTurno = cNGiocatoreTurno + 1
'Controllo quando ho finito il primo giro
If cFine_Turno = True Then
0:
PASSA_A_PRIMA_CARTA()
cFine_Turno = False
End If
End Sub
Private Sub TEMPORIZZA_DECISIONE_CARTA_SINGOLA(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'se č gia fine turno passo direttamente al passo successivo
If cFine_TurnoUMANO = True Then
GoTo 0
End If
cRilancio = False
Dim Giocatore As Integer = cArreyGiocatori(cNGiocatoreTurno)
If Giocatore = cArreyGiocatori(cArreyGiocatori.Length - 1) Then
cFine_Turno = True
End If
If Giocatore <> 0 Then
LBLDecisioneGiocatore.Text = "Il giocatore " & Giocatore & vbCrLf & " sta pensando cosa fare ... "
Select Case CNumeroDiMano
Case Is = 4
DECISIONI_SULLE_CARTE_SECONDA_MANO_TIMER(Giocatore)
Case Is = 5
DECISIONI_SULLE_CARTE_SECONDA_MANO_TIMER(Giocatore)
Case Is = 6
DECISIONI_SULLE_CARTE_SECONDA_MANO_TIMER(Giocatore)
End Select
Else
'Imposto per l'umano la possibilitŕ di scegliere cosa fare
LBLDecisioneGiocatore.Text = "č il tuo turno" & vbCrLf & "decidi cosa fare ... "
If cPuntata = 0 Then
IMPOSTAZIONI_TURNO_GIOCATORE(True)
Else
IMPOSTAZIONI_TURNO_GIOCATORE(False)
End If
Timer1.Stop()
Exit Sub
End If
'Controllo se c'č stato un rilancio; se si salvo la variabile
If cRilancio = True Then
'prova
'cNGiocatoreRilancio = cNGiocatoreTurno
cNGiocatoreRilancio = cNGiocatoreTurno
cRilancioGlobale = True
End If
'Imposto quanto tempo ci mettera il prossimo avversario a pensare la mossa
Dim Random As Random = New Random()
Timer1.Interval = Random.Next(250, TempoMassimo)
cNGiocatoreTurno = cNGiocatoreTurno + 1
If SOLO_UN_GIOCATORE_IN_GIOCO() = 1 Then
Dim a As Integer = 0
End If
'Controllo quando ho finito ilgiro
If cFine_Turno = True Then
0:
cFine_Turno = False
If SOLO_UN_GIOCATORE_IN_GIOCO() = 0 Then CNumeroDiMano = 6
Select Case CNumeroDiMano
Case Is = 4
Timer1.Stop()
GESTISCI_RILANCIO()
Case Is = 5
Timer1.Stop()
GESTISCI_RILANCIO()
Case Is = 6
Timer1.Stop()
GESTISCI_RILANCIO()
End Select
End If
End Sub
'RITORNA IL NUMERO IN BASE ALLA SITUAZIONE DEL TAVOLO
'O -> UN SOLO GIOCATORE SUL TAVOLO
'1 -> NESSUN GIOCATORE SUL TAVOLO
'2 -> PIů AVVERSARI
Public Function SOLO_UN_GIOCATORE_IN_GIOCO() As Integer
Dim NumeroAbbandoni As Integer = 0
For i As Integer = 0 To cArreyGiocatori.Length - 1
If cGiocatore(cArreyGiocatori(i)).RITORNA_STATO_GIOCATORE = (cLascio) Then
NumeroAbbandoni = NumeroAbbandoni + 1
End If
Next
If NumeroAbbandoni = cArreyGiocatori.Length - 1 Then
Return 0
Else
If NumeroAbbandoni = cArreyGiocatori.Length Then
Return 1
Else
Return 2
End If
End If
End Function
Public Sub MODIFICA_ARREY_POSIZIONE_GIOCATORI(ByVal FINE As Boolean)
Dim ii As Integer = 0
Dim Num As Integer
If FINE = True Then
Num = CONTA_NUMERO_GIOCATORI_IN_GIOCO_FINE_PARTITA()
Else
Num = CONTA_NUMERO_GIOCATORI_IN_GIOCO()
End If
Dim StatoGiocatore As String = ""
cMazziere = cArreyGiocatori(0)
cArreyGiocatori = New Integer(Num) {}
For i As Integer = cMazziere To cNumeroGiocatoriGlobali
StatoGiocatore = cGiocatore(i).RITORNA_STATO_GIOCATORE
If StatoGiocatore = cGioco Or StatoGiocatore = cVedo Or StatoGiocatore = cAllIn Or StatoGiocatore = cProntoAGiocare Then
cArreyGiocatori(ii) = i
ii += +1
End If
Next
For i As Integer = 0 To cMazziere - 1
StatoGiocatore = cGiocatore(i).RITORNA_STATO_GIOCATORE
If StatoGiocatore = cGioco Or StatoGiocatore = cVedo Or StatoGiocatore = cAllIn Or StatoGiocatore = cProntoAGiocare Then
cArreyGiocatori(ii) = i
ii += +1
End If
Next
End Sub
Public Sub GESTISCI_RILANCIO()
TimerRilancio.Start()
End Sub
'Trovato errore
'Sul tavolo
'asso asso donna carta carta
'in mano asso donna
Public Sub FINE_PARTITA()
'cGiocatore(0).cCarte = "KPQF3P6F8CDQ9Q"
'cGiocatore(1).cCarte = "KPKFKQAFACDQ9Q"
'cGiocatore(2).cCarte = "KPKFKQ5F5CDQ9Q"
'cGiocatore(3).cCarte = "QP7F3P6F8CDQ9Q"
'cGiocatore(3).IMPOSTA_STATO_GIOCATORE(cGioco)
'cGiocatore(4).IMPOSTA_STATO_GIOCATORE(cLascio)
'cGiocatore(5).cCarte = "AP7CAFAQ8CDQAQ"
'cGiocatore(5).IMPOSTA_STATO_GIOCATORE(cAllIn)
'cGiocatore(5).IMPOSTA_PUNTATA(3, (0))
CONTROLLA_CARTE()
cGiocatoreVincitoreAllIn = False
Me.Refresh()
REFRESH_SOLDI_PIATTO()
GESTISCI_PIATTO_VINCITORE()
'LBLDecisioneGiocatore.Text = "Vince " & cPiatto.RITORNA_VALORE_PIATTO & " fish il giocatore " & NGiocatoreVincitore
STAMPA_RISULTATO_GIOCATORI()
MODIFICA_STATO_GIOCATORE_FINE_PARTITA(False)
MODIFICA_ARREY_POSIZIONE_GIOCATORI(True)
RESETTA_VARIABILI_TIMER()
'Era qui STAMPA_RISULTATO_GIOCATORI
FAI_SCALARE_ARREY_GIOCATORI()
IMPOSTAZIONI_NUOVA_MANO()
cPiatto.RIAZZERA_PIATTO()
REFRESH_SOLDI_PIATTO()
CONTROLLA_SOLDI()
End Sub
Public Sub CONTROLLA_SOLDI()
Dim Tot As Integer = 0
For i As Integer = 0 To cNumeroGiocatoriGlobali
Tot = cGiocatore(i).RITORNA_SOLDI_GIOCATORE + Tot
Next
TextBox3.Text = CStr(Tot)
'Se non vengono vinti tutti i soldi il piatto del giro successivo si arricchisce
Dim SoldiTeorici As Integer = (cNumeroGiocatoriGlobali + 1) * Soldi_Iniziali
If Tot <> SoldiTeorici Then
Dim SoldiMancati As Integer = SoldiTeorici - Tot
cSoldiNonDati = SoldiMancati
LBLDecisioneGiocatore.Text &= "Il piatto del prossimo giro parte da " & SoldiMancati & " fish"
End If
End Sub
Public Sub GESTISCI_PIATTO_VINCITORE()
Dim NGiocatoreVincitore As String = TROVA_N_VINCITORE(False)
Dim NGiocatoreVincitore2 As String = TROVA_N_VINCITORE(True)
Label1.Text = NGiocatoreVincitore
Label1.Text &= vbCrLf & NGiocatoreVincitore2
Dim NsoldiAll As Integer = 0
'TEST
Try
Dim NGiocatoriVincitori As Integer = NGiocatoreVincitore.Length
Dim Vincitori As Integer() = New Integer(NGiocatoriVincitori - 1) {}
For i As Integer = 0 To NGiocatoriVincitori - 1
Vincitori(i) = CInt(NGiocatoreVincitore.Substring(i, 1))
Next
Dim Soldi As Integer = cPiatto.RITORNA_VALORE_PIATTO
Dim SoldiPiatto As Integer = Soldi
'Un solo Giocatore vincitore
If NGiocatoriVincitori = 1 Then
'Giocatore vincente in all in modifico il numero dei soldi che vince
'VINCE ALL - IN -----------------------------------------
If cGiocatore(Vincitori(0)).RITORNA_STATO_GIOCATORE() = cAllIn Then
Soldi = RITORNA_SOLDI_VINCITORE_IN_ALL_IN(Vincitori(0))
cGiocatore(Vincitori(0)).VINCI_SOLDI(Soldi)
LBLDecisioneGiocatore.Text = "Vince " & Soldi & " fish il giocatore " & (Vincitori(0)) & " (all-in)" & vbCrLf
REFRESH_SOLDI_GIOCATORE((Vincitori(0)))
'Da fare
'Do il resto dei soldi al secondo/i arrivato
SoldiPiatto = SoldiPiatto - Soldi
Dim CasoA As Boolean = False
If NGiocatoreVincitore2.Length = 1 Then
If cGiocatore(CInt(NGiocatoreVincitore2)).RITORNA_STATO_GIOCATORE() = cAllIn Then
Soldi = RITORNA_SOLDI_VINCITORE_IN_ALL_IN(Vincitori(0))
If Soldi < SoldiPiatto Then
SoldiPiatto = Soldi
CasoA = True
End If
End If
cGiocatore(CInt(NGiocatoreVincitore2)).VINCI_SOLDI(SoldiPiatto)
LBLDecisioneGiocatore.Text &= "Vince 2 arrivato " & SoldiPiatto & " fish il giocatore " & (CInt(NGiocatoreVincitore2))
If CasoA = True Then
LBLDecisioneGiocatore.Text &= "(all-in)"
End If
LBLDecisioneGiocatore.Text &= vbCrLf
REFRESH_SOLDI_GIOCATORE(CInt(NGiocatoreVincitore2))
Else
NGiocatoriVincitori = NGiocatoreVincitore2.Length
Vincitori = New Integer(NGiocatoriVincitori - 1) {}
For i As Integer = 0 To NGiocatoriVincitori - 1
Vincitori(i) = CInt(NGiocatoreVincitore.Substring(i, 1))
Next
Soldi = CInt(SoldiPiatto / NGiocatoriVincitori)
For i As Integer = 0 To NGiocatoriVincitori
cGiocatore(Vincitori(i)).VINCI_SOLDI(Soldi)
LBLDecisioneGiocatore.Text &= "Vince " & Soldi & " fish il giocatore " & Vincitori(i) & vbCrLf
REFRESH_SOLDI_GIOCATORE(Vincitori(i))
Next
End If
'---------------------------------
'Dim TotalePuntateGiocacatoreAllIn As Integer = cGiocatore(Vincitori(0)).RITORNA_PUNTATE_COMPLESSIVE
'RIDAI_SOLDI_GIOCATORI_NON_IN_ALL_IN(TotalePuntateGiocacatoreAllIn, Vincitori(0))
'---------------------------------
cGiocatoreVincitoreAllIn = True
'Ha vinto un giocatore che non č in all in
Else
LBLDecisioneGiocatore.Text = "Vince " & Soldi & " fish il giocatore " & (CInt(NGiocatoreVincitore)) & vbCrLf
cGiocatore(Vincitori(0)).VINCI_SOLDI(Soldi)
REFRESH_SOLDI_GIOCATORE(Vincitori(0))
End If
'FINE VINCE ALL - IN -----------------------------------------
'2 O PIů VINCITORI
'Divido il tutto per il numero di vincitori (anche quello in all in)
Else
LBLDecisioneGiocatore.Text = ""
Soldi = CInt(Soldi / NGiocatoriVincitori)
For i As Integer = 0 To NGiocatoriVincitori
cGiocatore(Vincitori(i)).VINCI_SOLDI(Soldi)
LBLDecisioneGiocatore.Text &= "Vince " & Soldi & " fish il giocatore " & Vincitori(i) & vbCrLf
REFRESH_SOLDI_GIOCATORE(Vincitori(i))
Next
End If
Catch
End Try
'LBLDecisioneGiocatore.Text &= vbCrLf & NsoldiAll
End Sub
Public Sub GESTISCI_PIATTO_VINCITORE2()
Dim NGiocatoreVincitore As String = TROVA_N_VINCITORE(False)
Dim NGiocatoreVincitore2 As String = TROVA_N_VINCITORE(True)
Label1.Text = NGiocatoreVincitore
Label1.Text &= vbCrLf & NGiocatoreVincitore2
Dim NsoldiAll As Integer = 0
'TEST
Try
Dim NGiocatoriVincitori As Integer = NGiocatoreVincitore.Length
Dim Vincitori As Integer() = New Integer(NGiocatoriVincitori - 1) {}
For i As Integer = 0 To NGiocatoriVincitori - 1
Vincitori(i) = CInt(NGiocatoreVincitore.Substring(i, 1))
Next
Dim Soldi As Integer = cPiatto.RITORNA_VALORE_PIATTO
Dim SoldiPiatto As Integer = cPiatto.RITORNA_VALORE_PIATTO
'Un solo Giocatore vincitore
If NGiocatoriVincitori = 1 Then
'Giocatore vincente in all in modifico il numero dei soldi che vince
'VINCE ALL - IN -----------------------------------------
If cGiocatore(Vincitori(0)).RITORNA_STATO_GIOCATORE() = cAllIn Then
Soldi = RITORNA_SOLDI_VINCITORE_IN_ALL_IN(Vincitori(0))
cGiocatore(Vincitori(0)).VINCI_SOLDI(Soldi)
LBLDecisioneGiocatore.Text = "Vince " & Soldi & " fish il giocatore " & (Vincitori(0)) & vbCrLf
REFRESH_SOLDI_GIOCATORE(Vincitori(Vincitori(0)))
'Da fare
'Do il resto dei soldi al secondo/i arrivato
SoldiPiatto = SoldiPiatto - Soldi
If NGiocatoreVincitore2.Length = 1 Then
cGiocatore(CInt(NGiocatoreVincitore2)).VINCI_SOLDI(Soldi)
LBLDecisioneGiocatore.Text &= "Vince " & Soldi & " fish il giocatore " & (CInt(NGiocatoreVincitore2)) & vbCrLf
REFRESH_SOLDI_GIOCATORE(Vincitori(CInt(NGiocatoreVincitore2)))
Else
NGiocatoriVincitori = NGiocatoreVincitore2.Length
Vincitori = New Integer(NGiocatoriVincitori - 1) {}
For i As Integer = 0 To NGiocatoriVincitori - 1
Vincitori(i) = CInt(NGiocatoreVincitore.Substring(i, 1))
Next
Soldi = CInt(SoldiPiatto / NGiocatoriVincitori)
For i As Integer = 0 To NGiocatoriVincitori
cGiocatore(Vincitori(i)).VINCI_SOLDI(Soldi)
LBLDecisioneGiocatore.Text &= "Vince " & Soldi & " fish il giocatore " & Vincitori(i) & vbCrLf
REFRESH_SOLDI_GIOCATORE(Vincitori(i))
Next
End If
'---------------------------------
'Dim TotalePuntateGiocacatoreAllIn As Integer = cGiocatore(Vincitori(0)).RITORNA_PUNTATE_COMPLESSIVE
'RIDAI_SOLDI_GIOCATORI_NON_IN_ALL_IN(TotalePuntateGiocacatoreAllIn, Vincitori(0))
'---------------------------------
cGiocatoreVincitoreAllIn = True
End If
'FINE VINCE ALL - IN -----------------------------------------
LBLDecisioneGiocatore.Text = "Vince " & Soldi & " fish il giocatore " & (CInt(NGiocatoreVincitore)) & vbCrLf
cGiocatore(Vincitori(0)).VINCI_SOLDI(Soldi)
REFRESH_SOLDI_GIOCATORE(Vincitori(0))
'Se vince il giocatore in all in lascio le scritte con l'importo delle cifre ridate
'If cGiocatoreVincitoreAllIn = True Then
'LBLDecisioneGiocatore.Text &= "Vince " & Soldi & " fish il giocatore " & NGiocatoreVincitore
'Else
'LBLDecisioneGiocatore.Text = "Vince " & Soldi & " fish il giocatore " & NGiocatoreVincitore
'End If
'2 O PIů VINCITORI
'Divido il tutto per il numero di vincitori (anche quello in all in)
Else
LBLDecisioneGiocatore.Text = ""
Soldi = CInt(Soldi / NGiocatoriVincitori)
For i As Integer = 0 To NGiocatoriVincitori
cGiocatore(Vincitori(i)).VINCI_SOLDI(Soldi)
LBLDecisioneGiocatore.Text &= "Vince " & Soldi & " fish il giocatore " & Vincitori(i) & vbCrLf
REFRESH_SOLDI_GIOCATORE(Vincitori(i))
Next
End If
Catch
End Try
'LBLDecisioneGiocatore.Text &= vbCrLf & NsoldiAll
End Sub
Public Sub RIDAI_SOLDI_GIOCATORI_NON_IN_ALL_IN(ByVal Soldi_giocati_da_all_in_vincitore As Integer, ByVal nGIOCATOREALLIN As Integer)
LBLDecisioneGiocatore.Text = ""
For I As Integer = 0 To cArreyGiocatori.Length - 1
Dim NGiocatore As Integer = cArreyGiocatori(I)
If NGiocatore = nGIOCATOREALLIN Then
'Salto quando č il turno del vincitore
Else
Dim PuntataGiocatore As Integer = cGiocatore(NGiocatore).RITORNA_PUNTATE_COMPLESSIVE
If Soldi_giocati_da_all_in_vincitore < PuntataGiocatore Then
Dim SoldiDaRidare As Integer = PuntataGiocatore - Soldi_giocati_da_all_in_vincitore
cGiocatore(NGiocatore).VINCI_SOLDI(SoldiDaRidare)
REFRESH_SOLDI_PIATTO()
REFRESH_SOLDI_GIOCATORE(NGiocatore)
LBLDecisioneGiocatore.Text &= "Vengono Ridati " & SoldiDaRidare & " al giocatore " & NGiocatore & vbCrLf
End If
End If
Next
End Sub
Public Sub STAMPA_RISULTATO_GIOCATORI()
For I As Integer = 0 To cArreyGiocatori.Length - 1
Dim ii As Integer = cArreyGiocatori(I)
Dim Stato As String = cGiocatore(ii).RITORNA_STATO_GIOCATORE
If Stato <> cGameOver Then
Dim Mano As String = RITORNA_NOME_CARTE(cGiocatore(ii).RITORNA_CARTE_GIOCATORE)
'Se il giocatore nn ha lasciato gli faccio girare le carte
If Stato = cLascio Then
Else
VISUALIZZA_CARTA_GIOCATORE(cGiocatore(ii).RITORNA_CARTE_GIOCATORE, ii)
Mano = RITORNA_NOME_COMPLETO_DA_SIGLA(Mano)
CType(Me.Controls.Item("Giocatore" & ii), Label).Text = Mano
End If
'PROVA, SPOSTO QUESTO QUI --------------------------
'Mano = RITORNA_NOME_COMPLETO_DA_SIGLA(Mano)
'CType(Me.Controls.Item("Giocatore" & ii), Label).Text = Mano
'----------------------------------
End If
Next
End Sub
Public Sub FAI_SCALARE_ARREY_GIOCATORI()
Dim ARREY_NUOVO() As Integer = New Integer(cArreyGiocatori.Length - 1) {}
' In Errore un unico Vincitore
Try
ARREY_NUOVO(0) = cArreyGiocatori(1)
For I As Integer = 1 To cArreyGiocatori.Length - 2
ARREY_NUOVO(I) = cArreyGiocatori(I + 1)
Next
ARREY_NUOVO(cArreyGiocatori.Length - 1) = cArreyGiocatori(0)
cArreyGiocatori = ARREY_NUOVO
Catch ex As Exception
LBLDecisioneGiocatore.Text = "Il giocatore " & cArreyGiocatori(0) & " lascia in mutande gli avversari"
End Try
End Sub
Public Sub VISUALIZZA_CARTA_GIOCATORE(ByVal carta As String, ByVal i As Integer)
'Carico Immagine Carta Giocatori
Dim Parte1 As String = carta.Substring(0, 1)
Dim Parte2 As String = carta.Substring(1, 1)
Dim Immagine As Image = CType(Me.Controls.Item(CStr("PIC" & Parte1 & Parte2)), PictureBox).Image
CType(Me.Controls.Item(CStr("Carta" & i & "G" & 1)), PictureBox).Image = Immagine
Parte1 = carta.Substring(2, 1)
Parte2 = carta.Substring(3, 1)
Immagine = CType(Me.Controls.Item(CStr("PIC" & Parte1 & Parte2)), PictureBox).Image
CType(Me.Controls.Item(CStr("Carta" & i & "G" & 2)), PictureBox).Image = Immagine
End Sub
Public Sub GESTISCI_PULSANTI_GIOCATORE(ByVal PulsanteGioca As String)
cFine_TurnoUMANO = False
cNGiocatoreTurno = cNGiocatoreTurno + 1
If cTurnoRilancio = False Then
'PUNTATA TIMER CARTA NORMALE
Select Case PulsanteGioca
Case Is = cGioco
If CNumeroDiMano = 3 Then
GESTISCI_DECISIONE_GIOCATORE(0, cGioco, cPiccoloBuio)
If cFine_Turno = True Then cFine_TurnoUMANO = True
Timer.Start()
'If cFine_Turno = True Then PASSA_A_PRIMA_CARTA()
'cFine_Turno = False
Exit Sub
End If
Dim PuntataGiocatore As Integer
Try
PuntataGiocatore = CInt(TXTPuntata.Text)
Catch ex As Exception
PuntataGiocatore = 0
End Try
'PrimaMano
If CNumeroDiMano = 4 Or CNumeroDiMano = 5 Or CNumeroDiMano = 6 Then
GESTISCI_DECISIONE_GIOCATORE(0, cGioco, PuntataGiocatore)
If PuntataGiocatore <= cPuntata Then
Else
cRilancio = True
cPuntata = PuntataGiocatore
cRilancioGlobale = True
'-------------------------------------------
'Prova rilancio
'Controllo se c'č stato un rilancio; se si salvo la variabile
If cRilancio = True Then
cNGiocatoreRilancio = cNGiocatoreTurno - 1
cRilancioGlobale = True
End If
'-------------------------------------------
End If
Timer1.Start()
If cFine_Turno = True Then cFine_TurnoUMANO = True
cFine_Turno = False
End If
Case Is = cLascio
IMPOSTAZIONI_GIOCO_ABBANDONATO()
If CNumeroDiMano = 3 Then
GESTISCI_DECISIONE_GIOCATORE(0, cLascio, cPiccoloBuio)
Timer.Start()
If cFine_Turno = True Then PASSA_A_PRIMA_CARTA()
cFine_Turno = False
Else
GESTISCI_DECISIONE_GIOCATORE(0, cLascio, cPiccoloBuio)
Timer1.Start()
If cFine_Turno = True Then
If CNumeroDiMano <> 6 Then
GIRA_CARTA_SINGOLA()
Else
cFine_TurnoUMANO = True
End If
End If
cFine_Turno = False
End If
Case Is = cVedo
cPuntata = 0
GESTISCI_DECISIONE_GIOCATORE(0, cVedo, 0)
If cFine_Turno = True Then
If CNumeroDiMano <> 6 Then
GIRA_CARTA_SINGOLA()
Else
cFine_TurnoUMANO = True
End If
End If
Timer1.Start()
cFine_Turno = False
End Select
'MODALITŕ RILANCIO
Else
Select Case PulsanteGioca
Case Is = cGioco
cGiocatore(0).SCALA_SOLDI(CDifferenzaDaAggiungereNelPiatto)
cPiatto.AGGIUNGI_SOLDI(CDifferenzaDaAggiungereNelPiatto)
REFRESH_SOLDI_PIATTO()
CType(Me.Controls.Item("Giocatore" & 0), Label).Text = "Vengo a vedere:" & CDifferenzaDaAggiungereNelPiatto & " fish."
REFRESH_SOLDI_GIOCATORE(0)
TimerRilancio.Start()
Case Is = cLascio
CType(Me.Controls.Item("Giocatore" & 0), Label).Text = cLascio
cGiocatore(0).IMPOSTA_STATO_GIOCATORE(cLascio)
TimerRilancio.Start()
End Select
End If
'č ridondante, si potrebbe togliere
IMPOSTAZIONI_TEMPORIZZAZIONE_TURNO_PC(True)
End Sub
Private Sub CMDGioco_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDGioco.Click
IMPOSTAZIONI_TEMPORIZZAZIONE_TURNO_PC(False)
GESTISCI_PULSANTI_GIOCATORE(cGioco)
End Sub
Private Sub CMDLascia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDLascia.Click
IMPOSTAZIONI_TEMPORIZZAZIONE_TURNO_PC(False)
GESTISCI_PULSANTI_GIOCATORE(cLascio)
End Sub
Private Sub CmdVedo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdVedo.Click
cPuntata = 0
IMPOSTAZIONI_TEMPORIZZAZIONE_TURNO_PC(False)
GESTISCI_PULSANTI_GIOCATORE(cVedo)
End Sub
Private Sub RILANCIO(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerRilancio.Tick
cTurnoRilancio = True
Dim Giocatore As Integer = (cArreyGiocatori(ciRilancio))
If cGiocatore(Giocatore).RITORNA_STATO_GIOCATORE = cGioco Or cGiocatore(Giocatore).RITORNA_STATO_GIOCATORE = cVedo Then
Dim PuntataGiocatore As Integer = cGiocatore(Giocatore).RITORNA_PUNTATA_GIOCATORE_SPECIFICA(CNumeroDiMano - 3)
Dim DifferenzaDaAggiungereNelPiatto As Integer = cPuntata - PuntataGiocatore
If DifferenzaDaAggiungereNelPiatto < 0 Then
Dim Errore As String = ""
End If
Dim SoldiDisponibili As Integer = cGiocatore(Giocatore).RITORNA_SOLDI_GIOCATORE
If Giocatore = 0 Then
CDifferenzaDaAggiungereNelPiatto = DifferenzaDaAggiungereNelPiatto
'Imposto per l'umano la possibilitŕ di scegliere cosa fare
LBLDecisioneGiocatore.Text = "č il tuo turno" & vbCrLf & "decidi se andare a vedere ... "
IMPOSTAZIONI_TURNO_GIOCATORE(False)
'ciRilancio = ciRilancio + 1
TimerRilancio.Stop()
GoTo CONTROLLOFINALE
End If
If DifferenzaDaAggiungereNelPiatto > cGiocatore(Giocatore).cRilancioMassimo Then
'Lascio la partita
CType(Me.Controls.Item("Giocatore" & Giocatore), Label).Text = cLascio
cGiocatore(Giocatore).IMPOSTA_STATO_GIOCATORE(cLascio)
CType(Me.Controls.Item(CStr("Carta" & Giocatore & "G" & 1)), PictureBox).Image = PICRetroA.Image
CType(Me.Controls.Item(CStr("Carta" & Giocatore & "G" & 2)), PictureBox).Image = PICRetroA.Image
Else
If SoldiDisponibili >= DifferenzaDaAggiungereNelPiatto Then
cGiocatore(Giocatore).SCALA_SOLDI(DifferenzaDaAggiungereNelPiatto)
cPiatto.AGGIUNGI_SOLDI(DifferenzaDaAggiungereNelPiatto)
REFRESH_SOLDI_PIATTO()
CType(Me.Controls.Item("Giocatore" & Giocatore), Label).Text = "Vengo a vedere:" & DifferenzaDaAggiungereNelPiatto & " fish."
REFRESH_SOLDI_GIOCATORE(Giocatore)
Dim PuntataGiocatoreGiro As Integer = cGiocatore(Giocatore).RITORNA_PUNTATA(CNumeroDiMano - 3)
cGiocatore(Giocatore).IMPOSTA_PUNTATA(CNumeroDiMano - 3, PuntataGiocatoreGiro + DifferenzaDaAggiungereNelPiatto)
'Giocatore in all-in
Else
cGiocatore(Giocatore).SCALA_SOLDI(SoldiDisponibili)
cGiocatore(Giocatore).IMPOSTA_STATO_GIOCATORE(cAllIn)
cPiatto.AGGIUNGI_SOLDI(SoldiDisponibili)
REFRESH_SOLDI_PIATTO()
Dim PuntataGiocatoreGiro As Integer = cGiocatore(Giocatore).RITORNA_PUNTATA(CNumeroDiMano - 3)
cGiocatore(Giocatore).IMPOSTA_PUNTATA_GIOCATORE(PuntataGiocatoreGiro + DifferenzaDaAggiungereNelPiatto)
CType(Me.Controls.Item("Giocatore" & Giocatore), Label).Text = "Vengo a vedere:" & SoldiDisponibili & " fish."
REFRESH_SOLDI_GIOCATORE(Giocatore)
End If
End If
End If
'Imposto quanto tempo ci mettera il prossimo avversario a pensare la mossa
Dim Random As Random = New Random()
TimerRilancio.Interval = Random.Next(250, TempoMassimo)
CONTROLLOFINALE:
If (cRilancioGlobale = False) Or (ciRilancio = cNGiocatoreRilancio) Then
TimerRilancio.Stop()
Select Case CNumeroDiMano
Case Is = 4
GIRA_CARTA_SINGOLA()
Case Is = 5
GIRA_CARTA_SINGOLA()
Case Is = 6
FINE_PARTITA()
End Select
Exit Sub
End If
ciRilancio = ciRilancio + 1
End Sub
Private Sub MODIFICA_STATO_GIOCATORE_FINE_PARTITA(ByVal AncheGraficamente As Boolean)
For I As Integer = 0 To cNumeroGiocatoriGlobali
If cGiocatore(I).RITORNA_SOLDI_GIOCATORE = 0 Then
cGiocatore(I).IMPOSTA_STATO_GIOCATORE(cGameOver)
If AncheGraficamente = True Then
CType(Me.Controls.Item(CStr("Carta" & I & "G" & 1)), PictureBox).Image = PICRetroA.Image
CType(Me.Controls.Item(CStr("Carta" & I & "G" & 2)), PictureBox).Image = PICRetroA.Image
End If
Else
cGiocatore(I).IMPOSTA_STATO_GIOCATORE(cProntoAGiocare)
If AncheGraficamente = True Then
CType(Me.Controls.Item(CStr("Carta" & I & "G" & 1)), PictureBox).Image = Nothing
CType(Me.Controls.Item(CStr("Carta" & I & "G" & 2)), PictureBox).Image = Nothing
End If
End If
Next
End Sub
Private Sub CMDAumentaPuntata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDAumentaPuntata.Click
TXTPuntata.Text = CStr(CDbl(TXTPuntata.Text) + 1)
CMDDiminuisciPuntata.Enabled = True
CMDAumentaPuntata.Enabled = True
If CDbl(TXTPuntata.Text) = cGiocatore(0).RITORNA_SOLDI_GIOCATORE Then
CMDAumentaPuntata.Enabled = False
Else
CMDAumentaPuntata.Enabled = True
End If
End Sub
Private Sub CMDDiminuisciPuntata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDDiminuisciPuntata.Click
If CDbl(TXTPuntata.Text) = cPuntata Then
CMDDiminuisciPuntata.Enabled = False
CMDAumentaPuntata.Enabled = True
Else
TXTPuntata.Text = CStr(CDbl(TXTPuntata.Text) - 1)
CMDAumentaPuntata.Enabled = True
End If
If CDbl(TXTPuntata.Text) = cPuntata Then
CMDDiminuisciPuntata.Enabled = False
CMDAumentaPuntata.Enabled = True
End If
End Sub
' DA MODIFICARE ERRORI
Public Function RITORNA_SOLDI_VINCITORE_IN_ALL_IN(ByVal Giocatore_Vincente As Integer) As Integer
Dim TotaleAllIn As Integer = 0
'Numero Di mano
For ii As Integer = 0 To 3
Dim Fine As Boolean = False
'Faccio scorrere i giocatori
For i As Integer = 0 To CNumeroGiocatori
Dim PuntataGiocatore As Integer = cGiocatore(i).RITORNA_PUNTATA_GIOCATORE_SPECIFICA(ii)
Dim PuntataGiocatoreVincente As Integer = cGiocatore(Giocatore_Vincente).RITORNA_PUNTATA_GIOCATORE_SPECIFICA(ii)
TotaleAllIn += +PuntataGiocatore
If PuntataGiocatoreVincente < PuntataGiocatore Then Fine = True
Next
If Fine = True Then
Return TotaleAllIn
End If
Next
Return TotaleAllIn
End Function
Public Sub New()
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
End Sub
Private Sub CMDNGiocatori1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDNGiocatori1.Click
SCEGLI_QUANTI_GIOCATORI(1)
End Sub
Public Sub SCEGLI_QUANTI_GIOCATORI(ByVal NGiocatori As Integer)
CNumeroGiocatori = NGiocatori
cNumeroGiocatoriGlobali = NGiocatori
cArreyGiocatori = New Integer(NGiocatori) {}
PANSfondo.Visible = False
INIZIO_PARTITA()
IMPOSTAZIONI_NUOVA_MANO()
End Sub
Private Sub CMDNGiocatori2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDNGiocatori2.Click
SCEGLI_QUANTI_GIOCATORI(2)
End Sub
Private Sub CMDNGiocatori3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDNGiocatori3.Click
SCEGLI_QUANTI_GIOCATORI(3)
End Sub
Private Sub CMDNGiocatori4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDNGiocatori4.Click
SCEGLI_QUANTI_GIOCATORI(4)
End Sub
Private Sub CMDNGiocatori5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMDNGiocatori5.Click
SCEGLI_QUANTI_GIOCATORI(5)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SCEGLI_QUANTI_GIOCATORI(6)
End Sub
Private Sub LBLCrediti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LBLCrediti.Click
If LBLCrediti2.Visible = True Then
LBLCrediti2.Visible = False
Exit Sub
End If
If LBLCrediti2.Visible = False Then
LBLCrediti2.Visible = True
Exit Sub
End If
End Sub
End Class
Public Class ClassePIATTO
Dim cSoldi As Integer = 0
Public Sub AGGIUNGI_SOLDI(ByVal Soldi_da_Aggiungere As Integer)
cSoldi = cSoldi + Soldi_da_Aggiungere
End Sub
Public Function RITORNA_VALORE_PIATTO() As Integer
Return cSoldi
End Function
Public Sub RIAZZERA_PIATTO()
cSoldi = 0
End Sub
End Class
Public Class ClasseGIOCATORE
Dim cSoldi As Integer
Dim cStato As String = ""
Public cCarte As String = ""
Dim cStringaCarteGiocatore As String = ""
Dim cPuntata As Integer = 0
Dim cArreyPuntate As Integer() = New Integer(3) {}
Public cCoraggio As Integer = 0
Public cRilancioMassimo As Integer = 0
Public Function RITORNA_PUNTATA_GIOCATORE_SPECIFICA(ByVal NumeroDiMano As Integer) As Integer
Return cArreyPuntate(NumeroDiMano)
End Function
Public Sub IMPOSTA_PUNTATA(ByVal Giro As Integer, ByVal Puntata As Integer)
cArreyPuntate(Giro) = Puntata
End Sub
Public Function RITORNA_PUNTATA(ByVal Giro As Integer) As Integer
Return cArreyPuntate(Giro)
End Function
Public Sub IMPOSTA_STRINGA_CARTE_GIOCATORE(ByVal CARTE_GIOCATORE As String)
cStringaCarteGiocatore = CARTE_GIOCATORE
End Sub
Public Function RITORNA_STRINGA_CARTE_GIOCATORE() As String
Return cStringaCarteGiocatore
End Function
Public Sub SCALA_SOLDI(ByVal Soldi_da_Scalare As Integer)
cSoldi = cSoldi - Soldi_da_Scalare
End Sub
Public Sub VINCI_SOLDI(ByVal Soldi_Vinti As Integer)
cSoldi = cSoldi + Soldi_Vinti
End Sub
Public Sub New(ByVal ValoreInizialeSoldi As Integer)
cSoldi = ValoreInizialeSoldi
End Sub
Public Sub IMPOSTA_SOLDI_INIZIALI(ByVal ValoreInizialeSoldi As Integer)
cSoldi = ValoreInizialeSoldi
End Sub
Public Sub RIAZZERA_CARTE()
cCarte = ""
End Sub
Public Function RITORNA_SOLDI_GIOCATORE() As Integer
Return cSoldi
End Function
Public Function RITORNA_STATO_GIOCATORE() As String
Return cStato
End Function
Public Sub IMPOSTA_STATO_GIOCATORE(ByVal StatoGiocatore As String)
cStato = StatoGiocatore
End Sub
Public Sub AGGIUNGI_CARTA(ByVal Carta As String)
cCarte = cCarte & Carta
End Sub
Public Function RITORNA_CARTE_GIOCATORE() As String
Return cCarte
End Function
Public Sub IMPOSTA_PUNTATA_GIOCATORE(ByVal Puntata As Integer)
cPuntata = Puntata
End Sub
Public Function RITORNA_PUNTATA_GIOCATORE() As Integer
Return cPuntata
End Function
Public Function RITORNA_PUNTATE_COMPLESSIVE() As Integer
Return cArreyPuntate(0) + cArreyPuntate(1) + cArreyPuntate(2) + cArreyPuntate(3)
End Function
End Class
Public Class Mazzo
'Carte = New String(51) {"1Q", "2Q", "3Q", "4Q", "5Q", "6Q", "7Q", "8Q", "9Q", "DQ", "JQ", "QQ", "KQ", "1C", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "DC", "JC", "QC", "KC", "1F", "2F", "3F", "4F", "5F", "6F", "7F", "8F", "9F", "DF", "JF", "QF", "KF", "1P", "2P", "3P", "4P", "5P", "6P", "7P", "8P", "9P", "DP", "JP", "QP", "KP"}
'Carte = New String(51) {"1C", "1Q", "1F", "1P", "2C", "2Q", "2F", "2P", "3C", "3Q", "3F", "3P", "3C", "4Q", "4F", "4P", "4C", "5Q", "5F", "5P", "6C", "6Q", "6F", "6P", "7C", "7Q", "7F", "7P", "8C", "8Q", "8F", "8P", "9C", "9Q", "9F", "9P", "DC", "DQ", "DF", "JP", "JC", "JQ", "JF", "JP", "QC", "QQ", "QF", "QP", "KC", "KQ", "KF", "KP"}
Public Carte As String() = New String(51) {"1Q", "2Q", "3Q", "4Q", "5Q", "6Q", "7Q", "8Q", "9Q", "DQ", "JQ", "QQ", "KQ", "1C", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "DC", "JC", "QC", "KC", "1F", "2F", "3F", "4F", "5F", "6F", "7F", "8F", "9F", "DF", "JF", "QF", "KF", "1P", "2P", "3P", "4P", "5P", "6P", "7P", "8P", "9P", "DP", "JP", "QP", "KP"}
Public CarteMescolate As String() = New String(51) {}
Public NDiCarta As Integer = -1
Public Sub New()
MESCOLA_MAZZO()
Carte = New String(51) {"8Q", "JQ", "KC", "DF", "AQ", "8F", "DQ", "7P", "6Q", "3C", "QF", "8C", "6F", "8P", "9Q", "4F", "QQ", "QC", "2F", "9P", "3F", "5F", "7C", "DC", "3Q", "KQ", "2C", "6C", "5P", "KF", "7F", "4P", "KP", "4Q", "JC", "5C", "AF", "JF", "3P", "9C", "6P", "JP", "4C", "2P", "9F", "5Q", "QP", "DP", "2Q", "7Q", "AC", "AP"}
End Sub
Public Sub RIPRISTINA_MAZZO()
Carte = New String(51) {"8Q", "JQ", "KC", "DF", "AQ", "8F", "DQ", "7P", "6Q", "3C", "QF", "8C", "6F", "8P", "9Q", "4F", "QQ", "QC", "2F", "9P", "3F", "5F", "7C", "DC", "3Q", "KQ", "2C", "6C", "5P", "KF", "7F", "4P", "KP", "4Q", "JC", "5C", "AF", "JF", "3P", "9C", "6P", "JP", "4C", "2P", "9F", "5Q", "QP", "DP", "2Q", "7Q", "AC", "AP"}
NDiCarta = -1
End Sub
Public Sub MESCOLA_MAZZO()
RIPRISTINA_MAZZO()
Dim NRandom As Random = New Random
For i As Integer = 0 To 51
Dim NumeroEstratto As Integer = NRandom.Next(0, (52 - i) - 1)
CarteMescolate(i) = Carte(NumeroEstratto)
Carte(NumeroEstratto) = Carte(51 - i)
Next
End Sub
Public Function DAI_CARTA() As String
NDiCarta = NDiCarta + 1
Return CarteMescolate(NDiCarta)
End Function
End Class