Ett talgissningsspel
Implementera ett litet interaktivt talgissningsspel med slumptal
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 branchAnpassa 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.
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
- Bygg en enkel kalkylator som CLI
- Läsa och skriva CSV-filer
- Ett talgissningsspel
- En ordfrekvensräknare