Ta preprosta vadnica za igro vam bo pomagala vaditi osnove programiranja Python.
Ustvarjanje igre "Kamen, papir, škarje" v Pythonu je odličen način za izboljšanje vaših sposobnosti programiranja. Igro lahko ustvarite z enim skriptom Python in jo igrate v ukazni vrstici.
Igra se začne tako, da igralca vprašate za izbiro: "kamen", "papir" ali "škarje". Nato počaka, da vnesejo svoj odgovor. Igro lahko igrate proti "računalniškemu" igralcu, ki bo samodejno izbral svojo potezo.
Igra lahko vključuje tudi veliko krogov. Torej, tudi če izgubite prvi krog, lahko še vedno poskusite zmagati dva od treh!
Kako nastaviti igro in vprašati igralca za potezo
Ko se igra začne, mora program Python od igralca zahtevati, da vnese "kamen", "papir" ali "škarje", in prejeti igralčev odgovor. Če želite nastaviti novo igro, začnite z ustvarjanjem nove datoteke Python s pripono .py.
Celotna koda za to vadnico je na voljo v repozitorij GitHub.
- Ustvari novo datoteko z imenom RockPaperScissors.py.
- Odprite novo datoteko Python s katerim koli urejevalnikom besedil, kot je Notepad++ ali Visual Studio Code.
- Na vrhu datoteke uvozite naključni modul. To boste kasneje v igri uporabili za naključno izbiro poteze za potezo računalnika.
uvoz naključen
- Igralcu predstavite sporočilo, v katerem ga prosite, naj vnese kamen, papir ali škarje.
userChoice = vnos(»Kamen, papir ali škarje? ").spodnji()
- Inicializirajte matriko z imenom "moveOptions", ki shranjuje seznam razpoložljivih potez, ki jih lahko predvajate vi ali računalnik.
premakniOpcije = ['rock', 'papir', 'škarje']
- Ko igralec vnese vnos, ga potrdi, da se prepriča, da je ena od razpoložljivih potez. Ko je igralec vnesel veljavno potezo, natisnite potrditveno sporočilo.
medtem (uporabniška izbira ne v premakni možnosti):
userChoice = vnos("Neveljavna izbira. Mora biti kamen, papir ali škarje: ").spodnji()
tiskanje("")
natisni(f "Izbral si {userChoice}.")
Kako se izmenjevati z računalnikom in primerjati poteze
Ko vnesete potezo, bo računalnik prevzel svojo potezo tako, da bo naključno izbral "kamen", "papir" ali "škarje". Igra bo nato morala primerjati vašo potezo s potezo računalnika, da ugotovi, kdo je zmagal.
- Uporabite naključni modul, da računalnik naključno izbere s seznama razpoložljivih potez.
computerChoice = random.choice (moveOptions)
natisni(f"Računalnik je izbral {computerChoice}.") - Svojo potezo boste morali primerjati s potezo računalnika, da ugotovite, kdo je zmagal. To lahko storite tako, da ustvarite nov slovar. Ta slovar vsebuje vsako potezo (na primer "kamen") in katero potezo zmaga ali izgubi (na primer "kamen" premaga "škarje" in izgubi proti "papir").
premika = {
'rock': { 'beats': 'škarje', 'losesTo': 'papir' },
'škarje': { 'beats': 'papir', 'losesTo': 'rock' },
'papir': { 'beats': 'rock', 'losesTo': 'škarje' },
} -
Uporabite stavek Python if da preverite, ali se vaša poteza in poteza računalnika izenačita. V nasprotnem primeru uporabite slovar potez, da primerjate potezo igralca s potezo računalnika.
Če bi na primer izbrali "rock", bi bila vrednost potez [userChoice]['beats'] "škarje". Če je računalnik izbral "škarje", to pomeni, da je vaša poteza premagala njihovo.if userChoice == computerChoice:
natisni(f"Izbrala sta oba, ti in računalnik {userChoice}. To je neodločeno!")
drugače:
če (premika[userChoice]['beats'] == izbira računalnika):
natisni(f"{userChoice} utripi {computerChoice}. Zmagal si!")
če (premika[userChoice]['losesTo'] == izbira računalnika):
natisni(f"{userChoice} izgubi proti {computerChoice}. Računalnik zmaga!")
Kako ohraniti rezultat med igralcem in računalnikom med več krogi
Dodate lahko tudi dodatne kroge, kjer vi in računalnik opravite po trikrat.
Ko vi in računalnik izbereta kamen, papir ali škarje, vas bo igra znova vprašala in spremljala vaše rezultate. Rezultat za igralca se poveča glede na to, kdo je zmagal v določenem krogu.
- Trenutna koda predstavlja en krog obratov, ki sta ga naredila igralec in računalnik. V novo funkcijo turn() dodajte vso trenutno kodo razen stavka za uvoz. Prav tako lahko ustrezno spremenite izhodna sporočila, tako da pravijo "V tem krogu ste zmagali" namesto "Zmagali ste":
defobrat():
userChoice = vnos(»Kamen, papir ali škarje? ").spodnji()premakniOpcije = ['rock', 'papir', 'škarje']
medtem (uporabniška izbira ne v premakni možnosti):
userChoice = vnos("Neveljavna izbira. Mora biti kamen, papir ali škarje: ").spodnji()tiskanje("")
natisni(f "Izbral si {userChoice}.")computerChoice = random.choice (moveOptions)
natisni(f"Računalnik je izbral {computerChoice}.")premika = {
'rock': { 'beats': 'škarje', 'losesTo': 'papir' },
'škarje': { 'beats': 'papir', 'losesTo': 'rock' },
'papir': { 'beats': 'rock', 'losesTo': 'škarje' },
}if userChoice == computerChoice:
natisni(f"Izbrala sta oba, ti in računalnik {userChoice}. To je neodločeno!")
drugače:
če (premika[userChoice]['beats'] == izbira računalnika):
natisni(f"{userChoice} utripi {computerChoice}. Zmagal si v tem krogu!")če (premika[userChoice]['losesTo'] == izbira računalnika):
natisni(f"{userChoice} izgubi proti {computerChoice}. Računalnik zmaga!") - Igralec in računalnik imata vsak trikrat na vrsti. Dodajte globalno spremenljivko, imenovano "turns", na vrh datoteke.
obrati = 3
- Po funkciji turn() uporabite zanko Python for ponovite krog trikrat. Na začetku vsakega kroga izpišite okroglo številko. Pokličite funkcijo turn(), da od igralca in računalnika zahtevate, naj naredita svoje poteze za ta krog.
za i v območju (obrati):
tiskanje("")
natisni(f "Okroglo {i+1}: ")
obrat() - Če želite spremljati, kdo je zmagal v posameznem krogu, dodajte spremenljivko rezultata za vsakega igralca na vrh datoteke. Vrednosti tem spremenljivkam boste dodelili znotraj funkcije turn(), zato jih uporabite kot globalne spremenljivke.
computerScore = 0
PlayerScore = 0defobrat():
globalno computerScore, playerScore - Znotraj funkcije turn(), ko sta igralec in računalnik naredila svojo potezo, dodajte točko zmagovalčevemu rezultatu. Spremenite stavek if, da povečate vrednost spremenljivke »playerScore« ali »computerScore«.
če (premika[userChoice]['beats'] == izbira računalnika):
natisni(f"{userChoice} utripi {computerChoice}. Zmagal si v tem krogu!")
playerScore += 1če (premika[userChoice]['losesTo'] == izbira računalnika):
natisni(f"{userChoice} izgubi proti {computerChoice}. Računalnik zmaga!")
computerScore += 1 - Na koncu funkcije turn() natisnite posodobitev skupnih rezultatov za vsakega igralca.
# Natisnite posodobitev skupnih rezultatov po krogu
tiskanje("")
natisni(f"SCOREBOARD | Rezultat igralca: {playerScore} | Ocena računalnika: {computerScore}") - Čisto na koncu igre in po zanki for, ki ponavlja poteze igralca in računalnika, natisnite končnega zmagovalca.
tiskanje("")
if (computerScore > playerScore):
natisni(f"Računalnik zmaga z {computerScore} točke!")
elif (playerScore > computerScore):
natisni(f "Zmagaš z {playerScore} točke!")
drugače:
natisni(f "Neodločeno je! Zmagata oba {playerScore} točke!")
Kako zagnati igro
Če želite igrati igro, zaženite skript Python s pomočjo terminala ali ukaznega poziva. Vnesite svojo potezo in počakajte, da računalnik naredi svojo. Ko zaključite tri kroge, bo program prikazal zmagovalca.
- Odprite ukazni poziv ali terminal in se pomaknite do mape, v kateri shranjujete datoteko Python.
- Za zagon skripta uporabite ukaz python:
pythonKamen papir Škarje.py
- Igrajte igro tako, da vnesete 'kamen', 'papir' ali 'škarje'.
Naučite se Pythona z ustvarjanjem iger
Ustvarjanje preprostih iger, kot je igra "Kamen, papir, škarje", je odličen način, da se bolje seznanite s koncepti programiranja. Obstaja toliko drugih zabavnih iger, ki jih lahko naredite s Pythonom, kot je besedilna pustolovska igra.