C++ Academy · Lektion

Ett talgissningsspel

Implementera ett litet interaktivt talgissningsspel med slumptal

Lektion 3 av 414 steg

Ett talgissningsspel är en gratis lektion i C++ Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för C++ Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C++ Academy innehåller totalt 4 lektioner.

Spelplan

Programmet väljer ett hemligt tal mellan 1 och 100. Användaren gissar och programmet säger ”för högt” eller ”för lågt”. Man vinner efter ett fast antal försök eller när talet gissas rätt.

Nödvändiga headerfiler

För slumptal samt in- och utmatning.

#include <iostream>
#include <random>
#include <string>

Generera det hemliga talet

Använd de moderna funktionerna i <random>. Initiera slumptalsgeneratorn en gång.

std::random_device rd;
std::mt19937 engine(rd());
std::uniform_int_distribution<int> dist(1, 100);
int secret = dist(engine);

Huvudloop

Visa en prompt, läs indata, jämför och upprepa tills gissningen är rätt.

int guess;
int attempts = 0;
while (true) {
    ++attempts;
    std::cout << "Guess (1-100): ";
    if (!(std::cin >> guess)) break;
    if (guess == secret) {
        std::cout << "Got it in " << attempts << " tries\n";
        break;
    }
    std::cout << (guess < secret ? "too low" : "too high") << "\n";
}

Begränsa antalet försök

Lägg till ett maximalt antal försök för att göra spelet svårare.

const int MAX = 10;
if (attempts >= MAX) {
    std::cout << "Out of tries! It was " << secret << "\n";
    break;
}

Validera indata

Om användaren skriver icke-numerisk indata hamnar cin i feltillstånd. Återställ det på ett robust sätt.

if (!(std::cin >> guess)) {
    std::cin.clear();
    std::cin.ignore(10000, '\n');
    std::cout << "Please enter a number\n";
    continue;
}

Gissningar utanför intervallet

Avvisa tal utanför 1..100 innan Ni räknar försöket.

if (guess < 1 || guess > 100) {
    std::cout << "Out of range\n";
    --attempts;     // not a real attempt
    continue;
}

Omspelningsloop

Fråga efter spelets slut om användaren vill spela igen.

std::cout << "Play again? (y/n): ";
char reply;
std::cin >> reply;
if (reply != 'y') break;

Följ statistik

Behåll totalsummor mellan spelen – bästa resultat, genomsnittligt antal försök och totala antalet vinster.

int wins = 0;
int bestAttempts = INT_MAX;
// update inside the win branch

Anpassa intervallet

Låt användaren välja lägena lätt (1..10), medel (1..100) eller svår (1..1000). Justera dist därefter.

Ledtrådssystem

Valfritt: begränsa intervallet efter flera felaktiga gissningar. ”Det är minst 40.”

Dela upp i funktioner

Refaktorera till generateSecret(), readGuess(), playRound() och main(). Varje funktion gör en enda sak.

Snabbkontroll

Vilken sekvens av headerinkluderingar behövs för ett modernt slumptal i C++?

Sammanfattning

Ett gissningsspel knyter samman slumptalsgenerering, indatavalidering, loopar och speltillstånd. Refaktorera till små funktioner och lägg till omspelning, statistik och svårighetsgrader för ett mer genomarbetat resultat.

Gratis att börja

Lär dig C++ med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
51
Lektioner
203

Vanliga frågor

Är lektionen ”Ett talgissningsspel” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen C++ Academy, inklusive ”Ett talgissningsspel”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i C++ Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Ett talgissningsspel”?

Implementera ett litet interaktivt talgissningsspel med slumptal Ni övar på C++ Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C++ Academy?

Du behöver inga förkunskaper. Utbildningen i C++ Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Ett talgissningsspel”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C++ Academy-lektionen?

Ja. Varje C++ Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Bygg en enkel kalkylator som CLI
  2. Läsa och skriva CSV-filer
  3. Ett talgissningsspel
  4. En ordfrekvensräknare
← Tillbaka till C++ Academy