In questo articolo realizziamo il gioco della morra cinese in JavaScript, utilizzando i costrutti finora studiati.

Il gioco ha poche semplicissime regole. Ci sono due giocatori che utilizzano le mani per sfidarsi. Ciascuno può giocare un oggetto: forbice (f), sasso (s) o carta (c).

– Il Sasso, si rappresenta con la mano a pugno;

– La Carta, si rappresenta con la mano aperta;

– Le Forbici, si rappresentano con soli indice e medio distesi.


Le regole per vincere sono queste:

Il sasso batte la forbice, cioè la rompe;

La forbice batte la carta, cioè la taglia;

La carta batte il sasso, cioè lo avvolge.

Se entrambi i giocatori giocano a lo stesso simbolo si ha una situazione di parità.

Gioco della morra cinese in JavaScript – implementazione

Supponiamo di fare 3 partite e che vinca chi totalizza il punteggio maggiore.

Quindi impostiamo la variabile tentativi a 3. Dopo, all’interno del ciclo, facciamo generare al computer un numero random da 0 a 2 ad esempio.

Dopo, se esce 0 assegniamo alla variabile computer il valore f, se esce 1 assegniamo a computer il valore s, altrimenti se esce 2 assegniamo il valore c.

Poi facciamo scegliere una lettera al giocatore (f, s, c). Confrontiamo dunque se le 2 variabili sono uguali per confermare la situazione di parità. Se tale condizione non è vera analizziamo i casi di vittoria.

Il giocatore vince nei seguenti casi:

se giocatore= s e computer = f, oppure se giocatore= f e computer = c ed infine se giocatore= c e computer = s.

Se anche questa condizione è falsa allora il giocatore ha perso.

var tentativi = 3;
var giocatore, computer;
var puntiC = 0, puntiG = 0;

for (var i = 0; i < tentativi; i++){
  computer = Math.floor(Math.random() * 3);

  if (computer == 0) {
    computer = 'f';
  } else if (computer == 1){
    computer = 's';
  } else {
    computer = 'c';
  }
  console.log(computer);

  giocatore = prompt('Inserisci f per forbice, s per sasso e c per carta');
  giocatore = giocatore.toLowerCase();
  if (computer == giocatore) {
    console.log('parità');
  } else if ((giocatore == 's' && computer == 'f') || (giocatore == 'f' && computer == 'c') || (giocatore == 'c' && computer == 's')) {
    console.log('Hai vinto');
    puntiG++;
  } else {
    console.log('Hai perso ');
    puntiC++;
  }
}

console.log(puntiC);
console.log(puntiG);

In questa lezione abbiamo implementato il semplice gioco della morra cinese in JavaScript, nella prossima lezione vedremo tanti altri esempi.

Alcuni link utili

Indice tutorial JavaScript

Introduzione al tutorial JavaScript

Il linguaggio JavaScript

Come utilizzare JavaScript alert

Come utilizzare JavaScript confirm

Utilizzare JavaScript prompt

Variabili in JavaScript

JavaScript substring