0Pricing
C++ Academy · บทเรียน

เกมทายตัวเลข

สร้างเกมทายตัวเลขแบบโต้ตอบขนาดเล็กที่ใช้ตัวเลขสุ่ม

เกมทายตัวเลข เป็นบทเรียน C++ Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C++ Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

แผนการสร้างเกม

โปรแกรมจะสุ่มเลือกตัวเลขลับตั้งแต่ 1 ถึง 100 ผู้ใช้ทายตัวเลข แล้วโปรแกรมจะบอกว่า “สูงเกินไป” หรือ “ต่ำเกินไป” ผู้ใช้จะชนะเมื่อทายถูกหรือเมื่อทายครบจำนวนครั้งที่กำหนด

ส่วนหัวที่ต้องใช้

สำหรับสร้างตัวเลขสุ่มและรับส่งข้อมูล

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

การสร้างตัวเลขลับ

ใช้สิ่งอำนวยความสะดวกสมัยใหม่จาก <random> และกำหนดค่าเริ่มต้นเพียงครั้งเดียว

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 จะเข้าสู่สถานะล้มเหลว ควรกู้คืนการทำงานอย่างเหมาะสม

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() โดยแต่ละฟังก์ชันทำงานเพียงอย่างเดียว

ตรวจสอบความเข้าใจ

ต้อง include ส่วนหัวใดบ้างสำหรับการสร้างตัวเลขสุ่มใน C++ สมัยใหม่

สรุปทบทวน

เกมทายตัวเลขผสานการสร้างตัวเลขสุ่ม การตรวจสอบข้อมูลเข้า ลูป และสถานะของเกมเข้าด้วยกัน ปรับโครงสร้างเป็นฟังก์ชันขนาดเล็ก แล้วเพิ่มการเล่นซ้ำ สถิติ และระดับความยากเพื่อขัดเกลาโปรแกรม

คำถามที่พบบ่อย

บทเรียน “เกมทายตัวเลข” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เกมทายตัวเลข” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C++ Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เกมทายตัวเลข”

สร้างเกมทายตัวเลขแบบโต้ตอบขนาดเล็กที่ใช้ตัวเลขสุ่ม คุณปฏิบัติ C++ Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C++ Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C++ Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “เกมทายตัวเลข” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C++ Academy นี้ได้ไหม

ได้ บทเรียน C++ Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สร้างเครื่องคิดเลข CLI อย่างง่าย
  2. การอ่านและเขียนไฟล์ CSV
  3. เกมทายตัวเลข
  4. ตัวนับความถี่ของคำ
← กลับไปที่ C++ Academy