数当てゲーム
乱数を使った小さなインタラクティブ数当てゲームを実装します。
「数当てゲーム」はCoddyKit上の無料C++ Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC++ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C++ Academyコースには全4レッスンが含まれています。
ゲームの方針
プログラムは 1..100 の範囲から秘密の数値を選びます。ユーザーが推測すると、プログラムは「大きすぎます」または「小さすぎます」と伝えます。決められた回数以内に正解するか、正しく推測できれば勝利です。
必要なヘッダー
乱数と入出力に使用します。
#include <iostream>
#include <random>
#include <string>秘密の数値を生成する
最新の <random> 機能を使用します。シードは1回だけ設定してください。
std::random_device rd;
std::mt19937 engine(rd());
std::uniform_int_distribution<int> dist(1, 100);
int secret = dist(engine);メインループ
プロンプトを表示し、読み取り、比較する処理を正解するまで繰り返します。
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";
}試行回数を制限する
ゲームを難しくするため、試行回数の上限を追加します。
const int MAX = 10;
if (attempts >= MAX) {
std::cout << "Out of tries! It was " << secret << "\n";
break;
}入力を検証する
ユーザーが数値以外を入力すると、cin は fail 状態になります。適切に復旧してください。
if (!(std::cin >> guess)) {
std::cin.clear();
std::cin.ignore(10000, '\n');
std::cout << "Please enter a number\n";
continue;
}範囲外の推測
試行回数を数える前に、1..100 の範囲外の数値を拒否します。
if (guess < 1 || guess > 100) {
std::cout << "Out of range\n";
--attempts; // not a real attempt
continue;
}リプレイループ
ゲーム終了後、もう一度プレイするかどうかをユーザーに尋ねます。
std::cout << "Play again? (y/n): ";
char reply;
std::cin >> reply;
if (reply != 'y') break;統計情報を記録する
最高スコア、平均試行回数、勝利数などをゲーム間で保持します。
int wins = 0;
int bestAttempts = INT_MAX;
// update inside the win branch範囲をカスタマイズする
ユーザーがイージー(1..10)、ミディアム(1..100)、ハード(1..1000)からモードを選べるようにします。それに応じて dist を調整してください。
ヒントシステム
任意で、何度か間違えた後に範囲を狭めます。「40以上です」のように伝えます。
関数に分割する
generateSecret()、readGuess()、playRound()、main() にリファクタリングします。各関数は1つの処理だけを担当します。
クイックチェック
最新の C++ で乱数を生成するには、どのヘッダーのインクルードが必要ですか。
まとめ
数当てゲームでは、乱数生成、入力検証、ループ、ゲーム状態を組み合わせます。小さな関数にリファクタリングし、リプレイ、統計情報、難易度を追加して完成度を高めてください。
よくある質問
「数当てゲーム」レッスンは無料ですか?
はい。「数当てゲーム」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C++ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C++ Academyコースには全4レッスンが含まれています。
「数当てゲーム」で何を学びますか?
乱数を使った小さなインタラクティブ数当てゲームを実装します。 ブラウザで直接実行するハンズオンコードでC++ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C++ Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC++ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「数当てゲーム」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC++ Academyレッスンでコードを書いて実行できますか?
はい。すべてのC++ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。