Pesquisa de site

Aprenda a programar em Python construindo um jogo de dados simples


Python é uma boa linguagem para jovens e idosos, com ou sem experiência em programação.

Python é uma linguagem de programação multifuncional que pode ser usada para criar aplicativos de desktop, gráficos 3D, videogames e até sites. É uma ótima primeira linguagem de programação porque pode ser fácil de aprender e é mais simples do que linguagens complexas como C, C++ ou Java. Mesmo assim, o Python é poderoso e robusto o suficiente para criar aplicativos avançados e é usado em praticamente todos os setores que usam computadores. Isso torna o Python uma boa linguagem para jovens e idosos, com ou sem experiência em programação.

Instalando Python

Antes de aprender Python, pode ser necessário instalá-lo.

Linux: se você usa Linux, o Python já está incluído, mas certifique-se de ter o Python 3 especificamente. Para verificar qual versão está instalada, abra uma janela de terminal e digite:

python --version

Caso isso revele que você tem a versão 2 instalada ou nenhuma versão, tente especificar o Python 3:

python3 --version

Se esse comando não for encontrado, você deverá instalar o Python 3 a partir do seu gerenciador de pacotes ou centro de software. Qual gerenciador de pacotes sua distribuição Linux usa depende da distribuição. Os mais comuns são dnf no Fedora e apt no Ubuntu. Por exemplo, no Fedora, você digita isto:

sudo dnf install python3

MacOS: se você estiver em um Mac, siga as instruções para Linux para ver se o Python 3 está instalado. O MacOS não possui um gerenciador de pacotes integrado, portanto, se o Python 3 não for encontrado, instale-o em python.org/downloads/mac-osx. Embora sua versão do macOS já possa ter o Python 2 instalado, você deve aprender o Python 3.

Windows: o Microsoft Windows atualmente não é fornecido com Python. Instale-o em python.org/downloads/windows. Certifique-se de selecionar Adicionar Python ao PATH no assistente de instalação. Leia meu artigo Como instalar o Python no Windows para obter instruções específicas para o Microsoft Windows.

Executando um IDE

Para escrever programas em Python, tudo o que você realmente precisa é de um editor de texto, mas é conveniente ter um ambiente de desenvolvimento integrado (IDE). Um IDE integra um editor de texto com alguns recursos Python amigáveis e úteis. IDLE 3 e PyCharm (Community Edition) são duas opções entre muitas a serem consideradas.

Ocioso 3

Python vem com um IDE básico chamado IDLE.

opensource. com

Possui destaque de palavras-chave para ajudar a detectar erros de digitação, dicas para conclusão de código e um botão Executar para testar o código de forma rápida e fácil. Para usá-lo:

  • No Linux ou macOS, abra uma janela de terminal e digite idle3.
  • No Windows, inicie o Python 3 no menu Iniciar.

    • Se você não vir o Python no menu Iniciar, inicie o prompt de comando do Windows digitando cmd no menu Iniciar e digite C:\Windows\py.exe.
    • Se isso não funcionar, tente reinstalar o Python. Certifique-se de selecionar Adicionar Python ao PATH no assistente de instalação. Consulte docs.python.org/3/using/windows.html para obter instruções detalhadas.
    • Se isso ainda não funcionar, basta usar o Linux. É gratuito e, desde que você salve seus arquivos Python em um pen drive USB, você nem precisa instalá-lo para usá-lo.

Edição da comunidade PyCharm

PyCharm (Community Edition) IDE é um excelente IDE Python de código aberto. Possui destaque de palavras-chave para ajudar a detectar erros de digitação, preenchimento de citações e parênteses para evitar erros de sintaxe, números de linha (úteis na depuração), marcadores de recuo e um botão Executar para testar o código de forma rápida e fácil.

Para usá-lo:

  1. Instale o IDE PyCharm (Community Edition). No Linux, é mais fácil instalá-lo com Flatpak. Como alternativa, baixe a versão correta do instalador no site do PyCharm e instale-a manualmente. No MacOS ou Windows, baixe e execute o instalador no site PyCharm.
  2. Inicie o PyCharm.
  3. Crie um novo projeto.

Dizendo ao Python o que fazer

Palavras-chave dizem ao Python o que você deseja que ele faça. Em seu novo arquivo de projeto, digite isto em seu IDE:

print("Hello world.")
  • Se você estiver usando IDLE, vá ao menu Executar e selecione a opção Executar módulo.
  • Se você estiver usando PyCharm, clique no botão Executar arquivo na barra de botões esquerda.

opensource. com

A palavra-chave print diz ao Python para imprimir qualquer texto que você fornecer entre parênteses e aspas.

Isso não é muito emocionante, no entanto. Basicamente, o Python tem acesso apenas a palavras-chave básicas, como print, help, funções matemáticas básicas e assim por diante.

Você pode usar a palavra-chave import para carregar mais palavras-chave.

Usando o módulo tartaruga em Python

Turtle é um módulo divertido de usar. Digite este código em seu arquivo (substituindo o código antigo) e execute-o:

import turtle

turtle.begin_fill()
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.end_fill()

Veja quais formas você pode desenhar com o módulo tartaruga.

Para limpar a área de desenho da tartaruga, use a palavra-chave turtle.clear(). O que você acha que a palavra-chave turtle.color("blue") faz?

Tartaruga avançada

Você pode tentar um código mais complexo para obter resultados semelhantes. Em vez de codificar manualmente cada linha e cada curva, você pode usar um loop while, dizendo ao Python para fazer isso quatro vezes: desenhar uma linha e depois girar. Python é capaz de monitorar quantas vezes essas ações foram executadas com uma variável chamada contador. Você aprenderá mais sobre variáveis em breve, mas por enquanto veja se consegue dizer como o contador e o loop while interagem.

import turtle as t
import time

t.color("blue")
t.begin_fill()

counter=0

while counter < 4:
    t.forward(100)
    t.left(90)
    counter = counter+1

t.end_fill()
time.sleep(2)

Depois de executar seu script, é hora de explorar um módulo ainda melhor.

Aprendendo Python fazendo um jogo

Para saber mais sobre como o Python funciona e se preparar para uma programação mais avançada com gráficos, vamos nos concentrar na lógica do jogo. Neste tutorial, também aprenderemos um pouco sobre como os programas de computador são estruturados criando um jogo baseado em texto no qual o computador e o jogador lançam um dado virtual, e aquele com o maior resultado vence.

Planejando seu jogo

Antes de escrever código, é importante pensar no que você pretende escrever. Muitos programadores escrevem documentação simples antes de começarem a escrever código, portanto, têm um objetivo para o qual programar. Esta é a aparência do programa de dados se você enviasse a documentação junto com o jogo:

  1. Inicie o jogo de dados e pressione Return ou Enter para rolar.
  2. Os resultados são impressos na sua tela.
  3. Você será solicitado a rolar novamente ou desistir.

É um jogo simples, mas a documentação diz muito sobre o que você precisa fazer. Por exemplo, ele informa que você precisa dos seguintes componentes para escrever este jogo:

  • Jogador: Você precisa de um humano para jogar.
  • AI: O computador também deve lançar um dado, caso contrário o jogador não terá ninguém para quem ganhar ou perder.
  • Número aleatório: um dado comum de seis lados produz um número aleatório entre 1 e 6.
  • Operador: A matemática simples pode comparar um número com outro para ver qual é o maior.
  • Uma mensagem de vitória ou derrota.
  • Um aviso para jogar novamente ou sair.

Tornando o jogo de dados alfa

Poucos programas começam com todos os seus recursos, então a primeira versão implementará apenas o básico. Primeiro algumas definições:

Uma variávelé um valor que está sujeito a alterações e é muito usado em Python. Sempre que você precisar que seu programa "lembre" de algo, você usa uma variável. Na verdade, quase todas as informações com as quais o código trabalha são armazenadas em variáveis. Por exemplo, na equação matemática x + 5=20, a variável é x, porque a letra x é um espaço reservado para um valor.

Um inteiroé um número; pode ser positivo ou negativo. Por exemplo, 1 e -1 são ambos números inteiros. O mesmo acontece com 14, 21 e até 10.947.

Variáveis em Python são fáceis de criar e trabalhar. Esta versão inicial do jogo de dados usa duas variáveis: jogador e ai.

Digite o seguinte código em um novo projeto chamado dice_alpha:

import random

player = random.randint(1,6)
ai = random.randint(1,6)

if player > ai :
    print("You win")  # notice indentation
else:
    print("You lose")

Inicie seu jogo para ter certeza de que funciona.

Esta versão básica do seu jogo de dados funciona muito bem. Ele atinge os objetivos básicos do jogo, mas não parece muito com um jogo. O jogador nunca sabe o que rolou ou o que o computador rolou, e o jogo termina mesmo que o jogador queira jogar novamente.

Isso é comum na primeira versão do software (chamada de versão alfa). Agora que você está confiante de que pode realizar a parte principal (lançar um dado), é hora de adicionar algo ao programa.

Melhorando o jogo

Nesta segunda versão (chamada beta) do seu jogo, algumas melhorias farão com que ele pareça mais um jogo.

1. Descreva os resultados

Em vez de apenas dizer aos jogadores se eles ganharam ou não, é mais interessante se eles souberem o que rolaram. Tente fazer estas alterações no seu código:

player = random.randint(1,6)
print("You rolled " + player)

ai = random.randint(1,6)
print("The computer rolled " + ai)

Se você executar o jogo agora, ele travará porque o Python pensa que você está tentando fazer contas. Ele acha que você está tentando adicionar as letras "Você rolou" e qualquer número que esteja atualmente armazenado na variável do jogador.

Você deve instruir o Python a tratar os números nas variáveis player e ai como se fossem uma palavra em uma frase (uma string) em vez de um número em uma equação matemática (um número inteiro).

Faça estas alterações em seu código:

player = random.randint(1,6)
print("You rolled " + str(player) )

ai = random.randint(1,6)
print("The computer rolled " + str(ai) )

Execute seu jogo agora para ver o resultado.

2. Diminua a velocidade

Os computadores são rápidos. Às vezes, os humanos podem ser rápidos, mas nos jogos geralmente é melhor criar suspense. Você pode usar a função time do Python para desacelerar o jogo durante as partes de suspense.

import random
import time

player = random.randint(1,6)
print("You rolled " + str(player) )

ai = random.randint(1,6)
print("The computer rolls...." )
time.sleep(2)
print("The computer has rolled a " + str(player) )

if player > ai :
    print("You win")  # notice indentation
else:
    print("You lose")

Inicie seu jogo para testar suas alterações.

3. Detecte vínculos

Se você jogar o suficiente, descobrirá que, embora pareça estar funcionando corretamente, na verdade ele contém um bug: ele não sabe o que fazer quando o jogador e o computador lançam o mesmo número.

Para verificar se um valor é igual a outro valor, Python usa ==. São dois sinais de igual, não apenas um. Se você usar apenas uma, o Python pensará que você está tentando criar uma nova variável, mas na verdade você está tentando fazer contas.

Quando quiser ter mais do que apenas duas opções (ou seja, ganhar ou perder), você pode usar a palavra-chave elif do Python, que significa else if. Isso permite que seu código verifique se algum dos alguns resultados é verdadeiro, em vez de apenas verificar se uma coisa é verdadeira.

Modifique seu código assim:

if player > ai :
    print("You win")  # notice indentation
elif player == ai:
    print("Tie game.")
else:
    print("You lose")

Inicie o jogo algumas vezes para tentar empatar o lançamento do computador.

Programando a versão final

A versão beta do seu jogo de dados é funcional e parece mais um jogo do que o alfa. Para a versão final, crie sua primeira função Python.

Uma função é uma coleção de código que você pode chamar como uma unidade distinta. As funções são importantes porque a maioria dos aplicativos contém muito código, mas nem todo esse código precisa ser executado de uma só vez. As funções permitem iniciar uma aplicação e controlar o que acontece e quando.

Mude seu código para este:

import random
import time

def dice():
    player = random.randint(1,6)
    print("You rolled " + str(player) )

    ai = random.randint(1,6)
    print("The computer rolls...." )
    time.sleep(2)
    print("The computer has rolled a " + str(ai) )

    if player > ai :
        print("You win")  # notice indentation
    else:
        print("You lose")

    print("Quit? Y/N")
    continue = input()

    if continue == "Y" or continue == "y":
        exit()
    elif continue == "N" or continue == "n":
        pass
    else:
        print("I did not understand that. Playing again.")

Esta versão do jogo pergunta ao jogador se ele deseja sair do jogo depois de jogar. Se eles responderem com um Y ou y, a função exit do Python será chamada e o jogo será encerrado.

Mais importante ainda, você criou sua própria função chamada dice. A função de dados não funciona imediatamente. Na verdade, se você testar seu jogo neste estágio, ele não travará, mas também não funcionará exatamente. Para fazer com que a função dice realmente faça alguma coisa, você precisa chamá-la em seu código.

Adicione este loop na parte inferior do seu código existente. As duas primeiras linhas são apenas para contextualizar e enfatizar o que é recuado e o que não é. Preste muita atenção ao recuo.

    else:
        print("I did not understand that. Playing again.")

# main loop
while True:
    print("Press return to roll your die.")
    roll = input()
    dice()

O bloco de código while True é executado primeiro. Como True é sempre verdadeiro por definição, esse bloco de código sempre é executado até que o Python peça para ele encerrar.

O bloco de código while True é um loop. Primeiro ele solicita que o usuário inicie o jogo e depois chama sua função dados. É assim que o jogo começa. Quando a função de dados termina, seu loop é executado novamente ou encerrado, dependendo de como o jogador respondeu ao prompt.

Usar um loop para executar um programa é a maneira mais comum de codificar um aplicativo. O loop garante que o aplicativo permaneça aberto por tempo suficiente para que o usuário do computador use as funções do aplicativo.

Próximos passos

Agora você conhece o básico da programação Python. O próximo artigo desta série descreve como escrever um videogame com PyGame, um módulo que possui mais recursos que o Turtle, mas também é muito mais complexo.

Este artigo foi publicado originalmente em outubro de 2017 e atualizado pelo autor.