Deze eenvoudige game-tutorial helpt je de grondbeginselen van Python-programmeren te oefenen.
Het maken van een "Rock, Paper, Scissors"-game in Python is een geweldige manier om je programmeervaardigheden te verbeteren. Je kunt het spel maken met een enkel Python-script en het op de opdrachtregel spelen.
Het spel begint door de speler naar zijn keuze te vragen: "steen", "papier" of "schaar". Vervolgens wordt gewacht tot ze hun antwoord hebben ingevoerd. U kunt het spel spelen tegen een "computer"-speler, die automatisch zijn zet zal selecteren.
Het spel kan ook veel rondes bevatten. Dus zelfs als je de eerste ronde verliest, kun je nog steeds proberen om twee van de drie te winnen!
Hoe het spel in te stellen en de speler om zijn zet te vragen
Wanneer het spel start, zou het Python-programma de speler moeten vragen om "steen", "papier" of "schaar" in te voeren en het antwoord van de speler op te nemen. Om een nieuw spel op te zetten, begin je met het maken van een nieuw Python-bestand met de extensie .py.
De volledige code voor deze zelfstudie is beschikbaar in een GitHub-repository.
- Maak een nieuw bestand met de naam RockPaperScissors.py.
- Open het nieuwe Python-bestand met een willekeurige teksteditor, zoals Notepad++ of Visual Studio Code.
- Importeer bovenaan het bestand de willekeurige module. Je zult dit later in het spel gebruiken om willekeurig een zet te kiezen voor de beurt van de computer.
importeren willekeurig
- Presenteer een bericht aan de speler en vraag hen om steen, papier of schaar in te voeren.
gebruikerKeuze = invoer("Steen, papier of schaar? ").lager()
- Initialiseer een array met de naam "moveOptions" die een lijst opslaat met de beschikbare zetten die u of de computer kunnen spelen.
verplaatsOpties = ['steen', 'papier', 'schaar']
- Wanneer de speler een invoer invoert, valideert u deze om er zeker van te zijn dat het een van de beschikbare zetten is. Zodra de speler een geldige zet heeft ingevoerd, drukt u een bevestigingsbericht af.
terwijl (gebruikerKeuze niet in verplaatsOpties):
gebruikerKeuze = invoer("Ongeldige keuze. Moet steen, papier of schaar zijn: ").lager()
afdrukken("")
afdrukken(f"Jij hebt gekozen {userChoice}.")
Hoe u om beurten met de computer kunt spelen en bewegingen kunt vergelijken
Zodra u uw zet hebt ingevoerd, is de computer aan de beurt door willekeurig "steen", "papier" of "schaar" te selecteren. Het spel zal dan jouw zet moeten vergelijken met de zet van de computer om te bepalen wie er gewonnen heeft.
- Gebruik de willekeurige module om de computer willekeurig te laten kiezen uit de lijst met beschikbare zetten.
computerKeuze = willekeurige.keuze (moveOptions)
afdrukken(f"De computer heeft gekozen {computerKeuze}.") - U moet uw zet vergelijken met de zet van de computer om te bepalen wie er gewonnen heeft. U kunt dit doen door een nieuw woordenboek aan te maken. Dit woordenboek bevat elke zet (bijvoorbeeld 'steen') en van welke zet hij wint of verliest (bijvoorbeeld 'steen' verslaat 'schaar' en verliest van 'papier').
zetten = {
'steen': { 'slagen': 'schaar', 'verliest': 'papier' },
'schaar': { 'slagen': 'papier', 'verliest': 'steen' },
'papier': { 'slagen': 'steen', 'verliest': 'schaar' },
} -
Gebruik de Python if-opdracht om te controleren of jouw zet en de zet van de computer gelijkspel opleveren. Gebruik anders het zettenwoordenboek om de zet van de speler te vergelijken met die van de computer.
Als u bijvoorbeeld "rock" kiest, dan is de waarde van zetten[userChoice]['beats'] "scissors". Als de keuze van de computer "schaar" was, betekent dit dat jouw zet beter was dan die van hen.if userChoice == computerChoice:
afdrukken(f"Zowel jij als de computer hebben gekozen {userChoice}. Het is een gelijkspel!")
anders:
als (verplaatst[gebruikerKeuze]['slagen'] == computerKeuze):
afdrukken(F"{userChoice} slaat {computerKeuze}. Jij wint!")
als (verplaatst[gebruikerKeuze]['verliest'] == computerKeuze):
afdrukken(F"{userChoice} verliest aan {computerKeuze}. De computer wint!")
Hoe de score tussen de speler en de computer tussen meerdere rondes te houden
Je kunt ook extra rondes toevoegen, waarbij jij en de computer elk drie beurten doen.
Zodra jij en de computer steen, papier of schaar hebben gekozen, zal het spel je opnieuw vragen en je scores bijhouden. De score voor de speler neemt toe op basis van wie die specifieke ronde heeft gewonnen.
- De huidige code vertegenwoordigt een enkele ronde van beurten gemaakt door zowel de speler als de computer. Voeg alle huidige code toe behalve de instructie import in een nieuwe functie turn(). U kunt de uitvoerberichten ook dienovereenkomstig wijzigen door te zeggen "U wint deze ronde" in plaats van "U wint":
defdraai():
gebruikerKeuze = invoer("Steen, papier of schaar? ").lager()verplaatsOpties = ['steen', 'papier', 'schaar']
terwijl (gebruikerKeuze niet in verplaatsOpties):
gebruikerKeuze = invoer("Ongeldige keuze. Moet steen, papier of schaar zijn: ").lager()afdrukken("")
afdrukken(f"Jij hebt gekozen {userChoice}.")computerKeuze = willekeurige.keuze (moveOptions)
afdrukken(f"De computer heeft gekozen {computerKeuze}.")zetten = {
'steen': { 'slagen': 'schaar', 'verliest': 'papier' },
'schaar': { 'slagen': 'papier', 'verliest': 'steen' },
'papier': { 'slagen': 'steen', 'verliest': 'schaar' },
}if userChoice == computerChoice:
afdrukken(f"Zowel jij als de computer hebben gekozen {userChoice}. Het is een gelijkspel!")
anders:
als (verplaatst[gebruikerKeuze]['slagen'] == computerKeuze):
afdrukken(F"{userChoice} slaat {computerKeuze}. Jij wint deze ronde!")als (verplaatst[gebruikerKeuze]['verliest'] == computerKeuze):
afdrukken(F"{userChoice} verliest aan {computerKeuze}. De computer wint!") - De speler en de computer krijgen elk drie beurten. Voeg bovenaan het bestand een globale variabele met de naam "turns" toe.
beurten = 3
- Na de turn() functie, gebruik een Python for-lus om de ronde drie keer te herhalen. Druk aan het begin van elke ronde het rondenummer af. Roep de functie turn() aan om de speler en de computer te vragen hun zetten voor die ronde te doen.
voor i in bereik (bochten):
afdrukken("")
afdrukken(f" Rond {ik+1}: ")
draai() - Om bij te houden wie elke ronde heeft gewonnen, voegt u een scorevariabele toe voor elke speler bovenaan het bestand. U zult waarden toewijzen aan deze variabelen binnen de functie turn(), dus zorg ervoor dat u ze gebruikt als globale variabelen.
computerScore = 0
spelerScore = 0defdraai():
globaal computerScore, spelerScore - Binnen de functie turn() voegt u, zodra zowel de speler als de computer hun zet hebben gedaan, een punt toe aan de score van de winnaar. Pas de instructie if aan om de waarde van de variabele "playerScore" of "computerScore" te verhogen.
als (verplaatst[gebruikerKeuze]['slagen'] == computerKeuze):
afdrukken(F"{userChoice} slaat {computerKeuze}. Jij wint deze ronde!")
spelerScore += 1als (verplaatst[gebruikerKeuze]['verliest'] == computerKeuze):
afdrukken(F"{userChoice} verliest aan {computerKeuze}. De computer wint!")
computerScore += 1 - Druk aan het einde van de functie turn() een update af van de totale scores van elke speler.
# Print een update van de totaalscores na de ronde
afdrukken("")
afdrukken(f"SCOREBORD | Score van de speler: {playerScore} | Computerscore: {computerScore}") - Helemaal aan het einde van het spel, en na de for-lus die de beurten van de speler en de computer herhaalt, drukt u de uiteindelijke winnaar af.
afdrukken("")
als (computerScore > spelerScore):
afdrukken(f"De computer wint met {computerScore} punten!")
elif (spelerScore > computerScore):
afdrukken(f"Je wint met {playerScore} punten!")
anders:
afdrukken(f"Het is een gelijkspel! Jullie winnen allebei met {playerScore} punten!")
Hoe het spel uit te voeren
Voer het Python-script uit met behulp van een terminal of opdrachtprompt om het spel te spelen. Voer uw zet in en wacht tot de computer de hunne heeft gemaakt. Zodra je drie rondes hebt voltooid, zal het programma de winnaar tonen.
- Open een opdrachtprompt of terminal en navigeer naar de map waarin u uw Python-bestand opslaat.
- Gebruik de opdracht python om het script uit te voeren:
PythonSteen Papier Schaar.py
- Speel het spel door 'steen', 'papier' of 'schaar' in te voeren.
Leer Python door spellen te maken
Het maken van eenvoudige spellen zoals een "steen, papier, schaar"-spel is een geweldige manier om meer vertrouwd te raken met programmeerconcepten. Er zijn zoveel andere leuke spellen die je met Python kunt maken, zoals een op tekst gebaseerd avonturenspel.