Kuinka tehdä tietokilpailupeli Pythonissa (kuvilla)

Sisällysluettelo:

Kuinka tehdä tietokilpailupeli Pythonissa (kuvilla)
Kuinka tehdä tietokilpailupeli Pythonissa (kuvilla)

Video: Kuinka tehdä tietokilpailupeli Pythonissa (kuvilla)

Video: Kuinka tehdä tietokilpailupeli Pythonissa (kuvilla)
Video: KOODATAAN PELI // Miskan Ohjelmointinurkka #2 2024, Saattaa
Anonim

Jos haluat oppia Pythonin, on hyvä aloittaa yksinkertaisilla tekstipeleillä. Tämä artikkeli näyttää kuinka tehdä tietokilpailupeli.

Askeleet

947361 1
947361 1

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.

947361 2
947361 2

Vaihe 2. Avaa uusi tiedosto tekstieditorissa tai Python IDE: ssä

Anna sille kuvaava nimi, joka päättyy.py.

947361 3
947361 3

Vaihe 3. Tuo satunnainen kirjasto

Tarvitset sitä satunnaisesti järjestääksesi mahdolliset vastaukset.

947361 4
947361 4

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

947361 5
947361 5

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 "]

947361 6
947361 6

Vaihe 6. Lisää muuttuja, joka laskee kuinka monta vastausta oli oikein

Aseta se nollaan alussa. Lisää rivi:

corrCount = 0

947361 7
947361 7

Vaihe 7. Sekoita QA -luettelo

Näin kysymyksesi näkyvät satunnaisessa järjestyksessä. Tämä tehdään seuraavalla toiminnolla:

random.shuffle (qaList)

947361 8
947361 8

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:

947361 9
947361 9

Vaihe 9. Anna jokainen kysymys

Kirjoita silmukan lausekkeen jälkeen rivi:

tulosta (qaItem.question)

947361 10
947361 10

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

947361 11
947361 11

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 ()

947361 12
947361 12

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 ("")

947361 13
947361 13

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.")

947361 14
947361 14

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. ")

947361 15
947361 15

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.

Suositeltava: