0
0
Lập trình
Admin Team
Admin Teamtechmely

Trò Chơi Đoán Số Cơ Bản Bằng Python: Dự Án Khởi Đầu Tuyệt Vời

Đăng vào 4 tháng trước

• 4 phút đọc

🎯 Mục Tiêu Dự Án: Học Cơ Bản Python, Vòng Lặp và Xử Lý Tập Tin

Trò chơi đoán số là một cột mốc quan trọng cho mỗi lập trình viên mới. Nó đề cập đến những khái niệm cơ bản như gán biến, logic điều kiện (if/elif/else), vòng lặp (while), và (trong phiên bản nâng cao này) xử lý tập tin để lưu điểm cao nhất.

Bài viết này sẽ phân tích logic cốt lõi của một script Python cho trò chơi đoán số đơn giản, thách thức người chơi đoán một số ngẫu nhiên giữa 1 và 100 trong số lần thử ít nhất có thể.

➡️ Bạn có thể tìm thấy mã nguồn đầy đủ, có thể chạy, bao gồm hướng dẫn thiết lập cho tập tin Hi-score.txt, tại đây:
https://github.com/bilal-dev-0x/Number-guessing-game.git


💡 Phân Tích Mã: Các Khái Niệm Chính

Hãy cùng khám phá những mảnh ghép thiết yếu trong logic của trò chơi.

1. Thiết Lập Trò Chơi: Ngẫu Nhiên và Khởi Tạo

Trò chơi bắt đầu bằng việc chọn một số nguyên ngẫu nhiên và thiết lập bộ đếm của chúng ta.

python Copy
import random
n = random.randint(1, 100)
guesses = 0
  • import random: Chúng ta sử dụng câu lệnh này để đưa vào thư viện random tích hợp sẵn của Python.
  • random.randint(1, 100): Dòng này chọn số bí mật n giữa 1 và 100, bao gồm cả hai đầu.
  • guesses = 0: Chúng ta khởi tạo bộ đếm lần thử. Biến này sẽ là chỉ số cuối cùng cho hiệu suất của người chơi và là số mà chúng ta lưu vào tập tin điểm cao.

2. Logic Cốt Lõi: Vòng Lặp Vô Hạn

Vòng lặp trò chơi là trái tim của ứng dụng. Chúng ta sử dụng vòng lặp while True, chạy vô hạn cho đến khi một câu lệnh break được gặp.

python Copy
while True:
    guesses += 1
    a = int(input("Đoán số: "))

    if a == n:
        # Thành công và kết thúc trò chơi!
        print(f"Bạn đã đoán đúng số trong {guesses} lần thử.")
        break 

    elif a < n:
        # Gợi ý cho người chơi
        print("Số lớn hơn....Xin vui lòng.")

    else:
        # Gợi ý khác
        print("Số nhỏ hơn....Xin vui lòng.")
  • while True:: Tạo vòng lặp trò chơi vô hạn.
  • guesses += 1: Tăng bộ đếm mỗi lần đoán.
  • if/elif/else: Đây là logic điều kiện cung cấp phản hồi quan trọng. Nếu đoán a đúng, chúng ta in kết quả và sử dụng break để thoát khỏi vòng lặp. Ngược lại, người chơi nhận được gợi ý để đi Lớn hơn hoặc Nhỏ hơn.

3. Đánh Giá Hiệu Suất: Thông Điệp Điều Kiện

Sau khi người chơi thắng và thoát khỏi vòng lặp chính, chúng ta đánh giá điểm số của họ dựa trên một vài tầng đơn giản. Đây là một cách sử dụng tuyệt vời của if/elif/else để cung cấp phản hồi cá nhân.

python Copy
if guesses <= 10:
    print("Bạn đã làm điều đó trong một số lần thử....thật tuyệt vời.")

elif 10 < guesses < 20:
    print("Bạn đang làm tốt....hãy cải thiện hơn nữa.")

else:
    print("Quá nhiều lần thử .... hãy cố gắng giảm số lần thử.")

4. Quản Lý Điểm Cao: Đọc và Ghi Vào Tập Tin

Đây là tính năng mạnh mẽ nhất của script này, giới thiệu Xử lý Tập tin. Nó cho phép chương trình nhớ điểm số tốt nhất ngay cả sau khi nó được đóng và mở lại.

python Copy
# ... trước tiên, đọc điểm cao cũ ...
with open("Hi-score.txt","r") as f:
    content = f.read()

# ... sau đó so sánh và có thể ghi đè ...
if int(content) > guesses:
    with open("Hi-score.txt", "w") as f:
        f.write(str(guesses))
        print(f"Điểm cao nhất là {guesses}")
  • Đọc ("r" mode)**: Chúng ta mở tập tin **Hi-score.txt** trong **chế độ đọc** để lấy thông tin hiện có. Cấu trúc **with open(...) as f:` là thực hành tốt nhất vì nó đảm bảo tập tin luôn được đóng tự động.
  • So sánh: if int(content) > guesses: là logic cốt lõi. Vì điểm số thấp hơn là tốt hơn trong trò chơi này, chúng ta kiểm tra xem điểm cũ content có phải là một số lớn hơn (điểm tệ hơn) so với điểm hiện tại guesses không.
  • Ghi ("w" mode)**: Nếu chúng ta đánh bại kỷ lục, chúng ta mở tập tin trong **chế độ ghi** **("w")**, điều này **ghi đè** nội dung cũ bằng điểm số mới, thấp hơn. Chúng ta phải chuyển đổi số nguyên **guesses** trở lại thành chuỗi bằng **str(guesses)` trước khi ghi nó vào tập tin văn bản.

Trò chơi đơn giản này bao gồm các trụ cột lập trình cốt lõi và cung cấp một nền tảng tuyệt vời để xây dựng các dự án phức tạp hơn!

Hãy tiến hành và fork kho lưu trữ, chạy mã, và cố gắng phá kỷ lục cao nhất của chính bạn!

➡️ Tìm thấy toàn bộ script Python và hướng dẫn thiết lập tại đây: https://github.com/bilal-dev-0x/Number-guessing-game.git

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào