เกมทายตัวเลข
สร้างเกมทายตัวเลขแบบโต้ตอบขนาดเล็กที่ใช้ตัวเลขสุ่ม
เกมทายตัวเลข เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ