Como fazer um jogo de teste em Python (com imagens)

Índice:

Como fazer um jogo de teste em Python (com imagens)
Como fazer um jogo de teste em Python (com imagens)

Vídeo: Como fazer um jogo de teste em Python (com imagens)

Vídeo: Como fazer um jogo de teste em Python (com imagens)
Vídeo: Exercício Python #046 - Contagem regressiva 2024, Maio
Anonim

Se você deseja aprender Python, é bom começar com alguns jogos simples baseados em texto. Este artigo mostrará como fazer um jogo de perguntas e respostas.

Passos

947361 1
947361 1

Etapa 1. Instale o Python, se ainda não o fez

Existem duas versões principais do Python: Python 2 e Python 3. Elas não são intercambiáveis e o suporte para Python 2 terminará em 2020, portanto, este artigo presumirá que você instale o Python 3.

947361 2
947361 2

Etapa 2. Abra um novo arquivo em um editor de texto ou em seu Python IDE

Dê a ele um nome descritivo que termine com.py.

947361 3
947361 3

Etapa 3. Importe a biblioteca aleatória

Você precisará dele para organizar aleatoriamente as respostas possíveis.

947361 4
947361 4

Etapa 4. Defina uma classe "QA"

Um "controle de qualidade" consistirá em uma pergunta e uma resposta correta e uma lista de outras respostas possíveis. A função _init _ () será chamada sempre que você criar um novo objeto QA com a função QA (), com seus argumentos sendo passados para o atributo correspondente. Modelo:

classe QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Etapa 5. Crie uma lista de QAs

Pense em algumas perguntas com uma resposta certa e outra errada. Crie objetos de controle de qualidade de cada um e coloque-os em uma lista. Como a lista será muito longa, você pode dividi-la em várias linhas para melhor legibilidade. Tudo isso é feito com o seguinte código (seu texto pode ser diferente):

qaList = [QA ("Onde fica Minsk?", "na Bielorrússia", ["na Rússia", "essa cidade não existe"]), QA ("Qual é a capital da Austrália?", "Canberra", ["Sydney", "Nova York", "Austrália não existe"]), QA ("Qual dos seguintes não está na Terra?", "Mar da Tranquilidade", ["Mar Mediterrâneo", "Mar Báltico "," North Sea "]), QA (" Qual dos seguintes não é um continente? "," Arctica ", [" Antarctica "," America "]), QA (" Qual dos seguintes não é um país africano ? "," Malásia ", [" Madagascar "," Djibouti "," África do Sul "," Zimbábue "])]

947361 6
947361 6

Etapa 6. Adicione uma variável que conte quantas respostas estavam corretas

Defina-o como zero no início. Adicione a linha:

corrCount = 0

947361 7
947361 7

Etapa 7. Ordem aleatória da lista de controle de qualidade

Isso fará com que suas perguntas apareçam em uma ordem aleatória. Isso é feito com a seguinte função:

random.shuffle (qaList)

947361 8
947361 8

Etapa 8. Faça um loop

O programa deve examinar cada item da lista e fazer algo com ele. Crie um loop com esta expressão:

para qaItem em qaList:

947361 9
947361 9

Etapa 9. Produza cada pergunta

Após a expressão de loop, escreva a linha:

imprimir (qaItem.question)

947361 10
947361 10

Etapa 10. Produza todas as respostas possíveis

Eles devem aparecer em uma ordem aleatória para que a resposta correta nem sempre esteja na mesma posição. Além disso, eles devem ser precedidos por um número para que o usuário não tenha que digitar a resposta inteira novamente. O código a seguir faz isso:

print ("As respostas possíveis são:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # colchetes transformam a resposta correta em lista para concatenação com outra lista random.shuffle (possible) count = 0 # índices de lista começam em 0 em python enquanto a contagem <len (possível): imprimir (str (contagem + 1) + ":" + possível [contagem]) contagem + = 1

947361 11
947361 11

Etapa 11. Aceite a entrada do usuário

Primeiro, diga ao usuário que ele deve inserir o número do seu. Em seguida, verifique se o que o usuário inseriu é realmente um número que corresponde a uma resposta. Se não for, diga ao usuário novamente. Use este código (fora do loop while que você criou para a saída):

print ("Digite o número da sua resposta:") userAnsw = input () e não userAnsw.isdigit (): print ("Não era um número. Digite o número da sua resposta:") userAnsw = input () userAnsw = int (userAnsw) while not (userAnsw> 0 e userAnsw <= len (possible)): print ("Esse número não corresponde a nenhuma resposta. Digite o número da sua resposta:") userAnsw = input ()

947361 12
947361 12

Etapa 12. Verifique se a resposta do usuário está correta

Para fazer isso, obtenha o texto da resposta para a qual o usuário inseriu um número e compare-o com o texto da resposta correta. Se forem iguais, a resposta do usuário foi correta e a variável corrCount deve ser aumentada em 1. Caso contrário, está errado e o usuário deve receber a resposta correta. Finalmente, imprima uma linha em branco para adicionar algum espaço à próxima pergunta. Insira o seguinte código:

se possível [userAnsw-1] == qaItem.corrAnsw: print ("Sua resposta estava correta.") corrCount + = 1 else: print ("Sua resposta estava errada.") print ("A resposta correta era:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Etapa 13. Produza uma conclusão

No final, o usuário provavelmente deseja saber quantas perguntas acertou. Então diga a eles adicionando a seguinte expressão fora do loop for:

print ("Você respondeu" + str (corrCount) + "of" + str (len (qaList)) + "questões corretamente.")

947361 14
947361 14

Etapa 14. Verifique seu código

Preste atenção especial ao recuo. Seu código completo deve ser parecido com este agora:

importar classe aleatória QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Onde fica Minsk?", "na Bielorrússia", ["na Rússia", "essa cidade não existe"]), QA ("Qual é a capital da Austrália?", "Canberra", ["Sydney", "Nova York", "Austrália não existe"]), QA ("Qual dos seguintes não está na Terra?", "Mar da Tranquilidade", ["Mar Mediterrâneo", "Mar Báltico", "Mar do Norte"]), QA ("Qual dos seguintes não está um continente? "," Arctica ", [" Antarctica "," America "]), QA (" Qual dos seguintes não é um país africano? "," Malaysia ", [" Madagascar "," Djibouti "," South África "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) para qaItem em qaList: print (qaItem.question) print (" As respostas possíveis são: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # colchetes transformam a resposta correta em lista para concatenação com outra lista random.shuffle (possível) contagem = 0 # índices de lista começam em 0 i n python while count <len (possível): print (str (count + 1) + ":" + possible [count]) count + = 1 print ("Por favor, digite o número de sua resposta:") userAnsw = input () enquanto não userAnsw.isdigit (): print ("Aquilo não era um número. Digite o número da sua resposta: ") userAnsw = input () userAnsw = int (userAnsw) enquanto não (userAnsw> 0 e userAnsw <= len (possível)): print (" Esse número não corresponde a nenhuma resposta. Digite o número da sua resposta: ") userAnsw = input () se possível [userAnsw-1] == qaItem.corrAnsw: print (" Sua resposta estava correta. ") CorrCount + = 1 else: print (" Sua resposta foi errado. ") print (" A resposta correta foi: "+ qaItem.corrAnsw) print (" ") print (" Você respondeu "+ str (corrCount) +" of "+ str (len (qaList)) +" questões corretamente. ")

947361 15
947361 15

Etapa 15. Execute o código

Se você estiver usando um IDE, clique no símbolo "Executar" ou no item de menu. Se você estiver usando um editor de texto, salve seu programa, feche o editor e abra seu programa com Python.

Pontas

  • Cuidado com o recuo correto. O código dentro de uma função ou definição de classe é indentado, assim como o código dentro de um loop. Um programa Python com indentação incorreta não funcionará.
  • Pressione Ctrl + C se quiser interromper o jogo e não terminá-lo.
  • Se você substituir cada chamada de input () por uma chamada de raw_input (), este programa funcionará no Python 2, mas parará de funcionar no Python 3.

Recomendado: