Ten prosty samouczek pomoże Ci przećwiczyć podstawy programowania w języku Python.

Stworzenie gry typu „kamień, papier, nożyce” w Pythonie to świetny sposób na rozwinięcie umiejętności programistycznych. Możesz stworzyć grę za pomocą jednego skryptu Pythona i grać w nią z wiersza poleceń.

Gra rozpoczyna się od poproszenia gracza o wybór: „kamień”, „papier” lub „nożyce”. Następnie czeka, aż wprowadzą swoją odpowiedź. Możesz zagrać w grę przeciwko graczowi „komputerowemu”, który automatycznie wybierze swój ruch.

Gra może również obejmować wiele rund. Więc nawet jeśli przegrasz pierwszą rundę, nadal możesz spróbować wygrać dwa z trzech!

Jak skonfigurować grę i poprosić gracza o ruch

Gdy gra się rozpocznie, program w Pythonie powinien poprosić gracza o wpisanie słowa „kamień”, „papier” lub „nożyce” i przyjąć odpowiedź gracza. Aby skonfigurować nową grę, zacznij od utworzenia nowego pliku Pythona z rozszerzeniem .py.

Pełny kod tego samouczka jest dostępny w repozytorium GitHub.

  1. Utwórz nowy plik o nazwie RockPaperScissors.py.
  2. instagram viewer
  3. Otwórz nowy plik języka Python przy użyciu dowolnego edytora tekstu, takiego jak Notepad++ lub Visual Studio Code.
  4. U góry pliku zaimportuj losowy moduł. Użyjesz tego później w grze, aby losowo wybrać ruch na turę komputera.
    import losowy
  5. Przedstaw wiadomość graczowi, prosząc go o wejście do kamienia, papieru lub nożyczek.
    wybór użytkownika = wejście („Kamień, papier czy nożyce? ").niżej()
  6. Zainicjuj tablicę o nazwie „moveOptions”, która przechowuje listę dostępnych ruchów, które możesz wykonać ty lub komputer.
    opcje ruchu = ['głaz', 'papier', 'nożyce']
  7. Kiedy gracz wprowadza dane wejściowe, potwierdź je, aby upewnić się, że jest to jeden z dostępnych ruchów. Gdy gracz wprowadzi prawidłowy ruch, wydrukuj komunikat potwierdzający.
    chwila (Wybór użytkownika nie W opcje ruchu):
    wybór użytkownika = wejście („Nieprawidłowy wybór. To musi być kamień, papier lub nożyce: ").niżej()

    wydrukować("")
    wydrukować(f „Wybrałeś {userChoice}.")

Jak na zmianę pracować z komputerem i porównywać ruchy

Po wprowadzeniu ruchu komputer wykona swoją kolej, wybierając losowo „kamień”, „papier” lub „nożyce”. Gra będzie wtedy musiała porównać twój ruch z ruchem komputera, aby określić, kto wygrał.

  1. Użyj modułu losowego, aby komputer losowo wybrał z listy dostępnych ruchów.
    wybór komputera = losowy wybór (moveOptions)
    wydrukować(f"Komputer wybrał {wybór komputera}.")
  2. Będziesz musiał porównać swój ruch z ruchem komputera, aby określić, kto wygrał. Możesz to zrobić, tworząc nowy słownik. Ten słownik zawiera każdy ruch (na przykład „kamień”) i ruch, w którym wygrywa lub przegrywa (na przykład „kamień” bije „nożyczki” i przegrywa z „papierem”).
    ruchy = {
    'głaz': { „bije”: 'nożyce', „przegrywa z”: 'papier' },
    'nożyce': { „bije”: 'papier', „przegrywa z”: 'głaz' },
    'papier': { „bije”: 'głaz', „przegrywa z”: 'nożyce' },
    }
  3. Użyj instrukcji if w języku Python aby sprawdzić, czy Twój ruch i ruch komputera dają remis. W przeciwnym razie użyj słownika ruchów, aby porównać ruch gracza z ruchem komputera.
    jeśli wybór użytkownika == wybór komputera:
    wydrukować(f"Zarówno ty, jak i komputer wybraliście {userChoice}. To jest remis!”)
    w przeciwnym razie:
    Jeśli (ruchy[wybór użytkownika][„bije”] == wybór komputera):
    wydrukować(F"{userChoice} bije {wybór komputera}. Wygrałeś!")

    Jeśli (ruchy[wybór użytkownika][„przegrywa z”] == wybór komputera):
    wydrukować(F"{userChoice} przegrywa z {wybór komputera}. Komputer wygrywa!”)
    Na przykład, jeśli wybierzesz „kamień”, wtedy wartością ruchów [wybór użytkownika]['beats'] będzie „nożyce”. Jeśli komputer wybrał „nożyczki”, oznacza to, że twój ruch pokonał ich.

Jak zachować wynik między graczem a komputerem między wieloma rundami

Możesz także dodać dodatkowe rundy, w których ty i komputer wykonujecie po trzy tury.

Gdy ty i komputer wybierzesz kamień, papier lub nożyce, gra zapyta cię ponownie i będzie śledzić twoje wyniki. Wynik gracza wzrasta w zależności od tego, kto wygrał daną rundę.

  1. Bieżący kod reprezentuje pojedynczą rundę tur wykonaną zarówno przez gracza, jak i komputer. Dodaj cały aktualny kod oprócz instrukcji import wewnątrz nowej funkcji turn(). Możesz również odpowiednio zmienić komunikaty wyjściowe, aby powiedzieć „Wygrywasz tę rundę” zamiast „Wygrywasz”:
    pokzakręt():
    wybór użytkownika = wejście („Kamień, papier czy nożyce? ").niżej()

    opcje ruchu = ['głaz', 'papier', 'nożyce']

    chwila (Wybór użytkownika nie W opcje ruchu):
    wybór użytkownika = wejście („Nieprawidłowy wybór. To musi być kamień, papier lub nożyce: ").niżej()

    wydrukować("")
    wydrukować(f „Wybrałeś {userChoice}.")

    wybór komputera = losowy wybór (moveOptions)
    wydrukować(f"Komputer wybrał {wybór komputera}.")

    ruchy = {
    'głaz': { „bije”: 'nożyce', „przegrywa z”: 'papier' },
    'nożyce': { „bije”: 'papier', „przegrywa z”: 'głaz' },
    'papier': { „bije”: 'głaz', „przegrywa z”: 'nożyce' },
    }

    jeśli wybór użytkownika == wybór komputera:
    wydrukować(f"Zarówno ty, jak i komputer wybraliście {userChoice}. To jest remis!”)
    w przeciwnym razie:
    Jeśli (ruchy[wybór użytkownika][„bije”] == wybór komputera):
    wydrukować(F"{userChoice} bije {wybór komputera}. Wygrywasz tę rundę!”)

    Jeśli (ruchy[wybór użytkownika][„przegrywa z”] == wybór komputera):
    wydrukować(F"{userChoice} przegrywa z {wybór komputera}. Komputer wygrywa!”)

  2. Gracz i komputer wykonują po trzy tury. Dodaj globalną zmienną o nazwie „zakręty” na górze pliku.
    obroty = 3
  3. Po funkcji turn() użyj pętli for Pythona powtórzyć rundę trzy razy. Na początku każdej rundy wydrukuj numer rundy. Wywołaj funkcję turn(), aby poprosić gracza i komputer o wykonanie ruchów w tej rundzie.
    dla i w zakresie (zwroty):
    wydrukować("")
    wydrukować(f" Okrągłe {i+1}: ")
    zakręt()
  4. Aby śledzić, kto wygrał każdą rundę, dodaj zmienną wyniku dla każdego gracza na początku pliku. Wartości tym zmiennym przypiszesz wewnątrz funkcji turn(), więc upewnij się, że używasz ich jako zmiennych globalnych.
    Wynik komputera = 0
    Wynik gracza = 0

    pokzakręt():
    światowy Wynik komputera, Wynik gracza

  5. Wewnątrz funkcji turn(), gdy zarówno gracz, jak i komputer wykonają swój ruch, dodaj punkt do wyniku zwycięzcy. Zmodyfikuj instrukcję if, aby zwiększyć wartość zmiennej „playerScore” lub „computerScore”.
    Jeśli (ruchy[wybór użytkownika][„bije”] == wybór komputera):
    wydrukować(F"{userChoice} bije {wybór komputera}. Wygrywasz tę rundę!”)
    Wynik gracza += 1

    Jeśli (ruchy[wybór użytkownika][„przegrywa z”] == wybór komputera):
    wydrukować(F"{userChoice} przegrywa z {wybór komputera}. Komputer wygrywa!”)
    Wynik komputera += 1

  6. Na końcu funkcji turn() wypisz aktualizację łącznych wyników dla każdego gracza.
    # Wydrukuj aktualizację całkowitych wyników po rundzie
    wydrukować("")
    wydrukować(f"TABLICA WYNIKÓW | Wynik gracza: {playerScore} | Wynik komputera: {computerScore}")
  7. Na samym końcu gry i po pętli for, która powtarza tury gracza i komputera, wypisz ostatecznego zwycięzcę.
    wydrukować("")

    if (computerScore > playerScore):
    wydrukować(f"Komputer wygrywa z {computerScore} zwrotnica!")
    Elif (wynik gracza > wynik komputera):
    wydrukować(f"Wygrywasz z {playerScore} zwrotnica!")
    w przeciwnym razie:
    wydrukować(f"To remis! Oboje wygrywacie z {playerScore} zwrotnica!")

Jak uruchomić grę

Aby zagrać w grę, uruchom skrypt Pythona za pomocą terminala lub wiersza poleceń. Wprowadź swój ruch i poczekaj, aż komputer wykona swój ruch. Po ukończeniu trzech rund program wyświetli zwycięzcę.

  1. Otwórz wiersz polecenia lub terminal i przejdź do folderu, w którym przechowujesz plik Pythona.
  2. Użyj polecenia python, aby uruchomić skrypt:
    pytonKamieńPapierNożyce.py
  3. Zagraj w grę, wpisując „kamień”, „papier” lub „nożyce”.

Naucz się Pythona, tworząc gry

Tworzenie prostych gier, takich jak gra „Kamień, papier, nożyce”, to świetny sposób na lepsze zapoznanie się z koncepcjami programowania. Istnieje wiele innych zabawnych gier, które można stworzyć za pomocą Pythona, na przykład tekstowa gra przygodowa.