Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

[Guida] Tris in VB.net
(Questo messaggio è stato modificato l'ultima volta il: 01/08/2014, 17:27 da Admin.)

Amministratore
Messaggi: 2,334
Discussioni: 231
Registrato: 03-2011
Mix: 2,570
In questa guida spiego come creare in visual basic.net il gioco del classico Tris con windows form. Useremo un solo form.
Create il progetto.
Posizionate sul form 10 bottoni.
9 bottoni disponeteli cercando di creare una matrice 3x3, poichè i simboli X ed O per stabilire la mossa verranno immessi cliccando sui bottoni.
Dovrebbe uscire una cosa del genere, non fate caso allo stile dei bottoni:

[Per vedere i link devi REGISTRARTI.]


Io ho usato questo metodo per capire a chi sta la mossa da fare.
Ho creato una flag, chiamata FlagMossa (impostata a priori su False), una volta cliccato il decimo bottone, inizierà la partita impostando la flag su True e automaticamente verrà immesso come primo simbolo la X.
Quindi cliccando su un qualsiasi bottone della matrice per immettere il proprio segno verrà immessa la X. Dal codice vi accorgerete come.

    VBNET Programming
  1. Private Sub b1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b1.Click
  2. If FlagMossa = True And b1.Text = "" Then
  3. b1.Text = "X"
  4. turno.Text = "Turno di " & nome2.Text & "."
  5. FlagMossa = False
  6. ElseIf FlagMossa = False And b1.Text = "" Then
  7. b1.Text = "O"
  8. turno.Text = "Turno di " & nome1.Text & "."
  9. FlagMossa = True
  10. End If
  11.  
  12. If b1.Text = "X" And b2.Text = "X" And b3.Text = "X" Then
  13. MsgBbox("Ha vinto " & nome1.Text & ".")
  14. ElseIf b1.Text = "X" And b4.Text = "X" And b7.Text = "X" Then
  15. MsgBbox("Ha vinto " & nome1.Text & ".")
  16. ElseIf b1.Text = "X" And b5.Text = "X" And b9.Text = "X" Then
  17. MsgBbox("Ha vinto " & nome1.Text & ".")
  18. ElseIf b1.Text = "O" And b2.Text = "O" And b3.Text = "O" Then
  19. MsgBbox("Ha vinto " & nome2.Text & ".")
  20. ElseIf b1.Text = "O" And b4.Text = "O" And b7.Text = "O" Then
  21. MsgBbox("Ha vinto " & nome2.Text & ".")
  22. ElseIf b1.Text = "O" And b5.Text = "O" And b9.Text = "O" Then
  23. MsgBbox("Ha vinto " & nome2.Text & ".")
  24. End If
  25. NoWin()



Il primo If dice: se FlagMossa è uguale a True e il testo del bottone è vuoto ci immetterò una X. Faccio controllare che il bottone è vuoto, così evito di sovrascrivere una mossa già stabilita in precedenza.
Ad ogni bottone della matrice dovete fare un controllo se la partita è stata vinta da un giocatore o se la partita è finita con nessun vincitore.
Quindi col secondo if andrò a fare questo controllo, molto semplice da capire. Considerate che b1 è il primo bottone della prima linea, b4 della seconda linea eccetera. Come fossero i tasti di un telefonino.

In quel codice è incluso il controllo se la partita è finita e nessuno ha fatto tris, richiamando la funzione NoWin. Useremo questo codice:
    VBNET Programming
  1. Public Sub NoWin()
  2. If b1.Text.Any = True And b2.Text.Any = True And b3.Text.Any = True And b4.Text.Any = True
  3. And b5.Text.Any = True And b6.Text.Any = True And b7.Text.Any = True And b8.Text.Any = True
  4. And b9.Text.Any = True Then
  5. MsgBbox("Nessuno ha vinto!")
  6. End If



Sul bottone per far cominciare la partita dobbiamo cambiare la flag impostandola su True.
Io ho anche disabilitato tutti i botton, e abilitati non appena questo bottone venisse cliccato.

    VBNET Programming
  1. Private Sub start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles start.Click
  2. FlagMossa = True
  3. b1.Enabled = True
  4. End Sub



Sarebbe inutile scrivere il codice completo, perchè se avete capito il codice che ho scritto, completare il programma non dovrebbe essere un problema. In ogni caso per qualsiasi cosa basta che chiedete.

Bug minori sono presenti.



Allegati
.zip   Tris.zip (Dimensione: 13.64 KB / Download: 1)

[Per vedere i link devi REGISTRARTI.]

Prima di aprire ogni contenuto scaricato su siti esterni ad HackMix, scansionatelo su VirusTotal.
08/10/2011, 17:01
#1
Cerca

WarRock Hacks Coder
Messaggi: 940
Discussioni: 47
Registrato: 03-2011
Mix: 0
cioè dai il tris in vb mi mancava Asd Asd

Comunque carino Blush

12/10/2011, 20:10
#2
Cerca

Iscritto
Messaggi: 519
Discussioni: 164
Registrato: 09-2011
Mix: 0
ci ho giocato una 30 di votle


12/10/2011, 21:35
#3
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
anche io ci ho giocato un po', carino! Happywide


digger
12/10/2011, 21:51
#4
Cerca

Amministratore
Messaggi: 2,334
Discussioni: 231
Registrato: 03-2011
Mix: 2,570
Link di download aggiornato visto che era su megaupload (nostalgia Crying) e riuppato anche lo screenshot. Happywide


[Per vedere i link devi REGISTRARTI.]

Prima di aprire ogni contenuto scaricato su siti esterni ad HackMix, scansionatelo su VirusTotal.
01/08/2014, 17:28
#5
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 08/02/2015, 2:40 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
bug minoriiii?????
Admin! ho appena giocato una partita dove ho vinto e mi ha detto "nessuno ha vinto" nonstante invece abbia visto pure lui che avevo vinto visto che ha colorato la colonna!!!! XD Asd Happywide

[Immagine: 05208-75ea541b-518a-4bae-82f9-506b27f6503e.png]


digger
08/02/2015, 2:39
#6
Cerca




Utenti che stanno guardando questa discussione: 1 Ospite(i)