Denna enkla spelhandledning hjälper dig att öva på grunderna i Python-programmering.

Att skapa ett "Rock, Paper, Scissors"-spel i Python är ett utmärkt sätt att förbättra dina programmeringsfärdigheter. Du kan skapa spelet med ett enda Python-skript och spela det på kommandoraden.

Spelet börjar med att be spelaren om sitt val: "rock", "papper" eller "sax". Den väntar sedan på att de ska skriva in sitt svar. Du kan spela spelet mot en "dator"-spelare, som automatiskt väljer sitt drag.

Spelet kan också innehålla många rundor. Så även om du förlorar den första omgången kan du fortfarande försöka vinna två av tre!

Hur man ställer in spelet och frågar spelaren om deras drag

När spelet startar bör Python-programmet be spelaren att ange antingen "rock", "paper" eller "sax" och ta in spelarens svar. För att skapa ett nytt spel, börja med att skapa en ny Python-fil med filtillägget .py.

Den fullständiga koden för denna handledning finns tillgänglig i ett GitHub-förråd.

  1. Skapa en ny fil som heter RockPaperScissors.py.
  2. Öppna den nya Python-filen med valfri textredigerare, som Notepad++ eller Visual Studio Code.
  3. Överst i filen importerar du den slumpmässiga modulen. Du kommer att använda detta senare i spelet för att slumpmässigt välja ett drag för datorns tur.
    importera slumpmässig
  4. Presentera ett meddelande till spelaren och be dem att skriva in antingen sten, papper eller sax.
    användarval = input("Sten, papper eller sax? ").lägre()
  5. Initiera en array som heter "moveOptions" som lagrar en lista över tillgängliga drag som antingen du eller datorn kan spela.
    moveOptions = ['sten', 'papper', 'sax']
  6. När spelaren anger en ingång, validera den för att se till att det är ett av de tillgängliga dragen. När spelaren har angett ett giltigt drag, skriv ut ett bekräftelsemeddelande.
    medan (userChoice inte i moveOptions):
    användarval = input("Ogiltigt val. Måste vara sten, papper eller sax: ").lägre()

    skriva ut("")
    skriva ut(f "Du valde {userChoice}.")

Hur man turas om med datorn och jämför rörelser

När du har angett ditt drag kommer datorn att ta sin tur genom att slumpmässigt välja antingen "rock", "paper" eller "sax". Spelet måste sedan jämföra ditt drag med datorns drag för att avgöra vem som vann.

  1. Använd slumpmodulen för att få datorn att slumpmässigt välja från listan över tillgängliga drag.
    computerChoice = random.choice (moveOptions)
    skriva ut(f "Datorn valde {computerChoice}.")
  2. Du måste jämföra ditt drag med datorns drag för att avgöra vem som har vunnit. Du kan göra detta genom att skapa en ny ordbok. Den här ordboken innehåller varje drag (till exempel "rock") och vilket drag den vinner eller förlorar mot (till exempel "rock" slår "sax" och förlorar mot "papper").
    flyttar = {
    'sten': { 'takter': 'sax', "förlorar": 'papper' },
    'sax': { 'takter': 'papper', "förlorar": 'sten' },
    'papper': { 'takter': 'sten', "förlorar": 'sax' },
    }
  3. Använd Python if-satsen för att kontrollera om ditt drag och datorns drag resulterar i oavgjort. Annars använder du rörelseordboken för att jämföra spelarens drag med datorns drag.
    om userChoice == datorval:
    skriva ut(f"Både du och datorn valde {userChoice}. Det är oavgjort!")
    annan:
    om (flyttar[användarval]['takter'] == datorval):
    skriva ut(f"{userChoice} takter {computerChoice}. Du vinner!")

    om (flyttar[användarval]["förlorar"] == datorval):
    skriva ut(f"{userChoice} förlorar mot {computerChoice}. Datorn vinner!")
    Som ett exempel, om du väljer "rock", så skulle värdet av drag[användarval]['beats'] vara "sax". Om datorns val var "sax", betyder det att ditt drag slog deras.

Hur man håller poängen mellan spelaren och datorn mellan flera omgångar

Du kan också lägga till ytterligare rundor, där du och datorn tar tre varv vardera.

När du och datorn har valt antingen sten, papper eller sax kommer spelet att fråga dig igen och hålla reda på dina poäng. Poängen för spelaren ökar baserat på vem som vann just den omgången.

  1. Den aktuella koden representerar en enda runda av vändningar som görs av både spelaren och datorn. Lägg till all aktuell kod förutom importsatsen i en ny turn()-funktion. Du kan också ändra utgående meddelanden i enlighet med detta, för att säga "Du vinner den här omgången" istället för "Du vinner":
    defsväng():
    användarval = input("Sten, papper eller sax? ").lägre()

    moveOptions = ['sten', 'papper', 'sax']

    medan (userChoice inte i moveOptions):
    användarval = input("Ogiltigt val. Måste vara sten, papper eller sax: ").lägre()

    skriva ut("")
    skriva ut(f "Du valde {userChoice}.")

    computerChoice = random.choice (moveOptions)
    skriva ut(f "Datorn valde {computerChoice}.")

    flyttar = {
    'sten': { 'takter': 'sax', "förlorar": 'papper' },
    'sax': { 'takter': 'papper', "förlorar": 'sten' },
    'papper': { 'takter': 'sten', "förlorar": 'sax' },
    }

    om userChoice == datorval:
    skriva ut(f"Både du och datorn valde {userChoice}. Det är oavgjort!")
    annan:
    om (flyttar[användarval]['takter'] == datorval):
    skriva ut(f"{userChoice} takter {computerChoice}. Du vinner den här omgången!")

    om (flyttar[användarval]["förlorar"] == datorval):
    skriva ut(f"{userChoice} förlorar mot {computerChoice}. Datorn vinner!")

  2. Spelaren och datorn får ta tre varv vardera. Lägg till en global variabel som heter "turs" överst i filen.
    varv = 3
  3. Efter funktionen turn() använd en Python för loop att upprepa varvet tre gånger. Skriv ut rundans nummer i början av varje omgång. Anrop turn()-funktionen för att be spelaren och datorn att göra sina drag för den rundan.
    för jag inom räckhåll (vänder):
    skriva ut("")
    skriva ut(f" runda {i+1}: ")
    sväng()
  4. För att hålla reda på vem som vann varje omgång, lägg till en poängvariabel för varje spelare, högst upp i filen. Du kommer att tilldela värden till dessa variabler i turn()-funktionen, så se till att använda dem som globala variabler.
    datorScore = 0
    spelarPoäng = 0

    defsväng():
    global computerScore, playerScore

  5. Inuti turn()-funktionen, när både spelaren och datorn har gjort sitt drag, lägg till en poäng till vinnarens poäng. Ändra if-satsen för att öka värdet på antingen variabeln "playerScore" eller "computerScore".
    om (flyttar[användarval]['takter'] == datorval):
    skriva ut(f"{userChoice} takter {computerChoice}. Du vinner den här omgången!")
    spelarePoäng += 1

    om (flyttar[användarval]["förlorar"] == datorval):
    skriva ut(f"{userChoice} förlorar mot {computerChoice}. Datorn vinner!")
    computerScore += 1

  6. I slutet av turn()-funktionen, skriv ut en uppdatering av de totala poängen för varje spelare.
    # Skriv ut en uppdatering om totalpoängen efter omgången
    skriva ut("")
    skriva ut(f"POINTTAVLA | Spelarens poäng: {playerScore} | Datorns poäng: {computerScore}")
  7. I slutet av spelet, och efter for-slingan som upprepar spelarens och datorns tur, skriv ut den slutliga vinnaren.
    skriva ut("")

    if (datorScore > playerScore):
    skriva ut(f"Datorn vinner med {computerScore} poäng!")
    elif (playerScore > computerScore):
    skriva ut(f"Du vinner med {playerScore} poäng!")
    annan:
    skriva ut(f "Det är en slips! Ni vinner båda med {playerScore} poäng!")

Hur man kör spelet

För att spela spelet, kör Python-skriptet med en terminal eller kommandotolk. Ange ditt drag och vänta på att datorn ska göra sitt. När du har genomfört tre omgångar visar programmet vinnaren.

  1. Öppna en kommandotolk eller terminal och navigera till mappen där du lagrar din Python-fil.
  2. Använd kommandot python för att köra skriptet:
    pytonormSten sax påse.py
  3. Spela spelet genom att ange antingen 'rock', 'paper' eller 'saxs'.

Lär dig Python genom att skapa spel

Att skapa enkla spel som ett "Rock, Paper, Scissors"-spel är ett bra sätt att bli mer bekant med programmeringskoncept. Det finns så många andra roliga spel du kan göra med Python, till exempel ett textbaserat äventyrsspel.