Aprenda Python criando um jogo

A maioria dos iniciantes desiste do Python porque os exercícios parecem sem sentido: imprimir uma frase, somar dois números, esquecer. Um projeto muda isso, porque cada ideia nova faz algo que você consegue ver. No Python DailyDrills você começa com o Pip, um robô com todos os sistemas offline, e cada capítulo termina com uma missão em que o seu próprio código traz de volta mais uma parte do jogo.

Sua primeira linha dá voz ao Pip

Na primeira lição o Pip não consegue falar. Você o conserta com print(). Quando você abre o jogo, o Pip diz o que o seu código imprimiu. A ideia é que o jogo não é decoração: ele executa o seu código.

print("Hello, I am Pip!")

Saída:

Hello, I am Pip!

Condicionais dão pernas ao Pip

O Pip continua andando em direção ao mar até você escrever can_move(). O jogo chama a sua função a cada passo: água e paredes respondem não, e todo o resto responde sim. É assim que os comandos if e os valores de retorno deixam de ser abstratos.

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

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

Saída:

True
False

Dicionários fazem as máquinas falar

As máquinas da ilha dizem o que quer que o seu dicionário de diálogos contenha. Mudar uma linha de texto no seu código muda o que elas dizem no jogo.

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

Saída:

Bring me scrap.

Classes constroem o glitch que o Pip enfrenta

No capítulo de classes você escreve a classe Glitch usada na batalha: pontos de vida, receber dano e saber quando ele morre. Cada ataque no jogo chama o seu método.

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)

Saída:

8

Guarde o jogo que você construiu

No final você pode baixar o jogo como um arquivo zip. Ele contém o seu próprio código, um arquivo por missão, mais um pequeno motor para executá-lo: python play.py em um terminal, ou abra play.html em um navegador. O download é montado no seu navegador, e o seu código nunca vai para um servidor.

Perguntas comuns

Preciso de alguma experiência para começar?
Não. A primeira lição começa em print(), e cada conceito é apresentado com pequenos exercícios antes da missão que o usa.
É um jogo de verdade ou só um quebra-cabeça?
É um pequeno jogo visto de cima: você leva o Pip pela ilha com as setas do teclado, conserta máquinas, escaneia sensores e enfrenta um glitch. Cada habilidade existe apenas porque você escreveu o Python para ela.
Meu código roda nos servidores de vocês?
Não. O Python roda dentro do seu navegador, e o código das suas missões fica guardado somente no seu navegador. O jogo para download também é montado no seu computador.

Pratique