Cum să faci un joc de test în Python (cu imagini)

Cuprins:

Cum să faci un joc de test în Python (cu imagini)
Cum să faci un joc de test în Python (cu imagini)

Video: Cum să faci un joc de test în Python (cu imagini)

Video: Cum să faci un joc de test în Python (cu imagini)
Video: Countdown timer program in Python ⌛ 2024, Mai
Anonim

Dacă doriți să învățați Python, este bine să începeți cu câteva jocuri simple bazate pe text. Acest articol vă va arăta cum să creați un joc de test.

Pași

947361 1
947361 1

Pasul 1. Instalați Python dacă nu ați făcut-o deja

Există două versiuni majore ale Python: Python 2 și Python 3. Nu sunt interschimbabile, iar suportul pentru Python 2 se va încheia în 2020, astfel încât acest articol va presupune că instalați Python 3.

947361 2
947361 2

Pasul 2. Deschideți un fișier nou într-un editor de text sau în IDE-ul dvs. Python

Dați-i un nume descriptiv care se termină cu.py.

947361 3
947361 3

Pasul 3. Importați biblioteca aleatorie

Veți avea nevoie de el pentru a aranja la întâmplare răspunsurile posibile.

947361 4
947361 4

Pasul 4. Definiți o clasă „QA”

Un „QA” va consta dintr-o întrebare și un răspuns corect și o listă cu alte posibile răspunsuri. Funcția _init _ () va fi apelată ori de câte ori creați un nou obiect QA cu funcția QA (), argumentele sale fiind transmise în atributul corespunzător. Tip:

clasa QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = întrebare self.corrAnsw = corectAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Pasul 5. Creați o listă de QA-uri

Gândiți-vă la câteva întrebări cu un răspuns corect și câteva greșite. Creați obiecte QA din fiecare și puneți-le într-o listă. Deoarece lista va fi destul de lungă, o puteți împărți pe mai multe linii pentru o mai bună lizibilitate. Toate acestea se fac cu următorul cod (textul dvs. ar putea fi diferit):

qaList = [QA ("Unde este Minsk?", "în Belarus", ["în Rusia", "un astfel de oraș nu există"]), QA ("Care este capitala Australiei?", "Canberra", ["Sydney", "New York", "Australia nu există"]), QA ("Care dintre următoarele nu este pe Pământ?", "Marea Liniștită", ["Marea Mediterană", "Marea Baltică "," Marea Nordului "]), QA (" Care dintre următoarele nu este un continent? "," Arctica ", [" Antarctica "," America "]), QA (" Care dintre următoarele nu este o țară africană ? "," Malaezia ", [" Madagascar "," Djibouti "," Africa de Sud "," Zimbabwe "])]

947361 6
947361 6

Pasul 6. Adăugați o variabilă care contează câte răspunsuri au fost corecte

Setați-l la zero la început. Adăugați linia:

corrCount = 0

947361 7
947361 7

Pasul 7. Amestecați lista QA

Acest lucru va face ca întrebările dvs. să apară într-o ordine aleatorie. Acest lucru se face cu următoarea funcție:

random.shuffle (qaList)

947361 8
947361 8

Pasul 8. Faceți o buclă

Programul ar trebui să treacă peste fiecare articol din listă și să facă ceva cu el. Creați o astfel de buclă cu această expresie:

pentru qaItem în lista qa:

947361 9
947361 9

Pasul 9. Trimiteți fiecare întrebare

După expresia buclei, scrieți linia:

print (qaItem.question)

947361 10
947361 10

Pasul 10. Afișați toate răspunsurile posibile

Acestea ar trebui să apară într-o ordine aleatorie, astfel încât răspunsul corect să nu fie întotdeauna în aceeași poziție. De asemenea, acestea ar trebui să fie prefațate de un număr, astfel încât utilizatorul să nu fie nevoit să introducă din nou întregul răspuns. Următorul cod face acest lucru:

print ("Răspunsurile posibile sunt:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # paranteze pătrate transformă răspunsul corect în listă pentru concatenare cu altă listă random.shuffle (possible) count = 0 # indexuri de listă încep de la 0 în python while count <len (possible): print (str (count + 1) + ":" + possible [count]) count + = 1

947361 11
947361 11

Pasul 11. Luați informațiile utilizatorului

Mai întâi, spuneți utilizatorului că trebuie să introducă numărul său. Apoi, verificați dacă ceea ce a introdus utilizatorul este într-adevăr un număr care corespunde cu un răspuns. Dacă nu este, spuneți-i utilizatorului din nou. Utilizați acest cod (în afara buclei while pe care ați creat-o pentru ieșire):

print ("Vă rugăm să introduceți numărul răspunsului dvs.:") userAnsw = input () în timp ce nu userAnsw.isdigit (): print ("Acesta nu a fost un număr. Vă rugăm să introduceți numărul răspunsului dvs.:") userAnsw = input () userAnsw = int (userAnsw) în timp ce nu (userAnsw> 0 și userAnsw <= len (posibil)): print ("Acest număr nu corespunde niciunui răspuns. Vă rugăm să introduceți numărul răspunsului dvs.:") userAnsw = input ()

947361 12
947361 12

Pasul 12. Verificați dacă răspunsul utilizatorului a fost corect

Pentru a face acest lucru, obțineți textul răspunsului pentru care utilizatorul a introdus un număr și comparați-l cu textul răspunsului corect. Dacă sunt aceleași, răspunsul utilizatorului a fost corect și variabila corrCount ar trebui mărită cu 1. Altfel, este greșit și ar trebui să i se spună utilizatorului răspunsul corect. În cele din urmă, imprimați o linie goală pentru a adăuga spațiu la următoarea întrebare. Introduceți următorul cod:

dacă este posibil [userAnsw-1] == qaItem.corrAnsw: print ("Răspunsul tău a fost corect.") corrCount + = 1 else: print ("Răspunsul tău a fost greșit.") print ("Răspunsul corect a fost:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Pasul 13. Trageți o concluzie

În cele din urmă, utilizatorul vrea probabil să știe câte întrebări au dat dreptate. Deci, spuneți-le adăugând următoarea expresie în afara buclei for:

print ("Ai răspuns" + str (corrCount) + "din" + str (len (qaList)) + "întrebări corect.")

947361 14
947361 14

Pasul 14. Verificați codul

Acordați o atenție specială indentării. Codul dvs. complet ar trebui să arate astfel:

import clasa aleatorie QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Where is Minsk?", "in Belarus", [„în Rusia”, „un astfel de oraș nu există”]), QA („Care este capitala Australiei?”, „Canberra”, [„Sydney”, „New York”, „Australia nu există”]), QA („Care dintre următoarele nu este pe Pământ?”, „Marea Liniștită”, [„Marea Mediterană”, „Marea Baltică”, „Marea Nordului”]), QA („Care dintre următoarele nu este un continent? "," Arctica ", [" Antarctica "," America "]), QA (" Care dintre următoarele nu este o țară africană? "," Malaezia ", [" Madagascar "," Djibouti "," Sud Africa "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem in qaList: print (qaItem.question) print (" Răspunsurile posibile sunt: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # parantezele pătrate transformă răspunsul corect în listă pentru concatenarea cu altă listă random.shuffle (posibil) count = 0 # listă indexuri încep de la 0 i n python while count <len (possible): print (str (count + 1) + ":" + possible [count]) count + = 1 print ("Vă rugăm să introduceți numărul răspunsului dvs.:") userAnsw = input () în timp ce nu userAnsw.isdigit (): print ("Acesta nu era un număr. Vă rugăm să introduceți numărul răspunsului dvs.: ") userAnsw = input () userAnsw = int (userAnsw) în timp ce nu (userAnsw> 0 și userAnsw <= len (posibil)): print (" Acest număr nu corespunde niciunui răspuns. Vă rugăm să introduceți numărul răspunsului dvs.: ") userAnsw = input () dacă este posibil [userAnsw-1] == qaItem.corrAnsw: print (" Răspunsul dvs. a fost corect. ") CorrCount + = 1 else: print (" Răspunsul dvs. a fost greșit. ") print (" Răspunsul corect a fost: "+ qaItem.corrAnsw) print (" ") print (" Ai răspuns "+ str (corrCount) +" din "+ str (len (qaList)) +" întrebări corect. ")

947361 15
947361 15

Pasul 15. Rulați codul

Dacă utilizați un IDE, faceți clic pe simbolul „Run” sau pe elementul de meniu. Dacă utilizați un editor de text, salvați programul, închideți editorul și deschideți programul cu Python.

sfaturi

  • Aveți grijă la indentarea corectă. Codul din interiorul unei funcții sau definiții de clasă este indentat, la fel și codul din interiorul unei bucle. Un program Python cu indentare greșită nu va funcționa.
  • Apăsați Ctrl + C dacă doriți să întrerupeți jocul și să nu îl terminați.
  • Dacă înlocuiți fiecare apel de intrare () cu un apel de raw_input (), acest program va funcționa în Python 2, dar nu mai funcționa în Python 3.

Recomandat: