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.

  1. Napravite novu datoteku pod nazivom RockPaperScissors.py.
  2. Otvorite novu Python datoteku pomoću bilo kojeg uređivača teksta, kao što je Notepad++ ili Visual Studio Code.
  3. instagram viewer
  4. 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
  5. 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()
  6. Inicijalizirajte niz pod nazivom "moveOptions" koji pohranjuje popis dostupnih poteza koje možete igrati ili vi ili računalo.
    premjestiOpcije = ['stijena', 'papir', 'škare']
  7. 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.

  1. 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}.")
  2. 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' },
    }
  3. 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.
    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!")
    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.

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.

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

  2. Igrač i računalo dobivaju po tri poteza. Dodajte globalnu varijablu pod nazivom "turns" na vrh datoteke.
    okreta = 3
  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()
  4. 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 = 0

    defskretanje():
    globalno computerScore, playerScore

  5. 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 += 1

    ako (pomiče[userChoice]['losesTo'] == izbor računala):
    ispis(f"{userChoice} gubi od {computerChoice}. Računalo pobjeđuje!")
    računalni rezultat += 1

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

  1. Otvorite naredbeni redak ili terminal i idite do mape u koju spremate svoju Python datoteku.
  2. Koristite python naredbu za pokretanje skripte:
    pitonKamen papir škare.py
  3. 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.