Guess the Number
Trò chơi đoán số
Problem to Solve
Bạn sẽ tạo một trò chơi đoán số, trong đó máy tính sẽ “nghĩ” một số ngẫu nhiên và người chơi phải đoán số đó. Sau mỗi lần đoán, máy tính sẽ cho biết số đoán lớn hơn hay nhỏ hơn số bí mật.
Background
Trò chơi đoán số là một ví dụ kinh điển để học về:
- Tạo số ngẫu nhiên với module
random - Vòng lặp
whilevà điều kiện dừng - So sánh số và đưa ra phản hồi
- Đếm số lần lặp
Đây cũng là cơ hội tốt để hiểu về thuật toán binary search - chiến thuật đoán tối ưu là luôn đoán số ở giữa khoảng còn lại.
Specification
Viết một chương trình guess.py thực hiện các yêu cầu sau:
- Tạo một số ngẫu nhiên từ 1 đến 100
- Cho phép người chơi nhập số đoán
- Sau mỗi lần đoán, thông báo số đoán “quá lớn” hoặc “quá nhỏ”
- Tiếp tục cho đến khi người chơi đoán đúng
- Đếm và hiển thị số lần đoán khi kết thúc
- Bonus: Thêm giới hạn số lần đoán (ví dụ: 7 lần)
Examples
$ python guess.py
Tôi đang nghĩ về một số từ 1 đến 100...
Đoán số của tôi: 50
Quá lớn! Hãy thử lại.
Đoán số của tôi: 25
Quá nhỏ! Hãy thử lại.
Đoán số của tôi: 37
Quá lớn! Hãy thử lại.
Đoán số của tôi: 31
Đúng rồi! Bạn đã đoán đúng sau 4 lần!
Hints
- Import module random:
import random - Sử dụng
random.randint(1, 100)để tạo số ngẫu nhiên từ 1 đến 100 - Sử dụng vòng lặp
while True:vớibreakkhi đoán đúng - Sử dụng biến đếm (counter) để theo dõi số lần đoán
- Xử lý trường hợp người dùng nhập không phải số
Getting Started
Log into cs50.dev using your GitHub account and click Authorize cs50, then close the tab.
How to check / Cách kiểm tra
Chạy:
check50 --local uet36/problems/2025/python/guess_number
How to submit / Cách nộp
Chạy:
submit50 --local uet36/problems/2025/python/guess_number