Đăng nhập

Bài 23: Trò chơi đoán số (Number Guessing Game)

Lập trình là để tương tác, để tạo cảm giác “wow!”

Nếu từ nãy giờ bạn chỉ làm việc với dữ liệu và giao diện cơ bản, thì bây giờ là lúc tạo ra một trò chơi nhỏ – vừa đơn giản, vừa gây nghiện. Đây là một bài tập kinh điển, có thể luyện được:

  • Xử lý vòng lặp
  • Nhập đầu vào
  • Điều kiện if – else
  • Hiển thị thông báo hợp lý
  • Dùng random để tạo kịch bản không đoán được

Mục tiêu

  • Tạo ra một số ngẫu nhiên từ 1 đến 100
  • Yêu cầu người chơi đoán
  • Gợi ý cao hơn / thấp hơn
  • Đếm số lần đoán
  • Thông báo thắng khi đoán đúng

1. Import thư viện

import random

2. Code trò chơi đơn giản

import random

so_dap_an = random.randint(1, 100)
so_lan_doan = 0

print("Chào mừng bạn đến với trò chơi Đoán Số!")
print("Tôi đã chọn một số từ 1 đến 100. Hãy thử đoán nó nhé!")

while True:
    try:
        doan = int(input("Nhập số bạn đoán: "))
        so_lan_doan += 1

        if doan < so_dap_an:
            print("🔼 Lớn hơn chút nữa.")
        elif doan > so_dap_an:
            print("🔽 Nhỏ hơn chút nữa.")
        else:
            print(f"🎉 Chính xác! Bạn đã đoán đúng sau {so_lan_doan} lần.")
            break
    except ValueError:
        print("❗ Vui lòng nhập một số nguyên.")

3. Tùy biến nâng cao

Bạn có thể thêm:

  • Giới hạn số lần đoán (ví dụ: 7 lần)
  • Gợi ý “nóng/lạnh” nếu đoán gần
  • Giao diện Tkinter cho trò chơi
  • Hỏi lại người chơi: “Bạn muốn chơi nữa không?”

4. Bài tập mở rộng

  • Giới hạn trong 5 lần, hết là thua
  • Cho người chơi tự chọn mức độ khó: dễ (1–50), trung bình (1–100), khó (1–500)
  • Ghi điểm cao nhất vào file highscore.txt

Luyện được gì?

  • Dùng random, input, int()
  • Vòng lặp while kết hợp break
  • Đếm số lượt
  • Phản hồi qua print()
  • Bắt lỗi nhập sai

Tiếp theo: Bài 24 – Game Xúc Xắc (Dice Simulator)
Bạn sẽ mô phỏng xúc xắc, hiển thị kết quả, và mở rộng thành một trò chơi mini có luật riêng.

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.