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
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.
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.
Etapa 3. Importe a biblioteca aleatória
Você precisará dele para organizar aleatoriamente as respostas possíveis.
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
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 "])]
Etapa 6. Adicione uma variável que conte quantas respostas estavam corretas
Defina-o como zero no início. Adicione a linha:
corrCount = 0
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)
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:
Etapa 9. Produza cada pergunta
Após a expressão de loop, escreva a linha:
imprimir (qaItem.question)
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
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 ()
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 ("")
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.")
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. ")
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.