Morra Cinese (Sasso Carta Forbice) in C# – Parte 1: Prepariamo il Form

Morra Cinese (Sasso Carta Forbice) in C# - Parte 1 Prepariamo il Form

Morra Cinese (Sasso Carta Forbice) in C# – Parte 1: Prepariamo il Form

La Morra Cinese (o sasso-carta-forbice) è un gioco molto popolare che prevede la scelta tra 3 opzioni ognuna delle quali in grado di vincere contro una delle altre e perdere contro l’altra.

Il gioco è molto semplice, ogni giocatore indica con le mani il simbolo del sasso, della carta o delle forbici.

Anche le regole sono altrettanto semplici:

  • Sasso batte forbici ma perde con carta
  • Carta batte sasso ma perde con forbici
  • Forbice batte carta ma perde con sasso

In questo tutorial andremo a realizzare la versione in C#, utilizzando WinForms di questo gioco.

Possiamo considerare questo tutorial un mini corso, infatti sarà diviso in 2, massimo 3 parti (con video).

In questa prima parte prepariamo la struttura del form da utilizzare.

Morra Cinese (Sasso Carta Forbice) in C# – Parte 1: Prepariamo il Form

In questa prima parte andremo a preparare la struttura di base del form, concentrandoci però sul suo funzionamento e non tanto sull’aspetto grafico.

Infatti andremo a vedere come mostrare diverse schermate utilizzando un unico form.

Per farlo utilizzeremo dei Panel, tutti con identiche dimensioni che avranno il ruolo di simulare il cambio di schermata.

Per ottenere questo risultato andremo a dare una dimensione fissa al Form, non permettendo quindi all’utente di ridimensionarlo.

In fasi di programmazione poi modifichiamo l’attributo Dock dei pannelli impostandolo su Fill, in questo modo i pannelli andranno ad occupare l’intera area del Form.

Ora il passaggio da un pannello ad un altro è molto semplice, ci basta impostare l’attributo Visible su true per il pannello da attivare e su false per tutti gli altri.

Come modificare il valore di ClientSize in C#

Per poter ottenere questo risultato come detto, dobbiamo impostare un valore fisso per le dimensioni del form.

Il metodo più utilizzato per farlo è scrivendo:

this.Width = 575;
this.Height = 355;

In questo modo andremo ad impostare le dimensioni del form a 575×355, ma c’è un aspetto fondamentale da tenere a mente.

Modifichiamo appunto le dimensioni del FORM, quindi compresa l’area esterna, e non solo l’area interna ad esso.

Se sappiamo esattamente le misure dei bordi del Form, possiamo aggiungerle alle dimensioni inserite per avere un risultato migliore, ma questo va bene se il software lo usiamo solo su un dispositivo.

Infatti cambiando ad esempio sistema operativo, o impostazioni, o magari installando un tema per Windows, le dimensioni esterne del Form cambiano, e quindi questi valori non saranno più utili.

Andiamo quindi a vedere come cambiare le dimensioni del ClientSize.

Inizio subito con il dire che scrivere:

this.Client.Size.Width = 575;
this.ClientSize.Height = 355;

non funziona, questo perchè questi due valori non possono essere direttamente modificati, ma possiamo risolvere creando nei nuovi valori, scrivendo:

this.Client.Size = new Size(575, 355);

Scarica il file con le risorse per il progetto

Per scaricare il file con i PNG da utilizzare per il progetto puoi cliccare su seguente link:

Qui è disponibile anche la copia dell’intero progetto in Visual Studio (da utilizzare per controllare eventuali problemi o per partire direttamente dalla parte 2 del mini corso):

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.