Jos haluat oppia Pythonin, on hyvä aloittaa yksinkertaisilla tekstipeleillä. Tämä artikkeli näyttää kuinka tehdä tietokilpailupeli.
Askeleet
Vaihe 1. Asenna Python, jos et ole jo tehnyt niin
Pythonista on kaksi pääversiota: Python 2 ja Python 3. Ne eivät ole keskenään vaihdettavissa ja Python 2: n tuki päättyy vuonna 2020, joten tässä artikkelissa oletetaan, että asennat Python 3: n.
Vaihe 2. Avaa uusi tiedosto tekstieditorissa tai Python IDE: ssä
Anna sille kuvaava nimi, joka päättyy.py.
Vaihe 3. Tuo satunnainen kirjasto
Tarvitset sitä satunnaisesti järjestääksesi mahdolliset vastaukset.
Vaihe 4. Määritä luokka "QA"
"Laadunvarmistus" koostuu kysymyksestä ja oikeasta vastauksesta sekä luettelosta mahdollisista muista vastauksista. Funktiota _init _ () kutsutaan aina, kun luot uuden QA -objektin funktiolla QA (), ja sen argumentit siirretään vastaavaan määritteeseen. Tyyppi:
luokka QA: def _init _ (itse, kysymys, correctAnswer, otherAnswers): self.question = kysymys self.corrAnsw = correctAnswer self.otherAnsw = otherAswers
Vaihe 5. Luo QA -luettelo
Ajattele joitakin kysymyksiä yhdellä oikealla ja toiset väärillä vastauksilla. Luo kustakin QA -objekteja ja laita ne luetteloon. Koska luettelo on melko pitkä, voit jakaa sen useille riveille luettavuuden parantamiseksi. Kaikki tämä tehdään seuraavalla koodilla (tekstisi voi olla erilainen):
qaList = [QA ("Missä on Minsk?", "Valko -Venäjä", ["Venäjällä", "sellaista kaupunkia ei ole olemassa"]), QA ("Mikä on Australian pääkaupunki?", "Canberra", ["Sydney", "New York", "Australiaa ei ole olemassa"]), QA ("Mikä seuraavista ei ole maan päällä?", "Rauhallisuuden meri", ["Välimeri", "Itämeri" "," Pohjanmeri "]), QA (" Mikä seuraavista ei ole maanosa? "," Arctica ", [" Etelämanner "," Amerikka "]), QA (" Mikä seuraavista ei ole Afrikan maa? ? "," Malesia ", [" Madagaskar "," Djibouti "," Etelä -Afrikka "," Zimbabwe "]
Vaihe 6. Lisää muuttuja, joka laskee kuinka monta vastausta oli oikein
Aseta se nollaan alussa. Lisää rivi:
corrCount = 0
Vaihe 7. Sekoita QA -luettelo
Näin kysymyksesi näkyvät satunnaisessa järjestyksessä. Tämä tehdään seuraavalla toiminnolla:
random.shuffle (qaList)
Vaihe 8. Tee silmukka
Ohjelman tulisi käydä läpi kaikki luettelon kohteet ja tehdä jotain sen kanssa. Luo tällainen silmukka tällä lausekkeella:
qaItem -kohtaan qaList:
Vaihe 9. Anna jokainen kysymys
Kirjoita silmukan lausekkeen jälkeen rivi:
tulosta (qaItem.question)
Vaihe 10. Anna kaikki mahdolliset vastaukset
Niiden pitäisi näkyä satunnaisessa järjestyksessä, jotta oikea vastaus ei aina ole samassa paikassa. Lisäksi niiden edessä on oltava numero, jotta käyttäjän ei tarvitse syöttää koko vastausta uudelleen. Seuraava koodi tekee tämän:
print ("Mahdolliset vastaukset ovat:") mahdollista = qaItem.otherAnsw + [qaItem.corrAnsw] # hakasulkeet muuttavat oikean vastauksen luetteloksi, joka yhdistetään muihin luetteloihin satunnainen. satunnainen (mahdollinen) count = 0 # luetteloindeksit alkavat nollasta pythonissa while count <len (mahdollista): print (str (count + 1) + ":" + mahdollista [count]) count + = 1
Vaihe 11. Ota käyttäjän panos
Kerro ensin käyttäjälle, että hänen on annettava numeronsa. Tarkista sitten, onko käyttäjän antama numero todella vastaus. Jos ei, kerro käyttäjälle uudelleen. Käytä tätä koodia (lähtöön luomasi while -silmukan ulkopuolella):
print ("Kirjoita vastauksesi numero:") userAnsw = input () kun ei userAnsw.isdigit (): print ("Se ei ollut numero. Anna vastauksesi numero:") userAnsw = input () userAnsw = int (userAnsw) kun ei (userAnsw> 0 ja userAnsw <= len (mahdollista)): print ("Tämä numero ei vastaa mitään vastausta. Anna vastauksesi numero:") userAnsw = input ()
Vaihe 12. Tarkista, onko käyttäjän vastaus oikea
Tätä varten hanki sen vastauksen teksti, jolle käyttäjä on antanut numeron, ja vertaa sitä oikean vastauksen tekstiin. Jos ne ovat samat, käyttäjän vastaus oli oikea ja muuttujaa corrCount olisi lisättävä yhdellä. Muuten se on väärin ja käyttäjälle pitäisi kertoa oikea vastaus. Tulosta lopuksi tyhjä rivi lisätäksesi tilaa seuraavaan kysymykseen. Syötä seuraava koodi:
jos mahdollista [userAnsw-1] == qaItem.corrAnsw: print ("Vastauksesi oli oikea.") corrCount + = 1 else: print ("Vastauksesi oli väärä.") print ("Oikea vastaus oli:" + qaItem. corrAnsw) print ("")
Vaihe 13. Anna johtopäätös
Lopulta käyttäjä todennäköisesti haluaa tietää, kuinka monta kysymystä he saivat oikein. Joten kerro heille lisäämällä seuraava lauseke for-loopin ulkopuolelle:
print ("Vastasit" + str (corrCount) + " /" + str (len (qaList)) + "kysymykset oikein.")
Vaihe 14. Tarkista koodi
Kiinnitä erityistä huomiota sisennykseen. Koko koodisi pitäisi näyttää tältä nyt:
tuoda satunnaisluokan QA: def _init _ (itse, kysymys, correctAnswer, otherAnswers): self.question = kysymys self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Where is Minsk?", "in Belarus", ["Venäjällä", "sellaista kaupunkia ei ole olemassa"]), QA ("Mikä on Australian pääkaupunki?", "Canberra", ["Sydney", "New York", "Australiaa ei ole olemassa"]), QA ("Mikä seuraavista ei ole maan päällä?", "Rauhallisuuden meri", ["Välimeri", "Itämeri", "Pohjanmeri"]), QA ("Mikä seuraavista ei ole maanosa? "," Arctica ", [" Etelämanner "," Amerikka "]), QA (" Mikä seuraavista ei ole Afrikan maa? "," Malesia ", [" Madagaskar "," Djibouti "," Etelä Africa "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem in qaList: print (qaItem.question) print (" Mahdolliset vastaukset ovat: ") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # hakasulkeet muuttavat oikean vastauksen luetteloksi liittämiseksi muihin luetteloihin satunnaisesti. satunnaistoisto (mahdollinen) count = 0 # luetteloindeksit alkavat 0 i: stä n python kun count <len (mahdollista): print (str (count + 1) + ":" + mahdollista [count]) count + = 1 print ("Kirjoita vastauksesi numero:") userAnsw = input () kun ei userAnsw.isdigit (): print ("Se ei ollut numero. Anna vastauksesi numero: ") userAnsw = input () userAnsw = int (userAnsw) kun ei (userAnsw> 0 ja userAnsw <= len (mahdollista)): print (" Tämä numero ei vastaa mitään vastausta. Anna vastauksesi numero: ") userAnsw = input () jos mahdollista [userAnsw-1] == qaItem.corrAnsw: print (" Vastauksesi oli oikea. ") CorrCount += 1 else: print (" Vastauksesi oli väärin. ") print (" Oikea vastaus oli: " + qaItem.corrAnsw) print (" ") print (" Vastasit " + str (corrCount) +" / " + str (len (qaList)) +" kysymykset oikein. ")
Vaihe 15. Suorita koodi
Jos käytät IDE: tä, napsauta Suorita -symbolia tai valikkokohdetta. Jos käytät tekstieditoria, tallenna ohjelma, sulje editori ja avaa ohjelma Pythonilla.
Vinkkejä
- Varo oikeaa sisennystä. Funktion tai luokan määritelmän sisällä oleva koodi on sisennetty, samoin kuin silmukan sisällä oleva koodi. Python -ohjelma, jossa on väärä sisennys, ei toimi.
- Paina Ctrl+C, jos haluat keskeyttää pelin etkä lopettaa sitä.
- Jos vaihdat jokaisen tulopuhelun () kutsuun raw_input (), tämä ohjelma toimii Python 2: ssa, mutta lakkaa toimimasta Python 3: ssa.