Come creare un gioco a quiz in Python (con immagini)

Sommario:

Come creare un gioco a quiz in Python (con immagini)
Come creare un gioco a quiz in Python (con immagini)

Video: Come creare un gioco a quiz in Python (con immagini)

Video: Come creare un gioco a quiz in Python (con immagini)
Video: Python program to create countdown timer #shorts #coding #programming 2024, Maggio
Anonim

Se vuoi imparare Python, è bene iniziare con alcuni semplici giochi di testo. Questo articolo ti mostrerà come creare un gioco a quiz.

Passi

947361 1
947361 1

Passaggio 1. Installa Python se non l'hai già fatto

Esistono due versioni principali di Python: Python 2 e Python 3. Non sono intercambiabili e il supporto per Python 2 terminerà nel 2020, quindi questo articolo presumerà che installi Python 3.

947361 2
947361 2

Passaggio 2. Apri un nuovo file in un editor di testo o nel tuo IDE Python

Dagli un nome descrittivo che termini con.py.

947361 3
947361 3

Passaggio 3. Importa la libreria casuale

Ti servirà per organizzare in modo casuale le possibili risposte.

947361 4
947361 4

Passaggio 4. Definire una classe "QA"

Un "QA" consisterà in una domanda e una risposta corretta e un elenco di possibili altre risposte. La funzione _init_() verrà chiamata ogni volta che crei un nuovo oggetto QA con la funzione QA(), con i suoi argomenti passati all'attributo corrispondente. Tipo:

class QA: def _init_(self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Passaggio 5. Creare un elenco di QA

Pensa ad alcune domande con una risposta giusta e alcune risposte sbagliate. Crea oggetti QA da ciascuno e inseriscili in un elenco. Poiché l'elenco sarà piuttosto lungo, puoi suddividerlo su più righe per una migliore leggibilità. Tutto questo viene fatto con il seguente codice (il tuo testo potrebbe essere diverso):

qaList = [QA("Dov'è Minsk?", "in Bielorussia", ["in Russia", "una città del genere non esiste"]), QA("Qual è la capitale dell'Australia?", "Canberra", ["Sydney", "New York", "L'Australia non esiste"]), QA("Quale dei seguenti non è sulla Terra?", "Mare della tranquillità", ["Mar Mediterraneo", "Mar Baltico ", "Mare del Nord"]), QA("Quale dei seguenti non è un continente?", "Artico", ["Antartide", "America"]), QA("Quale dei seguenti non è un paese africano ?", "Malesia", ["Madagascar", "Gibuti", "Sud Africa", "Zimbabwe"])]

947361 6
947361 6

Passaggio 6. Aggiungi una variabile che conta quante risposte erano corrette

Impostalo a zero all'inizio. Aggiungi la riga:

corrCount = 0

947361 7
947361 7

Passaggio 7. Mescola l'elenco QA

Questo farà apparire le tue domande in ordine casuale. Questo viene fatto con la seguente funzione:

random.shuffle(qaList)

947361 8
947361 8

Passaggio 8. Crea un ciclo

Il programma dovrebbe esaminare ogni elemento dell'elenco e fare qualcosa con esso. Crea un tale ciclo con questa espressione:

per qaItem in qaList:

947361 9
947361 9

Passaggio 9. Esegui l'output di ogni domanda

Dopo l'espressione del ciclo, scrivi la riga:

print(qaItem.question)

947361 10
947361 10

Passaggio 10. Emetti tutte le risposte possibili

Dovrebbero apparire in ordine casuale in modo che la risposta corretta non sia sempre nella stessa posizione. Inoltre, dovrebbero essere preceduti da un numero in modo che l'utente non debba inserire nuovamente l'intera risposta. Il codice seguente fa questo:

print("Le possibili risposte sono:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # le parentesi quadre trasformano la risposta corretta in una lista per la concatenazione con altre liste random.shuffle(possibile) count = 0 # gli indici delle liste iniziano da 0 in python while count < len(possible): print(str(count+1) + ": " + possible[count]) count += 1

947361 11
947361 11

Passaggio 11. Accetta l'input dell'utente

Innanzitutto, dì all'utente che deve inserire il numero del proprio. Quindi, controlla se quello che l'utente ha inserito è davvero un numero che corrisponde a una risposta. In caso contrario, comunicalo di nuovo all'utente. Usa questo codice (al di fuori del ciclo while che hai creato per l'output):

print("Inserisci il numero della tua risposta:") userAnsw = input() mentre non userAnsw.isdigit(): print("Non era un numero. Inserisci il numero della tua risposta:") userAnsw = input() userAnsw = int(userAnsw) while not (userAnsw > 0 and userAnsw <= len(possible)): print("Quel numero non corrisponde ad alcuna risposta. Inserisci il numero della tua risposta:") userAnsw = input()

947361 12
947361 12

Passaggio 12. Verificare se la risposta dell'utente era corretta

Per fare ciò, prendi il testo della risposta per cui l'utente ha inserito un numero e confrontalo con il testo della risposta corretta. Se sono uguali, la risposta dell'utente era corretta e la variabile corrCount dovrebbe essere aumentata di 1. Altrimenti, è sbagliato e l'utente dovrebbe ricevere la risposta corretta. Infine, stampa una riga vuota per aggiungere spazio alla domanda successiva. Inserisci il seguente codice:

if possible[userAnsw-1] == qaItem.corrAnsw: print("La tua risposta era corretta.") corrCount += 1 else: print("La tua risposta era sbagliata.") print("La risposta corretta era: " + qaItem. corrAnsw) print("")

947361 13
947361 13

Passaggio 13. Emettere una conclusione

Alla fine, l'utente probabilmente vorrà sapere quante domande ha risposto correttamente. Quindi dillo loro aggiungendo la seguente espressione al di fuori del ciclo for:

print("Hai risposto " + str(corrCount) + " of " + str(len(qaList)) + " alle domande correttamente.")

947361 14
947361 14

Passaggio 14. Controlla il tuo codice

Presta particolare attenzione alla rientranza. Il tuo codice completo dovrebbe assomigliare a questo ora:

import random class QA: def _init_(self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA("Dov'è Minsk?", "in Bielorussia", ["in Russia", "una città del genere non esiste"]), QA("Qual è la capitale dell'Australia?", "Canberra", ["Sydney", "New York", "L'Australia non esiste"]), QA("Quale dei seguenti non è sulla Terra?", "Sea of Tranquility", ["Mar Mediterraneo", "Mar Baltico", "Mare del Nord"]), QA("Quale dei seguenti non è un continente?", "Artico", ["Antartide", "America"]), QA("Quale dei seguenti non è un paese africano?", "Malesia", ["Madagascar", "Gibuti", "Sud Africa", "Zimbabwe"])] corrCount = 0 random.shuffle(qaList) for qaItem in qaList: print(qaItem.question) print("Le possibili risposte sono:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # le parentesi quadre trasformano la risposta corretta in un elenco per la concatenazione con altri elenchi random.shuffle(possibile) count = 0 # gli indici dell'elenco iniziano da 0 i n python while count < len(possible): print(str(count+1) + ": " + possible[count]) count += 1 print("Inserisci il numero della tua risposta:") userAnsw = input() while not userAnsw.isdigit(): print("Quello non era un numero. Per favore inserisci il numero della tua risposta:") userAnsw = input() userAnsw = int(userAnsw) while not (userAnsw > 0 e userAnsw <= len(possibile)): print("Quel numero non corrisponde ad alcuna risposta. Per favore inserisci il numero della tua risposta:") userAnsw = input() se possibile[userAnsw-1] == qaItem.corrAnsw: print("La tua risposta era corretta.") corrCount += 1 else: print("La tua risposta era sbagliato.") print("La risposta corretta era: " + qaItem.corrAnsw) print("") print("Hai risposto " + str(corrCount) + " of " + str(len(qaList)) + " domande correttamente. ")

947361 15
947361 15

Passaggio 15. Eseguire il codice

Se stai utilizzando un IDE, fai clic sul simbolo "Esegui" o sulla voce di menu. Se stai utilizzando un editor di testo, salva il programma, chiudi l'editor e apri il programma con Python.

Suggerimenti

  • Fai attenzione alla corretta indentazione. Il codice all'interno di una definizione di funzione o classe è rientrato, così come il codice all'interno di un ciclo. Un programma Python con indentazione errata non funzionerà.
  • Premi Ctrl+C se vuoi interrompere il gioco e non finirlo.
  • Se sostituisci ogni chiamata di input() con una chiamata di raw_input(), questo programma funzionerà in Python 2, ma smetterà di funzionare in Python 3.

Consigliato: