Impara Python creando un gioco

La maggior parte dei principianti abbandona Python perché gli esercizi sembrano inutili: stampi una frase, sommi due numeri, poi dimentichi tutto. Un progetto cambia le cose, perché ogni nuova idea fa qualcosa che puoi vedere. In Python DailyDrills inizi con Pip, un robot con tutti i sistemi spenti, e ogni capitolo si conclude con una missione in cui il tuo codice riporta in vita un'altra parte del gioco.

La tua prima riga dà a Pip una voce

Nella prima lezione Pip non può parlare. Lo sistemi con print(). Quando apri il gioco, Pip dice quello che il tuo codice ha stampato. Il punto è che il gioco non è una decorazione: esegue il tuo codice.

print("Hello, I am Pip!")

Output:

Hello, I am Pip!

I condizionali danno le gambe a Pip

Pip continua a camminare verso il mare finché non scrivi can_move(). Il gioco chiama la tua funzione a ogni passo: acqua e muri rispondono no, tutto il resto sì. È così che le istruzioni if e i valori restituiti smettono di essere astratti.

def can_move(tile):
    return tile not in ("water", "wall")

print(can_move("grass"))
print(can_move("water"))

Output:

True
False

I dizionari fanno parlare le macchine

Le macchine dell'isola dicono ciò che contiene il tuo dizionario dei dialoghi. Cambiare una riga di testo nel tuo codice cambia ciò che dicono nel gioco.

dialogue = {"villager": "Welcome!", "mechanic": "Bring me scrap."}
print(dialogue["mechanic"])

Output:

Bring me scrap.

Le classi costruiscono il glitch contro cui combatte Pip

Nel capitolo sulle classi scrivi la classe Glitch che usa la battaglia: punti vita, subire danni e sapere quando è sconfitto. Ogni Attack del gioco chiama il tuo metodo.

class Glitch:
    def __init__(self, hp):
        self.hp = hp

    def take_hit(self, damage):
        self.hp = max(0, self.hp - damage)

glitch = Glitch(12)
glitch.take_hit(4)
print(glitch.hp)

Output:

8

Tieni il gioco che hai costruito

Alla fine puoi scaricare il gioco come file zip. Contiene il tuo codice, un file per ogni missione, più un piccolo motore per eseguirlo: python play.py in un terminale, oppure apri play.html nel browser. Il download viene creato nel tuo browser, e il tuo codice non va mai su un server.

Domande comuni

Serve un'esperienza precedente per iniziare?
No. La prima lezione parte da print(), e ogni concetto viene introdotto con piccoli esercizi prima della missione che lo usa.
È un vero gioco o solo un puzzle?
È un piccolo gioco visto dall'alto: con i tasti freccia porti Pip in giro per l'isola, ripari le macchine, scansioni i sensori e combatti un glitch. Ogni abilità esiste solo perché hai scritto il Python per essa.
Il mio codice gira sui server di DailyDrills?
No. Python gira dentro il tuo browser, e il codice delle tue missioni viene salvato solo nel tuo browser. Anche il gioco scaricabile viene creato sul tuo computer.

Esercitati