Jei norite išmokti „Python“, gerai pradėti nuo kelių paprastų teksto žaidimų. Šis straipsnis parodys, kaip sukurti viktorinos žaidimą.
Žingsniai
Ž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 “.
2 veiksmas. Atidarykite naują failą teksto rengyklėje arba „Python IDE“
Suteikite jam aprašomąjį pavadinimą, kuris baigiasi.py.
3 veiksmas. Importuokite atsitiktinę biblioteką
Jums to reikės atsitiktinai išdėstant galimus atsakymus.
Ž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
Ž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ė "]
6. Pridėkite kintamąjį, kuris skaičiuoja, kiek atsakymų buvo teisinga
Pradžioje nustatykite jį į nulį. Pridėti eilutę:
corrCount = 0
Žingsnis 7. Sumaišykite QA sąrašą
Taip jūsų klausimai bus rodomi atsitiktine tvarka. Tai atliekama naudojant šią funkciją:
random.shuffle (qaList)
Ž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“:
Žingsnis 9. Išveskite kiekvieną klausimą
Po kilpos išraiškos parašykite eilutę:
spausdinti (qaItem.question)
Ž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
Ž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 ()
Ž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 ("")
Ž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.")
Ž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. ")
Ž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“.