Jak vytvořit kvízovou hru v Pythonu (s obrázky)

Obsah:

Jak vytvořit kvízovou hru v Pythonu (s obrázky)
Jak vytvořit kvízovou hru v Pythonu (s obrázky)

Video: Jak vytvořit kvízovou hru v Pythonu (s obrázky)

Video: Jak vytvořit kvízovou hru v Pythonu (s obrázky)
Video: Countdown timer program in Python ⌛ 2024, Smět
Anonim

Pokud se chcete naučit Python, je dobré začít s některými jednoduchými textovými hrami. Tento článek vám ukáže, jak vytvořit kvízovou hru.

Kroky

947361 1
947361 1

Krok 1. Nainstalujte si Python, pokud jste to ještě neudělali

Existují dvě hlavní verze Pythonu: Python 2 a Python 3. Nejsou zaměnitelné a podpora pro Python 2 skončí v roce 2020, takže tento článek předpokládá, že nainstalujete Python 3.

947361 2
947361 2

Krok 2. Otevřete nový soubor v textovém editoru nebo v Python IDE

Pojmenujte jej popisným názvem, který končí příponou.py.

947361 3
947361 3

Krok 3. Importujte náhodnou knihovnu

Budete to potřebovat k náhodnému uspořádání možných odpovědí.

947361 4
947361 4

Krok 4. Definujte třídu „QA“

„QA“se bude skládat z otázky a správné odpovědi a seznamu možných dalších odpovědí. Funkce _init _ () bude volána vždy, když vytvoříte nový objekt QA s funkcí QA (), přičemž jeho argumenty budou předány do odpovídajícího atributu. Typ:

třída QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Krok 5. Vytvořte seznam QA

Zamyslete se nad některými otázkami s jednou správnou a s některými špatnými odpověďmi. Z každého vytvořte objekty QA a vložte je do seznamu. Protože seznam bude poměrně dlouhý, můžete jej pro lepší čitelnost rozdělit na více řádků. To vše se provádí pomocí následujícího kódu (váš text se může lišit):

qaList = [QA („Kde je Minsk?“, „v Bělorusku“, [„v Rusku“, „takové město neexistuje“]), QA („Jaké je hlavní město Austrálie?“, „Canberra“([„Sydney“, „New York“, „Austrálie neexistuje“]), QA („Kdo z následujících není na Zemi?“, „Moře klidu“, [„Středozemní moře“, „Baltské moře“"," Severní moře "]), QA (" Který z následujících není kontinent? "," Arctica ", [" Antarktida "," Amerika "]), QA (" Který z následujících není africká země ? "," Malajsie ", [" Madagaskar "," Džibuti "," Jižní Afrika "," Zimbabwe "])]

947361 6
947361 6

Krok 6. Přidejte proměnnou, která počítá, kolik odpovědí bylo správných

Na začátku ho nastavte na nulu. Přidejte řádek:

corrCount = 0

947361 7
947361 7

Krok 7. Zamíchejte seznam QA

Vaše otázky se tak zobrazí v náhodném pořadí. To se provádí pomocí následující funkce:

random.shuffle (qaList)

947361 8
947361 8

Krok 8. Vytvořte smyčku

Program by měl projít každou položku seznamu a něco s tím udělat. Vytvořte takovou smyčku s tímto výrazem:

pro qaItem v qaList:

947361 9
947361 9

Krok 9. Výstup každé otázky

Za výraz smyčky napište řádek:

tisk (qaItem.question)

947361 10
947361 10

Krok 10. Výstup všech možných odpovědí

Měly by se objevit v náhodném pořadí, aby správná odpověď nebyla vždy na stejné pozici. Také by mělo být uvedeno před nimi číslo, aby uživatel nemusel znovu zadávat celou odpověď. Následující kód to provede:

print ("Možné odpovědi jsou:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # hranaté závorky přemění správnou odpověď na seznam pro zřetězení s jiným seznamem random.shuffle (possible) count = 0 # indexy seznamu začínají na 0 v pythonu while count <len (possible): print (str (count + 1) + ":" + possible [count]) count + = 1

947361 11
947361 11

Krok 11. Proveďte zadání uživatele

Nejprve sdělte uživateli, že musí zadat své číslo. Poté zkontrolujte, zda to, co uživatel zadal, je skutečně číslo, které odpovídá odpovědi. Pokud tomu tak není, řekněte to uživateli znovu. Použijte tento kód (mimo smyčku while, kterou jste pro výstup vytvořili):

print ("Zadejte prosím číslo své odpovědi:") userAnsw = vstup (), zatímco není userAnsw.isdigit (): print ("To nebylo číslo. Zadejte prosím číslo své odpovědi:") userAnsw = vstup () userAnsw = int (userAnsw) while not (userAnsw> 0 and userAnsw <= len (possible)): print ("Toto číslo neodpovídá žádné odpovědi. Zadejte prosím číslo své odpovědi:") userAnsw = input ()

947361 12
947361 12

Krok 12. Zkontrolujte, zda byla odpověď uživatele správná

Chcete -li to provést, získejte text odpovědi, pro kterou uživatel zadal číslo, a porovnejte jej s textem správné odpovědi. Pokud jsou stejné, odpověď uživatele byla správná a proměnná corrCount by měla být zvýšena o 1. Jinak je to špatně a uživateli by měla být sdělena správná odpověď. Nakonec vytiskněte prázdný řádek a přidejte místo na další otázku. Zadejte následující kód:

pokud je to možné [userAnsw-1] == qaItem.corrAnsw: print („Vaše odpověď byla správná.“) corrCount + = 1 else: print („Vaše odpověď byla špatná.“) print („Správná odpověď byla:“+ qaItem. corrAnsw) tisk ("")

947361 13
947361 13

Krok 13. Vytvořte závěr

Na konci chce uživatel pravděpodobně vědět, kolik otázek správně zodpověděl. Řekněte jim to tedy přidáním následujícího výrazu mimo smyčku for:

print ("Odpověděli jste" + str (corrCount) + "z" + str (len (qaList)) + "otázky správně.")

947361 14
947361 14

Krok 14. Zkontrolujte svůj kód

Zvláštní pozornost věnujte odsazení. Váš kompletní kód by nyní měl vypadat takto:

import random class QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Where is Minsk?", "in Belarus", [„v Rusku“, „takové město neexistuje“]), QA („Jaké je hlavní město Austrálie?“, „Canberra“, [„Sydney“, „New York“, „Austrálie neexistuje“]), QA („Který z následujících není na Zemi?“, „Moře klidu“, [„Středozemní moře“, „Baltské moře“, „Severní moře“]), QA („Který z následujících není kontinent? “,„ Arctica “, [„ Antarktida “,„ Amerika “]), QA („ Který z následujících není africká země? “,„ Malajsie “, [„ Madagaskar “,„ Džibuti “,„ Jih Afrika "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) pro qaItem v qaList: print (qaItem.question) print (" Možné odpovědi jsou: ") možné = qaItem.otherAnsw + [qaItem.corrAnsw] # hranaté závorky přeměňují správnou odpověď na seznam pro zřetězení s jiným seznamem random.shuffle (possible) count = 0 # indexy seznamu začínají na 0 i n python while count <len (possible): print (str (count + 1) + ":" + possible [count]) count + = 1 print ("Please enter the number of your answer:") userAnsw = input () zatímco není userAnsw.isdigit (): print („To nebylo číslo. Zadejte prosím číslo své odpovědi: ") userAnsw = input () userAnsw = int (userAnsw) while not (userAnsw> 0 and userAnsw <= len (possible)): print (" Toto číslo neodpovídá žádné odpovědi. " Zadejte prosím číslo své odpovědi: ") userAnsw = input () pokud je to možné [userAnsw-1] == qaItem.corrAnsw: print (" Vaše odpověď byla správná. ") CorrCount += 1 else: print (" Vaše odpověď byla špatně. ") print (" Správná odpověď byla: " + qaItem.corrAnsw) print (" ") print (" Odpověděli jste " + str (corrCount) +" of " + str (len (qaList)) +" otázky správně. ")

947361 15
947361 15

Krok 15. Spusťte kód

Pokud používáte IDE, klikněte na symbol „Spustit“nebo položku nabídky. Pokud používáte textový editor, uložte program, zavřete editor a otevřete jej pomocí Pythonu.

Tipy

  • Dávejte pozor na správné odsazení. Kód uvnitř definice funkce nebo třídy je odsazen, stejně jako kód uvnitř smyčky. Program Python se špatným odsazením nebude fungovat.
  • Pokud chcete hru přerušit a nedokončit, stiskněte Ctrl+C.
  • Pokud každé volání input () nahradíte voláním raw_input (), bude tento program fungovat v Pythonu 2, ale přestane fungovat v Pythonu 3.

Doporučuje: