Rochambeau

Opdracht: Rochambeau

Schrijf een programma dat steen, papier en schaar met de gebruiker kan spelen.

import random  # import the module named random
import time  # import the module named time

"""Speelt een spel steen, papier, schaar

argumenten: geen (wat de gebruiker intypt telt niet als argument)
resultaat: geen (afdrukken telt niet als resultaat)
"""

print()
print("Wel wel, iemand verveelt zich!")
print("Laten we steen, papier, schaar spelen.")
print()
time.sleep(4.0)

print("Om je geheugen op te frissen zijn hier de regels:")
print("Elke speler kiest een van de volgende drie wapens steen, papier of schaar.")
time.sleep(6.0)
print()
print("Papier wint van steen, steen wint van schaar en schaar wint van papier.")
print("Hebben we allebei hetzelfde wapen gekozen dan is het gelijk spel.")
time.sleep(6.0)

user = input("Kies een wapen (steen, papier of schaar): ")
comp = random.choice(["steen", "papier", "schaar"])

print("De gebruiker (jij) koos", user)
print("De computer (ik) koos", comp)

if (
    user == "steen"
):  # De speler heeft steen gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
    if comp == "papier":
        print("Ha, ik heb papier gekozen dus jij verliest!")
        print("Hopelijk heb je de volgende keer meer geluk...")
    elif comp == "schaar":
        print("O nee, steen vernietigt schaar.")
        print("Jij hebt gewonnen!")
    else:
        print("Gelijk spel! ")
    time.sleep(4.0)

elif (
    user == "papier"
):  # De speler heeft papier gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
    if comp == "schaar":
        print("Ha, ik heb schaar gekozen dus jij verliest!")
        print("Hopelijk heb je de volgende keer meer geluk...")
    elif comp == "steen":
        print("O nee, papier vernietigt steen.")
        print("Jij hebt gewonnen!")
    else:
        print("Gelijk spel! ")
    time.sleep(4.0)

elif (
    user == "schaar"
):  # De speler heeft schaar gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
    if comp == "steen":
        print("Ha, ik heb steen gekozen dus jij verliest!")
        print("Hopelijk heb je de volgende keer meer geluk...")
    elif comp == "papier":
        print("O nee, schaar vernietigt papier.")
        print("Jij hebt gewonnen!")
    else:
        print("Gelijk spel! ")
    time.sleep(4.0)

Uitbreiding

Hier is een versie met 5 opties.

# Met uitbreidingen
print()
print(
    "Er is ook een versie met 5 wapens genaamd steen, papier, schaar, Spock en hagedis."
)
print("De regels zijn: schaar snijdt papier, papier bedekt steen, steen plet hagedis, ")
print("hagedis vergiftigt Spock, Spock smelt schaar, schaar onthoofdt hagedis,")
print(
    "hagedis eet papier, papier weerlegt Spock, Spock verdampt steen en steen breekt schaar."
)
time.sleep(6.0)

while True:  # Uitbreiding Blijven spelen
    print()
    version = input(
        "Wil je met drie wapens of vijf wapens spelen? [drie/vijf]: "
    )  # Uitbreiding RPS-5
    if version != "drie" and version != "vijf":
        version = input("Kies 'drie' of 'vijf' als antwoord!")

    if version == "drie":
        print()
        print("Je hebt voor de normale versie gekozen")
        user = input("Kies een wapen (steen, papier of schaar): ")
        comp = random.choice(["steen", "papier", "schaar"])

        print("De gebruiker (jij) koos", user)
        print("De computer (ik) koos", comp)

        if (
            user != "steen" and user != "papier" and user != "schaar"
        ):  # Uitbreiding Dummie proof
            print("Ha, je hebt een ongeldige keuze gemaakt dus ik win!")
            time.sleep(4.0)
        elif (
            user == "steen"
        ):  # De speler heeft steen gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
            if comp == "papier":
                print("Ha, ik heb papier gekozen dus jij verliest!")
                print("Hopelijk heb je de volgende keer meer geluk...")
            elif comp == "schaar":
                print("O nee, steen vernietigt schaar.")
                print("Jij hebt gewonnen!")
            else:
                print("Gelijk spel! ")
            time.sleep(4.0)

        elif (
            user == "papier"
        ):  # De speler heeft papier gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
            if comp == "schaar":
                print("Ha, ik heb schaar gekozen dus jij verliest!")
                print("Hopelijk heb je de volgende keer meer geluk...")
            elif comp == "steen":
                print("O nee, papier vernietigt steen.")
                print("Jij hebt gewonnen!")
            else:
                print("Gelijk spel! ")
            time.sleep(4.0)

        elif (
            user == "schaar"
        ):  # De speler heeft schaar gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
            if comp == "steen":
                print("Ha, ik heb steen gekozen dus jij verliest!")
                print("Hopelijk heb je de volgende keer meer geluk...")
            elif comp == "papier":
                print("O nee, schaar vernietigt papier.")
                print("Jij hebt gewonnen!")
            else:
                print("Gelijk spel! ")
            time.sleep(4.0)
        else:  # Misschien is er een conditie gemist?
            print("Hmm, er lijkt iets mis gegaan.")

    elif version == "vijf":
        print()
        print("Je hebt voor de uitgebreide versie gekozen.")
        user = input("Kies een wapen (steen, papier, schaar, Spock of hagedis): ")
        comp = random.choice(["steen", "papier", "schaar", "Spock", "hagedis"])

        print("De gebruiker (jij) koos", user)
        print("De computer (ik) koos", comp)

        if (
            user != "steen"
            and user != "papier"
            and user != "schaar"
            and user != "Spock"
            and user != "hagedis"
        ):  # Uitbreiding Dummie proof
            print("Ha, je hebt een ongeldige keuze gemaakt dus ik win!")
            time.sleep(4.0)

        elif (
            user == "steen"
        ):  # De speler heeft steen gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
            if comp == "papier" or comp == "Spock":
                print("Ha, mijn keuze is beter dus jij verliest!")
                print("Hopelijk heb je de volgende keer meer geluk...")
            elif comp == "schaar" or comp == "hagedis":
                print("O nee, steen is beter dan mijn keuze.")
                print("Jij hebt gewonnen!")
            else:
                print("Gelijk spel! Geen van onze keuzes was de betere keuze.")
            time.sleep(4.0)

        elif (
            user == "papier"
        ):  # De speler heeft papier gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
            if comp == "schaar" or comp == "hagedis":
                print("Ha, mijn keuze is beter dus jij verliest!")
                print("Hopelijk heb je de volgende keer meer geluk...")
            elif comp == "steen" or comp == "Spock":
                print("O nee, papier is beter dan mijn keuze.")
                print("Jij hebt gewonnen!")
            else:
                print("Gelijk spel! Geen van onze keuzes was de betere keuze.")
            time.sleep(4.0)

        elif (
            user == "schaar"
        ):  # De speler heeft schaar gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
            if comp == "steen" or comp == "Spock":
                print("Ha, mijn keuze is beter dus jij verliest!")
                print("Hopelijk heb je de volgende keer meer geluk...")
            elif comp == "papier" or comp == "hagedis":
                print("O nee, schaar is de betere keuze.")
                print("Jij hebt gewonnen!")
            else:
                print("Gelijk spel! Geen van onze keuzes was de betere keuze.")
            time.sleep(4.0)

        elif (
            user == "Spock"
        ):  # De speler heeft Spock gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
            if comp == "hagedis" or comp == "papier":
                print("Ha, mijn keuze is beter dus jij verliest!")
                print("Hopelijk heb je de volgende keer meer geluk...")
            elif comp == "schaar" or comp == "steen":
                print("O nee, Spock is de betere keuze.")
                print("Jij hebt gewonnen!")
            else:
                print("Gelijk spel! Geen van onze keuzes was de betere keuze.")
            time.sleep(4.0)

        elif (
            user == "hagedis"
        ):  # De speler heeft hagedis gekozen, de geneste if constructie test nu of de speler de gewonnen, verloren of gelijk gespeeld heeft
            if comp == "steen" or comp == "schaar":
                print("Ha, mijn keuze is beter dus jij verliest!")
                print("Hopelijk heb je de volgende keer meer geluk...")
            elif comp == "Spock" or comp == "papier":
                print("O nee, hagedis is de betere keuze.")
                print("Jij hebt gewonnen!")
            else:
                print("Gelijk spel! Geen van onze keuzes was de betere keuze.")
            time.sleep(4.0)

        else:  # Misschien is er een conditie gemist?
            print("Hmm, er lijkt iets mis gegaan.")

    else:
        print("Er werd een niet opgegeven spel optie gekozen. Probeer het opnieuw.")

    # print("Het draait nog steeds...")
    print()
    response = input("Nog een keer spelen? [ja/nee] ")
    if response == "nee":
        break