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).
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!