🚀 Giới thiệu dự án
Chào bạn! Hôm nay chúng ta sẽ tự tay xây dựng một game đoán số – trò chơi kinh điển mà ai cũng yêu thích! 🎯
🎭 Hãy tưởng tượng:
- Bạn làthám tử🕵️ truy tìm “mật mã bí ẩn” máy tính giấu kín!
- Hoặc bạn làkho báu hunter💎 đi tìm số vàng may mắn!
- Hoặc đơn giản, bạn muốntạo trò chơi đầu tiênđể khoe với bạn bè! 🚀
Game này sẽ dạy bạn:
- Cáchtạo số ngẫu nhiên(random)
- Sử dụngvòng lặp whileđể lặp cho đến khi đoán đúng
- Áp dụngif-elsecho logic game
- Thêmgợi ý thông minh: số bạn đoán lớn hơn hay nhỏ hơn
- Đếm số lần thử để tính điểm!
// Trò chơi đơn giản:
int soBiMat = rand() % 100 + 1; // Số từ 1-100
int soDoan;
do {
cin >> soDoan;
if (soDoan < soBiMat) cout << "Lớn hơn!\n";
else if (soDoan > soBiMat) cout << "Nhỏ hơn!\n";
} while (soDoan != soBiMat);📚 Kiến thức cần dùng
🎲 1. Tạo số ngẫu nhiên (Random)
#include <cstdlib> // Thư viện rand()
#include <ctime> // Thư viện time()
srand(time(0)); // Khởi tạo seed ngẫu nhiên
int so = rand() % 100 + 1; // Số từ 1 đến 100🔄 2. Vòng lặp while/do-while
while (điều_kiện) {
// Lặp khi điều_kiện đúng
}
do {
// Chạy ít nhất 1 lần
} while (điều_kiện);🎯 3. Câu lệnh if-else
if (soDoan < soBiMat) {
cout << "Số bạn đoán nhỏ quá!";
} else if (soDoan > soBiMat) {
cout << "Số bạn đoán lớn quá!";
} else {
cout << "Chính xác!";
}🛠️ Thuật toán game
- Khởi tạo: Tạo số bí mật ngẫu nhiên
- Lặp: Nhập số đoán từ người chơi
- So sánh: Đưa gợi ý “lớn hơn” hay “nhỏ hơn”
- Kết thúc: Khi đoán đúng, in số lần thử và chúc mừng!
🌟 CODE HOÀN CHỈNH
Đây là bài giải mẫu. Chúng ta nên tự giải bài tập dựa theo hướng dẫn của Admin trước hãy xem bài giải nhé. (Vui lòng đăng nhập để xem).
🎨 Tính năng nổi bật
✨ 1. Gợi ý thông minh
- Gần (≤5): “🔥 Rất gần rồi!”
- Trung bình (6-15): “🌡️ Hơi ấm!”
- Xa (>15): “❄️ Còn xa lắm!”
🎯 2. Giới hạn lần thử
- Tạo thử thách: chỉ 10 lần thử
- Tăng tính hấp dẫn của game
🏆 3. Hệ thống đánh giá
- 1-3 lần: Xuất sắc ⭐⭐⭐
- 4-5 lần: Giỏi ⭐⭐
- 6-7 lần: Tốt ⭐
- 8+ lần: Ổn 👍
🛡️ 4. Validation input
- Kiểm tra số từ 1-100
- Không đếm lần thử sai
📝 Bài tập mở rộng
🟢 Cơ bản
- Thêm tính năng “Chơi lại” sau khi kết thúc
- Cho người chơi chọn độ khó: Dễ (1-50), Trung (1-100), Khó (1-200)
- Lưu điểm cao nhất (ít lần thử nhất)
🟡 Trung bình
- Thêm chế độ 2 người chơi: Người 1 nhập số, Người 2 đoán
- Hiển thị lịch sử các số đã đoán
- Thêm hệ thống gợi ý “chẵn/lẻ”, “chia hết cho 5”
🔴 Nâng cao
- AI tự động đoán số của người chơi (binary search)
- Tích hợp hệ thống xếp hạng với file lưu trữ
- Tạo GUI đơn giản bằng thư viện đồ họa
💡 Mẹo chơi game
🎯 Chiến thuật đoán thông minh:
- Bắt đầu ở giữa(50) để chia đôi khoảng tìm kiếm
- Tiếp tục chia đôi: Nếu nhỏ hơn → thử 75, lớn hơn → thử 25
- Phương pháp Binary Searchgiúp đoán trong tối đa 7 lần!
🔍 Giải thích code chi tiết
🎲 Random số:
srand(time(0)); // Khởi tạo seed theo thời gian
int so = rand() % 100 + 1; // Lấy phần dư chia 100, cộng 1
// Kết quả: số từ 1 đến 100🔄 Vòng lặp kiểm tra:
while (soLanThu < MAX && !daThang) {
// Chạy khi chưa hết lượt VÀ chưa thắng
}📊 Tính khoảng cách:
int khoangCach = abs(soDoan - soBiMat);
// abs() = giá trị tuyệt đối🎉 Tổng kết
Chúc mừng! Bạn vừa hoàn thành dự án game đầu tiên! 🎊
Bạn đã học được:
✅ Tạo số ngẫu nhiên với rand() và srand()
✅ Sử dụng vòng lặp while cho game loop
✅ Áp dụng if-else cho logic phức tạp
✅ Xử lý input và validation
✅ Tạo trải nghiệm người chơi tốt với gợi ý
Game này là nền tảng để bạn phát triển các game phức tạp hơn: Tic-Tac-Toe, Snake, Flappy Bird… Sky is the limit! 🚀
🎮 Thử thách bonus
“Master Coder Challenge”:
Hãy nâng cấp game với:
- Âm thanh thắng/thua (beep)
- Animation ASCII art
- Chế độ multiplayer online
- Leaderboard toàn cầu
- AI machine learning đoán số
🏷️ Tags:
#C++ #game-đoán-số #guessing-game #random #while-loop #dự-án-mini #game-programming #beginner-project #interactive #fun-coding #Việt-Nam #programming-tutorial




















