Kaip sukurti viktorinos žaidimą „Python“(su nuotraukomis)

Turinys:

Kaip sukurti viktorinos žaidimą „Python“(su nuotraukomis)
Kaip sukurti viktorinos žaidimą „Python“(su nuotraukomis)

Video: Kaip sukurti viktorinos žaidimą „Python“(su nuotraukomis)

Video: Kaip sukurti viktorinos žaidimą „Python“(su nuotraukomis)
Video: Countdown timer program in Python ⌛ 2024, Gegužė
Anonim

Jei norite išmokti „Python“, gerai pradėti nuo kelių paprastų teksto žaidimų. Šis straipsnis parodys, kaip sukurti viktorinos žaidimą.

Žingsniai

947361 1
947361 1

Žingsnis 1. Įdiekite „Python“, jei to dar nepadarėte

Yra dvi pagrindinės „Python“versijos: „Python 2“ir „Python 3. Jos nėra keičiamos ir„ Python 2 “palaikymas baigsis 2020 m., Todėl šiame straipsnyje bus daroma prielaida, kad įdiegiate„ Python 3 “.

947361 2
947361 2

2 veiksmas. Atidarykite naują failą teksto rengyklėje arba „Python IDE“

Suteikite jam aprašomąjį pavadinimą, kuris baigiasi.py.

947361 3
947361 3

3 veiksmas. Importuokite atsitiktinę biblioteką

Jums to reikės atsitiktinai išdėstant galimus atsakymus.

947361 4
947361 4

Žingsnis 4. Apibrėžkite klasę „QA“

„QA“sudarys klausimas ir teisingas atsakymas bei galimų kitų atsakymų sąrašas. Funkcija _init _ () bus iškviesta kiekvieną kartą, kai sukursite naują QA objektą su funkcija QA (), o jo argumentai bus perkelti į atitinkamą atributą. Tipas:

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

947361 5
947361 5

Žingsnis 5. Sukurkite QA sąrašą

Pagalvokite apie kai kuriuos klausimus su vienu teisingu ir kitu neteisingu atsakymu. Sukurkite QA objektus iš kiekvieno ir įdėkite juos į sąrašą. Kadangi sąrašas bus gana ilgas, galite jį padalyti į kelias eilutes, kad būtų lengviau skaityti. Visa tai daroma naudojant šį kodą (jūsų tekstas gali būti kitoks):

qaList = [QA („Kur yra Minskas?“, „Baltarusijoje“, [„Rusijoje“, „tokio miesto nėra“)), QA („Kas yra Australijos sostinė?“, „Kanbera“), [„Sidnėjus“, „Niujorkas“, „Australija neegzistuoja“]), QA („Kurio iš šių dalykų nėra Žemėje?“, „Ramybės jūra“, [„Viduržemio jūra“, „Baltijos jūra“) "," Šiaurės jūra "]), QA (" Kuris iš šių nėra žemynas? "," Arktika ", [" Antarktida "," Amerika "]), QA (" Kuri iš šių šalių nėra Afrikos šalis? ? "," Malaizija ", [" Madagaskaras "," Džibutis "," Pietų Afrika "," Zimbabvė "]

947361 6
947361 6

6. Pridėkite kintamąjį, kuris skaičiuoja, kiek atsakymų buvo teisinga

Pradžioje nustatykite jį į nulį. Pridėti eilutę:

corrCount = 0

947361 7
947361 7

Žingsnis 7. Sumaišykite QA sąrašą

Taip jūsų klausimai bus rodomi atsitiktine tvarka. Tai atliekama naudojant šią funkciją:

random.shuffle (qaList)

947361 8
947361 8

Žingsnis 8. Padarykite kilpą

Programa turėtų apžvelgti kiekvieną sąrašo elementą ir su juo ką nors padaryti. Sukurkite tokią kilpą naudodami šią išraišką:

„qaItem“„qaList“:

947361 9
947361 9

Žingsnis 9. Išveskite kiekvieną klausimą

Po kilpos išraiškos parašykite eilutę:

spausdinti (qaItem.question)

947361 10
947361 10

Žingsnis 10. Išveskite visus galimus atsakymus

Jie turėtų būti rodomi atsitiktine tvarka, kad teisingas atsakymas ne visada būtų toje pačioje pozicijoje. Be to, jų pradžioje turi būti skaičius, kad vartotojui nereikėtų dar kartą įvesti viso atsakymo. Sekantis kodas tai daro:

print ("Galimi atsakymai:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # laužtiniai skliausteliai teisingą atsakymą paverčia į sąrašą, kad būtų sujungtas su kitu sąrašu random.shuff (galima) count = 0 # sąrašo indeksai prasideda nuo 0 python nors skaičius <len (galima): spausdinti (str (skaičius + 1) + ":" + galima [skaičiuoti]) skaičius + = 1

947361 11
947361 11

Žingsnis 11. Paimkite vartotojo įvestį

Pirmiausia pasakykite vartotojui, kad jis turi įvesti savo numerį. Tada patikrinkite, ar vartotojo įvestas numeris tikrai atitinka atsakymą. Jei ne, pasakykite vartotojui dar kartą. Naudokite šį kodą (už to laiko ciklo, kurį sukūrėte išėjimui):

print ("Įveskite savo atsakymo numerį:") userAnsw = input () o ne userAnsw.isdigit (): print ("Tai nebuvo skaičius. Įveskite savo atsakymo numerį:") userAnsw = input () userAnsw = int (userAnsw), kol ne (userAnsw> 0 ir userAnsw <= len (galima)): print ("Šis skaičius neatitinka jokio atsakymo. Įveskite savo atsakymo numerį:") userAnsw = input ()

947361 12
947361 12

Žingsnis 12. Patikrinkite, ar vartotojo atsakymas buvo teisingas

Norėdami tai padaryti, gaukite atsakymo, į kurį vartotojas įvedė skaičių, tekstą ir palyginkite jį su teisingo atsakymo tekstu. Jei jie yra vienodi, vartotojo atsakymas buvo teisingas, o kintamasis „corrCount“turėtų būti padidintas 1. Kitaip tai neteisinga ir vartotojui turėtų būti pasakytas teisingas atsakymas. Galiausiai išspausdinkite tuščią eilutę, kad kitam klausimui pridėtumėte šiek tiek vietos. Įveskite šį kodą:

jei įmanoma [userAnsw-1] == qaItem.corrAnsw: print ("Jūsų atsakymas buvo teisingas.") corrCount + = 1 else: print ("Jūsų atsakymas buvo neteisingas.") print ("Teisingas atsakymas buvo:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Žingsnis 13. Išveskite išvadą

Galų gale vartotojas tikriausiai nori žinoti, kiek klausimų jie gavo teisingai. Taigi pasakykite jiems, pridėdami šią išraišką už for-loop:

print ("Jūs atsakėte" + str (corrCount) + "iš" + str (len (qaList)) + "klausimai teisingai.")

947361 14
947361 14

Žingsnis 14. Patikrinkite savo kodą

Atkreipkite ypatingą dėmesį į įdubimą. Visas jūsų kodas dabar turėtų atrodyti taip:

importuoti atsitiktinės klasės QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Kur yra Minskas?", "Baltarusijoje", ["Rusijoje", "tokio miesto nėra"]), QA ("Kas yra Australijos sostinė?", "Kanbera", ["Sidnėjus", "Niujorkas", "Australija neegzistuoja")]), QA („Kurio iš šių dalykų nėra Žemėje?“, „Ramybės jūra“, [„Viduržemio jūra“, „Baltijos jūra“, „Šiaurės jūra“]), QA („Kuris iš šių nėra žemynas? "," Arktika ", [" Antarktida "," Amerika "]), QA (" Kuri iš šių šalių nėra Afrikos šalis? "," Malaizija ", [" Madagaskaras "," Džibutis "," Pietų Afrika "," Zimbabvė "])] corrCount = 0 atsitiktinis.sumaišymas (qaList), skirtas qaItem iš qaList: print (qaItem.question) print (" Galimi atsakymai: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # laužtiniai skliausteliai teisingą atsakymą paverčia sąrašu, sujungiančiu su kitu atsitiktiniu sąrašu. maišymas (galimas) skaičius = 0 # sąrašo indeksai prasideda nuo 0 i n python, kol skaičius <len (galima): print (str (count + 1) + ":" + galima [count]) count + = 1 print ("Įveskite savo atsakymo numerį:") userAnsw = input () o ne userAnsw.isdigit (): print ("Tai nebuvo skaičius. Įveskite savo atsakymo numerį: ") userAnsw = input () userAnsw = int (userAnsw), kol ne (userAnsw> 0 ir userAnsw <= len (galima)): print (" Šis skaičius neatitinka jokio atsakymo. Įveskite savo atsakymo numerį: ") userAnsw = input () jei įmanoma [userAnsw-1] == qaItem.corrAnsw: print (" Jūsų atsakymas buvo teisingas. ") CorrCount += 1 else: print (" Jūsų atsakymas buvo neteisingai. ") print (" Teisingas atsakymas buvo: " + qaItem.corrAnsw) print (" ") print (" Jūs atsakėte " + str (corrCount) +" iš " + str (len (qaList)) +" klausimai teisingai. ")

947361 15
947361 15

Žingsnis 15. Paleiskite kodą

Jei naudojate IDE, spustelėkite simbolį „Vykdyti“arba meniu elementą. Jei naudojate teksto redaktorių, išsaugokite programą, uždarykite redaktorių ir atidarykite programą naudodami „Python“.

Patarimai

  • Saugokitės teisingos įtraukos. Funkcijos arba klasės apibrėžimo viduje esantis kodas yra įtrauktas, kaip ir ciklo viduje esantis kodas. „Python“programa su neteisinga įtraukomis neveiks.
  • Paspauskite Ctrl+C, jei norite nutraukti žaidimą ir jo nebaigti.
  • Jei kiekvieną įvesties () skambutį pakeisite raw_input (), ši programa veiks „Python 2“, bet nustos veikti „Python 3“.

Rekomenduojamas: