Thread obsoleto [C#] Creare Tris 1 VS PC

InfernoHacker

Utente Master
Autore del topic
18 Agosto 2007
2.775
0
Miglior risposta
0
Ciao a tutti.
Stasera, non avendo proprio niente da fare, mi son messo a scrivere uno "script" di base, in C Sharp [ C# ], per la creazione di un semplicissimo Tic Tac Toe [ Tris ].

Codice quasi completamente commentato !

Creazione di tutti gli oggetti in Run Time !


Gli unici passaggi da fare, sono i seguenti :

  • Creare un nuovo progetto in C Sharp e chiamarlo "Tic Tac Toe".
  • Rinominare il Form in frmMain.
  • Aggiungere una classe e chiamarla Game.cs.
  • Sostituire completamente i codici sorgente, con quelli che verranno mostrati successivamente.

Prima di proporre il codice, spiegherò brevemente, ciò che lo "script" fa.

  • START : Crea le 9 caselle in Run Time [ Non avrete bisogno di creare e modificare ogni label ].
  • Una volta create le caselle, setta le opzioni ed avvia il gioco [ Classe Game.cs => Metodo Start() ].
  • GIOCA : Quando il giocatore clicca su una casella, se essa è libera, richiama il metodo Write(), nella Classe Game.cs.
  • Una volta inserito il simbolo [ X = Giocatore / O = PC ], controlla se il Giocatore o il PC ha vinto, o se è finita in parità [ in caso di caselle non disponibili

    ], richiamando il metodo ChkVictory()
  • Dopo il precedente controllo, viene richiamato il metodo TurnoO(), il quale azionerà il PC.
  • Seguendo un algoritmo ben preciso [ vedi sotto ], il PC fa la sua mossa.
  • Dopo aver fatto la sua mossa, controlla se uno dei due ha vinto, richiamando sempre il metodo ChkVictory()
  • Se la partita non è finita, si riprende da "GIOCA".
  • Se la partita è finita, viene creato un nuovo Form [ tramite un'istanza ], viene chiuso il Form appena utilizzato e viene mostrato quello appena creato. Quindi, si

    riparte da "START".

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


NOTA : Nella classe Game.cs, quasi tutti i metodi hanno un parametro in comune, ovvero "frmMain frmMain" [ Tipo param. Nome param. ]. Questo parametro serve a passare

alla Classe Game.cs, il "NOME" del Form principale [ frmMain ] [ NB : Al momento non trovo alcuna parola adatta a definire ciò ].

Senza questo parametro, la Classe Game.cs, sarebbe costretta ad istanziare il Form principale e quindi crearne uno nuovo.
Così facendo, si andrebbe a modificare un secondo "frmMain" e non più quello che si vuole modificare.


Qui di seguito, ecco il codice [ Utilizzerò il Tag PHP ] :

Codice per il Form principale
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Codice per la Classe Game.cs
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Ricordatevi che questa guida serve per la creazione di uno "script" di BASE.
La possibilità di vincere contro il PC c'è, ma aggiungendo qualche piccola modifica, è possibile, rendere impossibile [ scusate il gioco di parole ], la vittoria

all'utente.

Questo "script" è stato INTERAMENTE scritto dal sottoscritto [ HaCk-GaMe - InfernoHacker ].

Guida scritta per gli utenti di Sciax2 Forum.
Potete migliorare il codice e distribuirlo. Chiedo solo di lasciare invariati i "Credits" che riguardano me.

Detto questo, mi auguro che vi piaccia come "script" e come guida, dato che ho visto parecchie persone chiedersi "Come si crea un tris 1 vs PC ?".

Saluti,

HaCk-GaMe.
 
Ultima modifica:
Riferimento: [C#] Creare Tris 1 VS PC

Vedo con piacere che stai iniziando a masticarlo bene questo C#...per quanto riguarda il programma devo dire che l'algoritmo è ben pensato solo che mi si è "stretto il cuore" a vedere tutte quelle if ed else if, dovresti utilizzare switch-case e magari abituarti a scrivere cose del tipo if(!end). Col tempo ti abituerai, good job :emoji_slight_smile:
 
Riferimento: [C#] Creare Tris 1 VS PC

Vedo con piacere che stai iniziando a masticarlo bene questo C#...per quanto riguarda il programma devo dire che l'algoritmo è ben pensato solo che mi si è "stretto il cuore" a vedere tutte quelle if ed else if, dovresti utilizzare switch-case e magari abituarti a scrivere cose del tipo if(!end). Col tempo ti abituerai, good job :emoji_slight_smile:

Dove ho potuto, ho utilizzato Switch-Case :emoji_slight_smile:

Per quanto riguarda "if(!end)", hai ragione.

Ma l'ho scritto in poco tempo, ed in quel momento avevo in mente solo "if ( x == y )" cose così.
 
Riferimento: [C#] Creare Tris 1 VS PC

Nelle funzioni ChkVictoryO, ChkVictoryX e ChkFree no però.



Tranquillo, col tempo ti abituerai ;)

Perché con Switch-Case, controllo solo una variabile per volta.

Non posso stare a scrivere

Switch (h1)
case 1:
operazione

ecc...

Sarebbe uno spreco di codici [ per quanto riguarda i Metodi da te elencati ].

Comunque sia, ci sono già abituato [ anche perché c'è pure nel PHP ].
Semplicemente, mi era passato di mente. ;)
 
Ciao a tutti.
Stasera, non avendo proprio niente da fare, mi son messo a scrivere uno "script" di base, in C Sharp [ C# ], per la creazione di un semplicissimo Tic Tac Toe [ Tris ].

Codice quasi completamente commentato !

Creazione di tutti gli oggetti in Run Time !



Gli unici passaggi da fare, sono i seguenti :

  • Creare un nuovo progetto in C Sharp e chiamarlo "Tic Tac Toe".
  • Rinominare il Form in frmMain.
  • Aggiungere una classe e chiamarla Game.cs.
  • Sostituire completamente i codici sorgente, con quelli che verranno mostrati successivamente.

Prima di proporre il codice, spiegherò brevemente, ciò che lo "script" fa.

  • START : Crea le 9 caselle in Run Time [ Non avrete bisogno di creare e modificare ogni label ].
  • Una volta create le caselle, setta le opzioni ed avvia il gioco [ Classe Game.cs => Metodo Start() ].
  • GIOCA : Quando il giocatore clicca su una casella, se essa è libera, richiama il metodo Write(), nella Classe Game.cs.
  • Una volta inserito il simbolo [ X = Giocatore / O = PC ], controlla se il Giocatore o il PC ha vinto, o se è finita in parità [ in caso di caselle non disponibili

    ], richiamando il metodo ChkVictory()
  • Dopo il precedente controllo, viene richiamato il metodo TurnoO(), il quale azionerà il PC.
  • Seguendo un algoritmo ben preciso [ vedi sotto ], il PC fa la sua mossa.
  • Dopo aver fatto la sua mossa, controlla se uno dei due ha vinto, richiamando sempre il metodo ChkVictory()
  • Se la partita non è finita, si riprende da "GIOCA".
  • Se la partita è finita, viene creato un nuovo Form [ tramite un'istanza ], viene chiuso il Form appena utilizzato e viene mostrato quello appena creato. Quindi, si

    riparte da "START".

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


NOTA : Nella classe Game.cs, quasi tutti i metodi hanno un parametro in comune, ovvero "frmMain frmMain" [ Tipo param. Nome param. ]. Questo parametro serve a passare

alla Classe Game.cs, il "NOME" del Form principale [ frmMain ] [ NB : Al momento non trovo alcuna parola adatta a definire ciò ].

Senza questo parametro, la Classe Game.cs, sarebbe costretta ad istanziare il Form principale e quindi crearne uno nuovo.
Così facendo, si andrebbe a modificare un secondo "frmMain" e non più quello che si vuole modificare.


Qui di seguito, ecco il codice [ Utilizzerò il Tag PHP ] :

Codice per il Form principale
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Codice per la Classe Game.cs
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Ricordatevi che questa guida serve per la creazione di uno "script" di BASE.
La possibilità di vincere contro il PC c'è, ma aggiungendo qualche piccola modifica, è possibile, rendere impossibile [ scusate il gioco di parole ], la vittoria

all'utente.

Questo "script" è stato INTERAMENTE scritto dal sottoscritto [ HaCk-GaMe - InfernoHacker ].

Guida scritta per gli utenti di Sciax2 Forum.
Potete migliorare il codice e distribuirlo. Chiedo solo di lasciare invariati i "Credits" che riguardano me.

Detto questo, mi auguro che vi piaccia come "script" e come guida, dato che ho visto parecchie persone chiedersi "Come si crea un tris 1 vs PC ?".

Saluti,

HaCk-GaMe.
Sto cercando di imparare il C# e questo esercizio capita veramente a fagiolo!