Prodotti da non perdere

Vogliamo sviluppare il gioco della morra cinese in Python, conosciuto anche come carta, forbice o sasso.

Ci siamo divertiti a creare questo gioco anche con Scratch. Chi vuole può dunque consultare la guida al link: morra cinese con Scratch.

Disponibile il libro su Python “50 Algoritmi per imparare Python”


Come si gioca

Innanzitutto ricordiamo le regole del gioco!

In questo gioco ci sono due giocatori e ciascuno può quindi scegliere un oggetto: forbice (f), sasso (s) o carta (c).

Sasso si rappresenta con la mano a pugno;

Carta si rappresenta con la mano aperta;

Forbice invece si rappresenta con soli indice e medio distesi.

Dunque chi vince? È piuttosto semplice:

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 si sceglie lo stesso oggetto allora il punteggio è pari.


Implementazione della morra cinese in Python

Innanzitutto facciamo giocare il computer e per questo utilizziamo il metodo randint(), che genera un numero random intero in un intervallo specificato tra le parentesi tonde.

Ad esempio randint(0,2) genera un numero random tra 0 e 2.

Adesso pensiamo di associare arbitrariamente:

0 a sasso;

1 a forbice;

2 a carta;

Chiaramente potevamo decidere diversamente!

Quindi impostiamo queste condizioni, solo per rendere più facile fare il controllo successivamente:

if computer==0: computer=‘s’

elif computer==1: computer=‘f’

else: computer=‘c’

All’utente facciamo quindi decidere cosa scegliere inserendo un valore: c, s oppure f.

utente=input(‘Inserisci c per carta, s per sasso ed f per forbice: ‘)

Dopo facciamo i controlli in base alle regole spiegate sopra.


Ecco dunque una possibile implementazione del gioco della morra cinese in python:

import random

print(‘Ciao, oggi giochiamo a morra cinese’)

computer=random.randint(0,2)

if computer==0: computer=‘s’

elif computer==1: computer=‘f’

else: computer=‘c’

utente=input(‘Inserisci c per carta, s per sasso ed f per forbice: ‘)

if utente!=‘s’ and utente!=‘f’ and utente!=‘c’:

print(‘La lettera non corrisponde a nulla’)

elif utente==computer:

print(‘parità!’)

elif utente==‘s’ and computer==‘f’ or utente==‘f’ and computer==‘c’ or utente==‘c’ and computer==‘s’:

print(‘Hai vinto!’)

else:

print(‘Ha vinto il computer!’)

N. B. Nel caso della parità, al posto di

elif utente==’s’ and computer==’s’ or utente==’c’ and computer==’c’ or utente==’f’ and computer==’f’:

potremmo semplificare e scrivere:

elif utente==computer:

Quando affronteremo le liste proporrò un’altra possibile soluzione al gioco della morra cinese in Python.

Disponibile il libro su Python “50 Algoritmi per imparare Python”

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili