0Pricing
C++ Academy · Lekcja

Gra w zgadywanie liczby

Zaimplementuj małą interaktywną grę w zgadywanie liczby z użyciem liczb losowych

Gra w zgadywanie liczby to bezpłatna lekcja C++ Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C++ Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C++ Academy zawiera 4 lekcji w sumie.

Plan gry

Program losuje tajną liczbę z zakresu 1..100. Użytkownik zgaduje, a program informuje: „za wysoko” lub „za nisko”. Wygrywa się po odgadnięciu liczby albo po wykorzystaniu ustalonej liczby prób.

Wymagane nagłówki

Do generowania liczb losowych oraz obsługi wejścia i wyjścia.

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

Generowanie tajnej liczby

Użyj nowoczesnych mechanizmów <random>. Zainicjalizuj generator tylko raz.

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

Główna pętla

Wyświetl znak zachęty, odczytaj dane, porównaj je i powtarzaj, aż odpowiedź będzie poprawna.

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";
}

Ograniczanie liczby prób

Dodaj maksymalną liczbę prób, aby zwiększyć trudność gry.

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

Weryfikowanie danych wejściowych

Jeśli użytkownik wpisze dane nienumeryczne, cin przechodzi w stan błędu. Obsłuż to w kontrolowany sposób.

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

Zgadywanie spoza zakresu

Odrzucaj liczby spoza zakresu 1..100, zanim zaliczysz próbę.

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

Pętla ponownej gry

Po zakończeniu gry zapytaj użytkownika, czy chce zagrać ponownie.

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

Śledzenie statystyk

Przechowuj sumy dla kolejnych gier — najlepszy wynik, średnią liczbę prób i łączną liczbę zwycięstw.

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

Dostosowywanie zakresu

Pozwól użytkownikowi wybrać tryb łatwy (1..10), średni (1..100) lub trudny (1..1000). Odpowiednio dostosuj dist.

System podpowiedzi

Opcjonalnie: po kilku błędnych odpowiedziach zawężaj zakres. „Liczba jest co najmniej równa 40”.

Podział na funkcje

Zrefaktoryzuj program, dzieląc go na generateSecret(), readGuess(), playRound() i main(). Każda funkcja powinna wykonywać jedno zadanie.

Szybkie sprawdzenie

Jaki zestaw nagłówków jest potrzebny do generowania liczb losowych we współczesnym C++?

Podsumowanie

Gra w zgadywanie liczb łączy generowanie liczb losowych, weryfikację danych wejściowych, pętle i stan gry. Zrefaktoryzuj ją, dzieląc kod na małe funkcje, a następnie dodaj ponowną grę, statystyki i poziomy trudności.

Często zadawane pytania

Czy lekcja „Gra w zgadywanie liczby” jest bezpłatna?

Tak — pełny tekst „Gra w zgadywanie liczby” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C++ Academy, przejdź na CoddyKit PRO. Kurs C++ Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Gra w zgadywanie liczby”?

Zaimplementuj małą interaktywną grę w zgadywanie liczby z użyciem liczb losowych Ćwiczysz C++ Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C++ Academy?

Nie wymagamy żadnego doświadczenia. C++ Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Gra w zgadywanie liczby”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C++ Academy?

Tak. Każda lekcja C++ Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Budowa prostego kalkulatora CLI
  2. Odczytywanie i zapisywanie plików CSV
  3. Gra w zgadywanie liczby
  4. Licznik częstości słów
← Powrót do C++ Academy