Trò chơi đố vui của chúng tôi sẽ đặt câu hỏi cho người chơi mà người chơi phải trả lời bằng câu trả lời đúng. Mỗi câu hỏi sẽ có 3 lần thử. Nếu người chơi không trả lời được câu hỏi trong vòng 3 lần thì trò chơi sẽ chuyển sang câu hỏi tiếp theo và người chơi sẽ không nhận được điểm. Nhưng nếu người chơi đưa ra câu trả lời đúng cho câu hỏi thì anh ta sẽ nhận được 1 điểm. Khi kết thúc trò chơi, tổng số điểm mà người chơi ghi được sẽ được hiển thị
Tôi hy vọng cách hoạt động trừu tượng của trò chơi đã rõ ràng với mọi người, bây giờ chúng ta hãy chuyển sang phần thiết lập dự án
Thiết lập dự án
Trước khi chúng tôi bắt đầu mã hóa dự án này, chúng tôi cần một số câu hỏi và câu trả lời cho trò chơi của chúng tôi
Trong trường hợp của chúng tôi, chúng tôi sẽ sử dụng một số câu hỏi dễ dựa trên siêu anh hùng
Vui lòng sử dụng câu hỏi hoặc câu trả lời của riêng bạn cho trò chơi. Các câu hỏi và câu trả lời của chúng tôi sẽ được lưu trữ trong một tệp python riêng dưới dạng từ điển python
Ở đây nó trông như thế nào
quiz = {
1 : {
"question" : "What is the first name of Iron Man?",
"answer" : "Tony"
},
2 : {
"question" : "Who is called the god of lightning in Avengers?",
"answer" : "Thor"
},
3 : {
"question" : "Who carries a shield of American flag theme in Avengers?",
"answer" : "Captain America"
},
4 : {
"question" : "Which avenger is green in color?",
"answer" : "Hulk"
},
5 : {
"question" : "Which avenger can change it's size?",
"answer" : "AntMan"
},
6 : {
"question" : "Which Avenger is red in color and has mind stone?",
"answer" : "Vision"
}
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bạn có thể tìm hiểu thêm về từ điển python từ đây
Chúng tôi sẽ không thể trình bày nhiều về từ điển trong hướng dẫn này nhưng về cơ bản, nó là một cấu trúc dữ liệu có thể được sử dụng để lưu trữ dữ liệu dưới dạng một biểu mẫu duy nhất, có tổ chức và dễ truy cập
Bạn có thể coi từ điển là danh sách. Nhưng có một số điểm khác biệt chính giữa danh sách và từ điển
- Danh sách được đặt trong dấu ngoặc đơn
1 trong khi từ điển được đặt trong dấu ngoặc đơnfrom questions import quiz
2from questions import quiz
- Các phần tử riêng lẻ của danh sách được truy cập bằng cách sử dụng
3 của phần tử trong khi các phần tử riêng lẻ của từ điển được truy cập thông qua cặpfrom questions import quiz
4 trong đófrom questions import quiz
5 là mã định danh vàfrom questions import quiz
6 là dữ liệu hoặc giá trị tương ứng của nófrom questions import quiz
Bạn phải đảm bảo rằng từ điển của bạn phải ở cùng định dạng như trên, nếu không, bạn có thể cần thực hiện các thay đổi cần thiết đối với mã để từ điển hoạt động cho bạn. Vui lòng đặt câu hỏi trên trang xã hội của tôi hoặc đăng câu hỏi của bạn bên dưới trong phần thảo luận/bình luận
Bây giờ tôi cho rằng bạn đã có câu hỏi và câu trả lời sẵn sàng. Đảm bảo rằng tệp python Hỏi & Đáp của bạn nằm trong cùng thư mục với tệp python trò chơi đố vui chính của bạn, chúng tôi sẽ bắt đầu mã hóa chỉ sau một giây
Bây giờ hãy chuyển sang mã hóa
Hãy viết mã
Điều đầu tiên chúng tôi luôn làm là nhập các mô-đun cần thiết vào mã của chúng tôi. May mắn cho dự án này, chúng tôi không cần bất kỳ mô-đun cụ thể nào. Tuy nhiên, chúng tôi vẫn cần nhập tệp python Q&A mà chúng tôi đã tạo ở bước trước
Chúng tôi đã đặt tên cho tệp python Q&A của mình là
from questions import quiz
7. Đây là cách chúng tôi sẽ nhập nófrom questions import quiz
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Chúng tôi đang yêu cầu python nhập từ điển
from questions import quiz
8 chứa câu hỏi và câu trả lời của chúng tôi từ tệp from questions import quiz
7Bây giờ hãy đến cấu trúc của trò chơi của chúng tôi
Chú ý hơn. Vì điều này có thể cảm thấy một chút phức tạp
Bây giờ chúng ta sẽ khởi tạo một biến để theo dõi điểm số
from questions import quiz
1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bây giờ là lúc để đặt câu hỏi cho người chơi của chúng tôi
Để làm được điều đó, chúng ta cần tạo một vòng lặp
from questions import quiz
10 sẽ lặp qua tất cả các câu hỏifrom questions import quiz
3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bây giờ như đã đề cập trước đó, người chơi sẽ có 3 lần thử cho mỗi câu hỏi để có câu trả lời đúng
Hãy tạo một biến để theo dõi các lần thử
from questions import quiz
4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bây giờ, hãy tạo một vòng lặp
from questions import quiz
11 trong vòng lặp from questions import quiz
10 của chúng ta, vòng lặp này sẽ chỉ chạy cho đến khi người chơi còn lượt thửfrom questions import quiz
7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Tuyệt quá. Bây giờ, hãy in các câu hỏi và nhận câu trả lời từ người chơi của chúng tôi. Chúng tôi sẽ sử dụng các hàm
from questions import quiz
13 & from questions import quiz
14 cũ tốt của chúng tôi cho điều đófrom questions import quiz
0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Đáng kinh ngạc. Phản hồi của người chơi sẽ được lưu trữ trong biến
from questions import quiz
15Bây giờ chúng tôi sẽ sử dụng một chức năng sẽ kiểm tra xem câu trả lời do người chơi cung cấp là đúng hay sai. Chúng ta sẽ đặt tên hàm đó là
from questions import quiz
16. Bây giờ, hãy tập trung vào vòng lặp from questions import quiz
10 của chúng ta và sau đó chúng ta sẽ xem chức năng này hoạt động như thế nàofrom questions import quiz
4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Chúng ta sẽ truyền 4 tham số cho hàm của mình, đó là
18 - vòng lặp hiện tại của vòng lặpfrom questions import quiz
10from questions import quiz
15 - câu trả lời do người chơi cung cấpfrom questions import quiz
31 [tùy chọn] - một tham số tùy chọn về số lần thử còn lạifrom questions import quiz
32 [tùy chọn] - một tham số tùy chọn của điểm hiện tại của người chơifrom questions import quiz
Chúng tôi sẽ lưu trữ đầu ra của hàm trong biến
from questions import quiz
33Bây giờ chúng ta sẽ sử dụng câu lệnh
from questions import quiz
34 để tăng điểm nếu câu trả lời do người chơi cung cấp là đúngfrom questions import quiz
2Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Ở đây nếu câu trả lời của người chơi là đúng thì số điểm sẽ tăng thêm 1 và vòng lặp
from questions import quiz
11 sẽ bị ngắt và vòng lặp from questions import quiz
10 sẽ chuyển sang câu hỏi tiếp theoNhưng nếu câu trả lời sai, thì người chơi sẽ thua một lần và vòng lặp trong khi sẽ tiếp tục cho đến khi người chơi đưa ra câu trả lời đúng hoặc người chơi hết lượt thử
Ở đây cuối cùng, vòng lặp
from questions import quiz
10 của chúng tôi kết thúcCó phải chúng ta đang quên một cái gì đó?
Ồ, chúng tôi đã quên triển khai chức năng
from questions import quiz
16 của mình. Hãy che đậy điều đó một cách nhanh chóngfrom questions import quiz
7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Đây là chức năng của chúng tôi. Hãy phá vỡ nó
Ở đây, một câu lệnh
from questions import quiz
34 sẽ so sánh câu trả lời do người chơi cung cấp với câu trả lời đúng trong từ điển của chúng tôiNếu câu trả lời là đúng thì nó sẽ trả về
from questions import quiz
40 nếu không nó sẽ trả về from questions import quiz
41Hãy thêm một vài câu lệnh in để thông báo cho người chơi nếu câu trả lời của anh ta đúng hay sai
from questions import quiz
0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Ở đây có vẻ tốt phải không
Bạn làm được rồi. Hãy tự hào về bản thân 🤩
Một số ý tưởng để thử
Dưới đây là một số ý tưởng nhanh mà bạn có thể thử với dự án này
- Biến nó thành nhiều người chơi - Hãy thử sửa đổi trò chơi này để nhiều người chơi có thể thưởng thức trò chơi này cùng một lúc. Bạn có thể làm điều này bằng cách thêm một vòng lặp
10 bổ sung sẽ chứa tên của người chơi và điểm số của mỗi người chơi được lưu trữ riêng. Người chơi có số điểm cao nhất sẽ thắng trò chơifrom questions import quiz
- Sử dụng định dạng MCQ - Không chỉ là bài kiểm tra, bạn còn có thể sử dụng nó để tiến hành các bài kiểm tra MCQ. Tất cả những gì bạn phải làm là sửa đổi chức năng in để in nhiều câu trả lời và người chơi sẽ phải đoán câu trả lời đúng
- Sử dụng API - Sử dụng một API thú vị để tự động tìm nạp câu hỏi từ web, do đó bạn không phải gặp rắc rối khi tự tạo câu hỏi và câu trả lời. Một trong những yêu thích của tôi là API siêu anh hùng
Mã nguồn
Bạn có thể tìm thấy mã nguồn hoàn chỉnh của dự án này tại đây -
mindninjaX/Python-Projects-for-Beginners
Ủng hộ
Cảm ơn bạn rất nhiều vì đã đọc. Tôi hy vọng bạn thấy dự án mới bắt đầu này hữu ích
Nếu bạn thích công việc của tôi, hãy cân nhắc Mua cho tôi một ly cà phê để tôi có thể mang đến nhiều dự án hơn, nhiều bài viết hơn cho bạn
Ngoài ra, nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào, vui lòng liên hệ với tôi trên Twitter, LinkedIn & GitHub. Hoặc bạn cũng có thể gửi bình luận/thảo luận & tôi sẽ cố gắng hết sức để giúp bạn. D