Door Sharleen Khan

Bouw dit eenvoudige spel om je Python-programmeerconcepten te verstevigen.

Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Het maken van games in Python is een geweldige manier om elementaire programmeerconcepten te leren en een sterkere basis in programmeren op te bouwen. Een van de spellen die u kunt maken, is een eenvoudig gokspel.

Je kunt het nummer raadspel maken met behulp van een enkel Python-script. Voer het script uit met behulp van een opdrachtregel of terminal om het spel te spelen.

Om het spel interessanter te maken, kun je wat extra gameplay-concepten toevoegen. Dit omvat de mogelijkheid om hints te geven aan de speler, of de mogelijkheid om de moeilijkheidsgraad van het spel te veranderen.

Hoe een willekeurig getal te genereren

U kunt beginnen met het maken van een nieuw Python-script met een .py uitbreiding om de logica voor het spel vast te houden. Voeg binnenin een startcode toe om een ​​willekeurig getal tussen 1 en 50 te genereren dat de speler kan raden.

instagram viewer

Als u niet bekend bent met de syntaxis van Python, bekijk er dan een paar eenvoudige Python-voorbeelden om je op snelheid te krijgen.

  1. Maak een nieuw bestand met de naam nummer-raadspel.py. Open het bestand met een willekeurige teksteditor, zoals Visual Studio of Atom.
  2. Importeer bovenaan het bestand het willekeurig moduul:
    importeren willekeurig
  3. Gebruik de willekeurig module's randint() methode om een ​​willekeurig getal tussen 1 en 50 te genereren:
    gok_bereik = 50
    antwoord = willekeurig.randint(1, gok_bereik)
  4. Start het spel en vraag de speler om het getal te raden:
    afdrukken("Welkom bij het nummer raadspel!")
    afdrukken("")
    gebruikerInvoer = invoer("Raad een getal tussen 1 en " + str (gokbereik) + ": ")
    gok = int (gebruikersinvoer)

Hoe te controleren of de gebruiker het juiste nummer heeft geraden

Om ervoor te zorgen dat de gebruiker het spel wint, vergelijkt u de invoer van de gebruiker met het gegenereerde willekeurige getal en controleert u of het overeenkomt.

  1. Als de gebruiker het juiste antwoord nog niet heeft geraden, vraag hem dan opnieuw om een ​​nieuwe invoer in te voeren. Zorg ervoor dat u geneste code inspringt, aangezien de structuur van Python afhankelijk is van correcte inspringing:
    raad = ""
    terwijl raad != antwoord:
    gebruikerInvoer = invoer("Raad een getal tussen 1 en " + str (gokbereik) + ": ")
    gok = int (gebruikersinvoer)
  2. Als de code voorbij de while-lus wordt uitgevoerd, betekent dit dat ze het juiste antwoord hebben geraden:
    afdrukken("Gefeliciteerd! Je hebt het juiste aantal geraden. Jij wint!") 

Hoe een beperkt aantal gissingen toe te voegen

Om te voorkomen dat de speler een oneindig aantal keer vraagt, kunt u het aantal keer dat hij raadt beperken.

  1. Declareer een nieuwe variabele aan het begin van het bestand, om het aantal toegestane gissingen van de speler bij te houden. Zet het op 10, om te beginnen:
    gissingen toegestaan ​​= 10
  2. Wijzig de while-opdracht in een for-lus, die alleen wordt herhaald voor het beperkte aantal gissingen:
    voor i in bereik (raden_toegestaan):
    gebruikerInvoer = invoer("Raad een getal tussen 1 en " + str (gokbereik) + ": ")
    gok = int (gebruikersinvoer)
  3. Binnen de for-lus, als een van de gissingen het juiste antwoord is, breek dan uit de for-lus:
    als raad == antwoord:
    afdrukken("Gefeliciteerd! Je hebt het juiste aantal geraden. Jij wint!")
    pauze
  4. Voeg binnen de for-lus echter nog een if-statement toe om te controleren of de speler zijn limiet voor het aantal gissingen heeft bereikt. Zo ja, beëindig het spel:
    als (i == gissingen_toegestaan ​​- 1):
    afdrukken("Sorry, je hebt geen gissingen meer. Jij verliest!")

Tips toevoegen aan het spel

Voeg nog een functie toe aan het spel om de speler wat hints te geven. Een hint kan zijn om ze te laten weten of ze een hoger getal of een lager getal moeten raden.

Een andere hint is om ze te vertellen hoe dichtbij of hoe ver ze van het antwoord verwijderd zijn. Het spel moet hen bijvoorbeeld informeren als ze "warmer" worden. Anders, als ze ver van het aantal verwijderd zijn, zou het spel hen moeten vertellen dat ze "kouder" worden.

  1. Wijzig de if-instructie die de gebruiker vertelt of ze hebben gewonnen. Als ze het juiste antwoord nog steeds niet hebben geraden, laat ze dan weten of het werkelijke antwoord hoger of lager is.
    als raad == antwoord:
    afdrukken("Gefeliciteerd! Je hebt het juiste aantal geraden. Jij wint!")
    pauze
    elif raad < antwoord:
    afdrukken("Het aantal is hoger.")
    anders:
    afdrukken("Het aantal is lager.")
  2. Voeg nog een if-statement toe om extra hints toe te voegen. Dit zal hen vertellen of ze dichter bij of "warmer" bij het nummer komen. Gebruik de absolute functie om de afstand tussen de gok en het antwoord te bepalen. Als ze bijvoorbeeld minder dan 10 getallen verwijderd zijn van het antwoord, zal het spel "Je bent warm" afdrukken:
    als abs (gok - antwoord) <= 10:
    afdrukken("Je bent warm!")
    elif abs (gok - antwoord) <= 20:
    afdrukken("Je wordt steeds warmer.")
    elif abs (gok - antwoord) <= 30:
    afdrukken("Je bent koud.")
    anders:
    afdrukken("Je hebt het ijskoud.")

Hoe de moeilijkheidsgraad van het spel te veranderen

U kunt de gebruiker vragen om een ​​moeilijkheidsgraad te kiezen. De moeilijkheidsgraad bepaalt hoeveel gokpogingen de speler heeft en hoe ver het gokbereik is.

  1. Vraag de gebruiker aan het begin van het spel om een ​​moeilijkheidsgraad te kiezen:
    afdrukken("Welkom bij het nummer raadspel!")
    afdrukken("")
    terwijlWAAR:
    niveau = invoer("Selecteer moeilijkheidsgraad (eenvoudig, gemiddeld, moeilijk): ").lager()
  2. Voeg wat validatie toe om ervoor te zorgen dat de speler alleen de opties "easy", "medium" of "hard" typt. Als de gebruiker een ongeldig antwoord invoert, zal het spel hem vragen om opnieuw een moeilijkheidsgraad in te voeren.
    als niveau in ["eenvoudig", "medium", "moeilijk"]:
    pauze
    anders:
    afdrukken("Ongeldige invoer. Selecteer 'gemakkelijk', 'gemiddeld' of 'moeilijk'.")
  3. Voordat je het willekeurige getal genereert, gebruik je de moeilijkheidsgraad van de speler om te bepalen hoeveel keer hij kan raden. Je kunt ook hun geselecteerde moeilijkheidsgraad gebruiken om te bepalen hoe groot het gokbereik is:
    als niveau == "eenvoudig":
    gok_bereik = 50
    gissingen toegestaan ​​= 20
    elif niveau == "medium":
    gok_bereik = 100
    gissingen toegestaan ​​= 15
    anders:
    gok_bereik = 150
    gissingen toegestaan ​​= 10

    antwoord = willekeurig.randint(1, gok_bereik)

Hoe het spel te spelen

Nu je alle logica voor het spel hebt, kun je het in een opdrachtprompt spelen. U kunt ook het volledige voorbeeld van het raadspel bekijken op GitHub.

  1. Open een opdrachtprompt of terminal en navigeer naar de map waarin u uw Python-script hebt opgeslagen. Als u uw script bijvoorbeeld op het bureaublad hebt opgeslagen, ziet de opdracht er ongeveer zo uit:
    cd C:\Users\Sharl\Desktop
  2. Gebruik de Python opdracht om uw Python-script uit te voeren:
    python nummer-raadspel.py
  3. Voer een moeilijkheidsgraad in.
  4. Voer getallen in de opdrachtprompt in om te proberen het getal te raden.

Leer programmeren door eenvoudige spellen te maken

Nu begrijp je hoe je een eenvoudig spel kunt maken en uitvoeren met een enkel Python-script. Vervolg uw leerreis door andere interessante projectideeën te verkennen. Een voorbeeld hiervan is om te proberen een Ping-veger in Python te bouwen.

Abonneer op onze nieuwsbrief

Opmerkingen

DeelTweetenDeelDeelDeel
Kopiëren
E-mail
Deel
DeelTweetenDeelDeelDeel
Kopiëren
E-mail

Link gekopieerd naar klembord

Gerelateerde onderwerpen

  • Programmeren
  • Python
  • Spelontwikkeling

Over de auteur

Sharleen Khan (82 artikelen gepubliceerd)

Shay werkt fulltime als softwareontwikkelaar en schrijft graag handleidingen om anderen te helpen. Ze heeft een Bachelor of IT en heeft eerdere ervaring in Quality Assurance en tutoring. Shay houdt van gamen en piano spelen.