Categories
python

Imparare #python 2: tirare i dadi

Salve a tutti, anche se sono stato parecchio silenzioso sto continuando nei ritagli di tempo a migliorare la mia comprensione di Python.

Sto proseguendo la lettura del libro “python for kids” ed effettivamente è una lettura intrigante, anche se no sono sicuro di quanti bambini avrebbero la pazienza di andare avanti negli esperimenti.

Oggi sono finalmente giunto ad una parte del libro (Capitolo 10) dove si parla delle funzioni integrate in Python e una di queste è ovviamente in linea con il mio intento ludico espresso nell’altro articolo: Il generatore di numeri casuali, cioè Random.

 Ecco il codice

 

Prossimo passo

Avendo un generatore di numeri casuali posso cominciare a pianificare i prossimi step per i mini giochi.

Nel caso del pytokio l’aggregazione dei tiri di dado dovrà essere differente, perchè nel tokio i numeri non si sommano, ma si accoppiano dando maggior importanza al numero più elevato della coppia.

quindi :

  • 1 e 2 = si legge 21 e non 12
  • 2 e 5 = si legge 52 e non 25

Possibile sequenza:

  • tiro il dado a
  • tiro il dado b
  • metto entrambi i risultati in una stringa
  • faccio un ordinamento (sort)
  • memorizzo la stringa nella lista

Alla prossima!

ps: la prossima settimana sarò relatore al festival del webmarketing!

Update!

Il buon Alessandro Martin, autore di Ubersuggest ha in qualche modo captato questi miei sproloqui e nei commenti mi ha già indicato il modo per generare le sequenze di Tokio.

Ecco il codice aggiornato che contiene le modifiche!

 

Categories
python

Imparare python #1 – Giocando si impara

Quest’anno ho preso la decisione di mettermi seriamente ad imparare il linguaggio di programmazione Python e considerando che compio 44 anni, probabilmente sarà un percorso in salita.

Ci sono vari motivi per cui ho intrapreso questa scelta:

  • Voglio mettermi alla prova per vedere se riesco ancora ad imparare qualcosa
  • Voglio vedere se posso “creare” qualcosa di mio
  • E’ un linguaggio versatile e mi può aiutare in diverse occasioni nel mio lavoro come consulente seo.
  • Ho trovato un libro che si chiama Python for kids (link ad amazon) che propone una introduzione al linguaggio, pensandola in termini ludici.
  • Da grandissimo fan dei “Monty Python” non posso più tirarmi indietro per imparare il linguaggio che è da loro ispirato (almeno nel nome).

download

 

D’altra parte…

Questo è un momento particolare della mia vita, dove ho la possibilità di ritagliarmi del tempo su progetti personali e imparare un linguaggio di programmazione è come acquisire un nuovo super potere.

Python viene utilizzato in tantissimi campi, sopratutto nell’ambito delle startup e migliorarne la conoscenza vorrebbe dire diventare (forse) un referente del marketing migliore e più appetibile.

Il grosso vantaggio del Python è che è pensato per essere conciso e facile da leggere: su questo posso già concordare, avendo analizzato script fatti da altri, li ho quasi sempre compresi anche conoscendo pochissime basi del linguaggio.

Progetti di auto apprendimento

Oltre a seguire gli esempi del libro, cercherò in parallelo di portare avanti dei progetti in autonomia, che ricalcano tipi di giochi che già conosco, in questo modo eviterò di dover fare la pianificazione delle regole di gioco (che è comunque non facile).

1.Pytokyo

Per chi non lo conoscesse “tokyo” è un gioco di dadi “indie”, menzogne e faccia tosta che un bel po’ di anni fa ha conquistato il mondo dei giocatori di ruolo e boardgame.

regole ufficiali: https://it.wikipedia.org/wiki/Tokyo_%28gioco%29

Il mio obiettivo iniziale è quello di programmare il “motore” che

  • Tira i dadi
  • Valuta il tiro di dado sulla tabella dei valori ammessi
  • Conta il numero di penalità ricevute
  • Determina la fine del gioco (penalità >= 10)
  • Dichiara il vincitore

Cercherò di programmare un avversario virtuale, ma in questo stadio non ho in programma di farlo multiplayer.

2.Pymunchin

Ispirato al gioco da tavolo “munchkin”,  Pymunchkin sarà semplicemente una corsa in un dungeon ammazzando mostri e arraffando tesori,  cercando di non farsi spiaccicare dal drago di Altamura o dall’elementale di parmigiano.

Per evitare beghe legali, il progetto non avrà alcun riferimento esplicito, quindi probabilmente ci saranno:

  • Il drago di Altamura (fatto di pane)
  • l’elementale di parmigiano
  • le arancine esplosive
  • …altro che mi dovesse venire mente

Sarà un gioco single player con queste modalità:

  • Gestione semplificata del personaggio
  • Pre-selezione degli eventi (generata ad ogni partita o alla fine del mazzo di carte)
  • Apri porta del dungeon
  • Evento casuale (Mostro/Tesoro/Maledizione)
  • Combattimento o fuga
  • Avanzamento di livello di esperienza
  • Verifica condizione di vittoria
  • E si riparte aprendo una nuova porta.

3. PySimqualcosa

In questo caso cercherò di programmare un piccolo simulatore per testare le capacità di Python nel gestire i dati. Non ho ancora deciso la tipologia, ma sarà probabilmente pieno di numero e grafici, non vi aspettate Simcity perchè non ho le capacità.

Idealmente la struttura di gioco dovrebbe essere iterata attraverso questi passaggi:

  • Definizione condizione iniziale (potrebbe essere un personaggio, una città, un pianeta, una guerriera sailor)
  • Raccolta e presentazione informazioni numeriche
  • Gestione dell’input del giocatore
  • Fine del “turno”
  • Calcolo dell’evoluzione dei dati
  • Verifica delle condizioni di “game over”
  • E si riparte nuovamente  al punto iniziale.

 

Onward!

f4fe8d37a32420f8ebb8c439b66828e259eff0f1ec48f1eeccc9dfa20683e434