Ovaj jednostavan vodič za igru pomoći će vam da uvježbate osnove programiranja u Pythonu.
Stvaranje igre "Kamen, papir, škare" u Pythonu izvrstan je način da poboljšate svoje vještine programiranja. Igru možete izraditi s jednom Python skriptom i igrati je u naredbenom retku.
Igra počinje traženjem igrača za izbor: "kamen", "papir" ili "škare". Zatim čeka da unesu svoj odgovor. Igru možete igrati protiv "računalnog" igrača, koji će automatski odabrati svoj potez.
Igra također može uključivati mnogo rundi. Dakle, čak i ako izgubite u prvom krugu, još uvijek možete pokušati dobiti dva od tri!
Kako postaviti igru i pitati igrača za njihov potez
Kada igra započne, Python program bi trebao tražiti od igrača da unese "kamen", "papir" ili "škare" i prihvatiti igračev odgovor. Za postavljanje nove igre, počnite stvaranjem nove Python datoteke s nastavkom .py.
Cijeli kod za ovaj vodič dostupan je u GitHub repozitorij.
- Napravite novu datoteku pod nazivom RockPaperScissors.py.
- Otvorite novu Python datoteku pomoću bilo kojeg uređivača teksta, kao što je Notepad++ ili Visual Studio Code.
- Na vrhu datoteke uvezite nasumični modul. To ćete koristiti kasnije u igri za nasumični odabir poteza za potez računala.
uvoz slučajan
- Pokažite igraču poruku tražeći od njega da unese kamen, papir ili škare.
korisnički izbor = unos(„Kamen, papir ili škare? ").niži()
- Inicijalizirajte niz pod nazivom "moveOptions" koji pohranjuje popis dostupnih poteza koje možete igrati ili vi ili računalo.
premjestiOpcije = ['stijena', 'papir', 'škare']
- Kada igrač unese unos, potvrdite ga kako biste bili sigurni da je to jedan od dostupnih poteza. Nakon što igrač unese važeći potez, ispišite poruku potvrde.
dok (korisnički izbor ne u premjestitiOpcije):
korisnički izbor = unos(„Neispravan izbor. Mora biti kamen, papir ili škare: ").niži()
ispisati("")
ispis(f „Ti si izabrao {userChoice}.")
Kako se izmjenjivati s računalom i uspoređivati poteze
Nakon što unesete svoj potez, računalo će doći na red tako što će nasumično odabrati "kamen", "papir" ili "škare". Igra će zatim morati usporediti vaš potez s potezom računala kako bi odredila tko je pobijedio.
- Koristite nasumični modul kako biste natjerali računalo da nasumično odabere s popisa dostupnih poteza.
computerChoice = random.choice (moveOptions)
ispis(f"Računalo je odabralo {computerChoice}.") - Morat ćete usporediti svoj potez s potezom računala kako biste odredili tko je pobijedio. To možete učiniti stvaranjem novog rječnika. Ovaj rječnik sadrži svaki potez (na primjer, "kamen") i koji potez dobiva ili gubi (na primjer, "kamen" pobjeđuje "škare" i gubi od "papira").
kreće = {
'stijena': { 'beats': 'škare', 'losesTo': 'papir' },
'škare': { 'beats': 'papir', 'losesTo': 'stijena' },
'papir': { 'beats': 'stijena', 'losesTo': 'škare' },
} -
Koristite Python if naredbu da provjerite rezultiraju li vaš potez i potez računala izjednačenim rezultatom. U suprotnom, upotrijebite rječnik poteza da usporedite potez igrača s potezom računala.
Na primjer, ako ste odabrali "rock", tada bi vrijednost poteza [userChoice]['beats'] bila "škare". Ako je računalo izabralo "škare", to znači da je vaš potez pobijedio njihov.if userChoice == computerChoice:
ispis(f"I ti i kompjuter ste izabrali {userChoice}. To je neriješeno!")
drugo:
ako (pomiče[userChoice]['beats'] == izbor računala):
ispis(f"{userChoice} otkucaji {computerChoice}. Pobjedio si!")
ako (pomiče[userChoice]['losesTo'] == izbor računala):
ispis(f"{userChoice} gubi od {computerChoice}. Računalo pobjeđuje!")
Kako zadržati rezultat između igrača i računala između više rundi
Također možete dodati dodatne runde, gdje se vi i računalo okrećete po tri puta.
Nakon što vi i računalo odaberete kamen, papir ili škare, igra će vas ponovo pitati i pratiti vaše rezultate. Rezultat za igrača se povećava ovisno o tome tko je pobijedio u određenoj rundi.
- Trenutačni kod predstavlja jedan krug poteza koji su napravili i igrač i računalo. Dodajte sav trenutni kod osim naredbe import unutar nove funkcije turn(). Također možete promijeniti izlazne poruke u skladu s tim, da kažu "Vi ste pobijedili u ovoj rundi" umjesto "Vi ste pobijedili":
defskretanje():
korisnički izbor = unos(„Kamen, papir ili škare? ").niži()premjestiOpcije = ['stijena', 'papir', 'škare']
dok (korisnički izbor ne u premjestitiOpcije):
korisnički izbor = unos(„Neispravan izbor. Mora biti kamen, papir ili škare: ").niži()ispisati("")
ispis(f „Ti si izabrao {userChoice}.")computerChoice = random.choice (moveOptions)
ispis(f"Računalo je odabralo {computerChoice}.")kreće = {
'stijena': { 'beats': 'škare', 'losesTo': 'papir' },
'škare': { 'beats': 'papir', 'losesTo': 'stijena' },
'papir': { 'beats': 'stijena', 'losesTo': 'škare' },
}if userChoice == computerChoice:
ispis(f"I ti i kompjuter ste izabrali {userChoice}. To je neriješeno!")
drugo:
ako (pomiče[userChoice]['beats'] == izbor računala):
ispis(f"{userChoice} otkucaji {computerChoice}. Ti si pobijedio u ovoj rundi!")ako (pomiče[userChoice]['losesTo'] == izbor računala):
ispis(f"{userChoice} gubi od {computerChoice}. Računalo pobjeđuje!") - Igrač i računalo dobivaju po tri poteza. Dodajte globalnu varijablu pod nazivom "turns" na vrh datoteke.
okreta = 3
- Nakon funkcije turn(), koristite Python for petlju ponoviti krug tri puta. Na početku svakog kruga ispišite broj kruga. Pozovite funkciju turn() da tražite od igrača i računala da naprave svoje poteze za tu rundu.
za i u rasponu (okreti):
ispisati("")
ispis(f" Okruglo {i+1}: ")
skretanje() - Da biste pratili tko je pobijedio u svakoj rundi, dodajte varijablu rezultata za svakog igrača na vrhu datoteke. Ovim varijablama ćete dodijeliti vrijednosti unutar funkcije turn(), stoga ih svakako koristite kao globalne varijable.
computerScore = 0
playerScore = 0defskretanje():
globalno computerScore, playerScore - Unutar funkcije turn(), nakon što su i igrač i računalo napravili svoj potez, dodajte bod rezultatu pobjednika. Izmijenite naredbu if da biste povećali vrijednost varijable "playerScore" ili "computerScore".
ako (pomiče[userChoice]['beats'] == izbor računala):
ispis(f"{userChoice} otkucaji {computerChoice}. Ti si pobijedio u ovoj rundi!")
rezultat igrača += 1ako (pomiče[userChoice]['losesTo'] == izbor računala):
ispis(f"{userChoice} gubi od {computerChoice}. Računalo pobjeđuje!")
računalni rezultat += 1 - Na kraju funkcije turn(), ispišite ažuriranje ukupnih rezultata za svakog igrača.
# Ispiši ažuriranje ukupnih rezultata nakon runde
ispisati("")
ispis(f"SOREČNIK | Rezultat igrača: {playerScore} | Rezultat računala: {computerScore}") - Na samom kraju igre, nakon for petlje koja ponavlja poteze igrača i računala, ispišite konačnog pobjednika.
ispisati("")
if (computerScore > playerScore):
ispis(f"Računalo pobjeđuje s {computerScore} bodova!")
elif (playerScore > computerScore):
ispis(f "Pobjeđuješ sa {playerScore} bodova!")
drugo:
ispis(f "To je neriješeno! Oboje pobjeđujete sa {playerScore} bodova!")
Kako pokrenuti igru
Za igranje igre pokrenite Python skriptu pomoću terminala ili naredbenog retka. Unesite svoj potez i pričekajte da računalo učini svoje. Nakon što završite tri runde, program će prikazati pobjednika.
- Otvorite naredbeni redak ili terminal i idite do mape u koju spremate svoju Python datoteku.
- Koristite python naredbu za pokretanje skripte:
pitonKamen papir škare.py
- Igrajte igru unosom 'kamen', 'papir' ili 'škare'.
Naučite Python stvarajući igre
Stvaranje jednostavnih igara kao što je igra "Kamen, papir, škare" izvrstan je način da se bolje upoznate s konceptima programiranja. Postoji toliko mnogo drugih zabavnih igara koje možete napraviti koristeći Python, kao što je tekstualna avantura.