Morra Cinese (Sasso Carta Forbice) in C# – Parte 2: Giocatore Singolo

Morra Cinese (Sasso Carta Forbice) in C# – Parte 2 Giocatore Singolo

Morra Cinese (Sasso Carta Forbice) in C# – Parte 2: Giocatore Singolo

Seconda parte del mini corso sulla creazione di un gioco in C# con WinForms.

Sicuramente WinForms non è la scelta ideale per la creazione di un videogioco, infatti è un’interfaccia grafica adatta alle applicazioni per Windows.

Anche se è comunque possibile aggiungere effetti ed animazioni, queste non sfruttano la potenza della scheda video, ma vanno principalmente a carico di processore e RAM.

Comunque può essere utile per la creazione di semplici giochi come la Morra Cinese, che ci permette anche di capire alcuni dei meccanismi e dei funzionamenti del C#.

Nella prima parte abbiamo creato l’interfaccia grafica di base del nostro gioco.

In questa parte invece andremo a creare l’intero codice che ci permetterà di fare una partita in modalità giocatore singolo.

Morra Cinese (Sasso Carta Forbice) in C# – Parte 2: Giocatore Singolo

La modalità giocatore singolo prevede 2 elementi (o azioni) importanti:

  • La scelta da parte del giocatore della mossa da compiere
  • La scelta casuale da parte del gioco di una mossa in risposta

Per il giocatore andremo ad utilizzare i pulsanti Precedente e Successivo per permettere la scelta, e poi andremo a confermarla con il tasto conferma.

Per l’avversario invece andremo ad utilizzare un generatore di numeri casuali, che quindi andrà a generare un numero da 1 a 3 che poi verrà associato ad una scelta 1 = carta, 2 = sasso e 3 = forbice.

Il gioco confronterà quindi le 2 scelte e assegnerà il punto a quella vincente.

Il primo che arriva a 5 punti vincerà.

Per l’intero codice e tutorial vi invito a vedere il video presente in basso, mentre in questo articolo vedremo alcune parti di codice.

Come generare un numero casuale in C#

Random NumeroCasuale = new Random();
int SceltaGiocatore2int = NumeroCasuale.Next(1, 4);

Questo esempio andrà a generare un numero casuale da 1 a 3.

Come confrontare 2 valori in C# per determinare il vincitore

if (SceltaGiocatore1 == "carta" && SceltaGiocatore2 == "sasso")
            {
                PunteggioGiocatore1 = PunteggioGiocatore1 + 1;
            }
            else if (SceltaGiocatore1 == "sasso" && SceltaGiocatore2 == "forbice")
            {
                PunteggioGiocatore1 = PunteggioGiocatore1 + 1;
            }
            else if (SceltaGiocatore1 == "forbice" && SceltaGiocatore2 == "carta")
            {
                PunteggioGiocatore1 = PunteggioGiocatore1 + 1;
            }
            else if (SceltaGiocatore2 == "carta" && SceltaGiocatore1 == "sasso")
            {
                PunteggioGiocatore2 = PunteggioGiocatore2 + 1;
            }
            else if (SceltaGiocatore2 == "sasso" && SceltaGiocatore1 == "forbice")
            {
                PunteggioGiocatore2 = PunteggioGiocatore2 + 1;
            }
            else if (SceltaGiocatore2 == "forbice" && SceltaGiocatore1 == "carta")
            {
                PunteggioGiocatore2 = PunteggioGiocatore2 + 1;
            }
             else
            { 
                // NIENTE
            }

In questo esempio confrontiamo 2 variabili, andando ad analizzare le possibili combinazioni.

Per ogni possibile combinazione andremo ad assegnare il punto al giocatore vincente.

nell’else non effettuiamo nessuna operazione, ma potrebbe essere usato, ad esempio, per assegnare un punto a testa in caso di pareggio.

author avatar
Claudio Masci
Sono innanzitutto un appassionato di informatica e tecnologia in generale. Lavoro in ambito informatico da circa 16 anni, spaziando in diversi campi, andando dalla programmazione web, allo sviluppo di software, dalla grafica alla modellazione 3d ed al video editing, ho sempre voluto approfondire ogni aspetto e questo mi ha permesso di lavorare in diversi ambiti informatici.