Cách tạo trò chơi đố vui bằng Python (có hình ảnh)

Mục lục:

Cách tạo trò chơi đố vui bằng Python (có hình ảnh)
Cách tạo trò chơi đố vui bằng Python (có hình ảnh)

Video: Cách tạo trò chơi đố vui bằng Python (có hình ảnh)

Video: Cách tạo trò chơi đố vui bằng Python (có hình ảnh)
Video: Hướng dẫn lập trình Đồng hồ đếm ngược - lập trình Python | Nga it 2024, Có thể
Anonim

Nếu bạn muốn học Python, bạn nên bắt đầu với một số trò chơi đơn giản dựa trên văn bản. Bài viết này sẽ hướng dẫn bạn cách làm trò chơi đố vui.

Các bước

947361 1
947361 1

Bước 1. Cài đặt Python nếu bạn chưa có

Có hai phiên bản chính của Python: Python 2 và Python 3. Chúng không thể hoán đổi cho nhau và hỗ trợ cho Python 2 sẽ kết thúc vào năm 2020, vì vậy bài viết này sẽ giả định rằng bạn cài đặt Python 3.

947361 2
947361 2

Bước 2. Mở tệp mới trong trình soạn thảo văn bản hoặc IDE Python của bạn

Đặt cho nó một tên mô tả kết thúc bằng.py.

947361 3
947361 3

Bước 3. Nhập thư viện ngẫu nhiên

Bạn sẽ cần nó để sắp xếp ngẫu nhiên các câu trả lời có thể.

947361 4
947361 4

Bước 4. Xác định một lớp "QA"

Một "QA" sẽ bao gồm một câu hỏi và một câu trả lời đúng, và một danh sách các câu trả lời có thể có khác. Hàm _init _ () sẽ được gọi bất cứ khi nào bạn tạo một đối tượng QA mới bằng hàm QA (), với các đối số của nó được chuyển vào thuộc tính tương ứng. Kiểu:

class QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = câu hỏi self.corrAnsw = đúngAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Bước 5. Tạo danh sách các QAs

Nghĩ về một số câu hỏi với một câu trả lời đúng và một số câu trả lời sai. Tạo đối tượng QA từ mỗi đối tượng và đưa chúng vào danh sách. Vì danh sách sẽ khá dài nên bạn có thể chia thành nhiều dòng để dễ đọc hơn. Tất cả điều này được thực hiện với mã sau (văn bản của bạn có thể khác):

qaList = [QA ("Minsk ở đâu?", "ở Belarus", ["ở Nga", "thành phố như vậy không tồn tại"]), QA ("Thủ đô của Úc là gì?", "Canberra", ["Sydney", "New York", "Úc không tồn tại"]), QA ("Địa điểm nào sau đây không có trên Trái đất?", "Biển yên bình", ["Địa Trung Hải", "Biển Baltic "," Biển Bắc "]), QA (" Quốc gia nào sau đây không phải là lục địa? "," Bắc Cực ", [" Nam Cực "," Châu Mỹ "]), QA (" Quốc gia nào sau đây không phải là quốc gia châu Phi ? "," Malaysia ", [" Madagascar "," Djibouti "," Nam Phi "," Zimbabwe "])]

947361 6
947361 6

Bước 6. Thêm một biến đếm có bao nhiêu câu trả lời đúng

Đặt nó bằng 0 ngay từ đầu. Thêm dòng:

corrCount = 0

947361 7
947361 7

Bước 7. Xáo trộn danh sách QA

Điều này sẽ làm cho các câu hỏi của bạn xuất hiện theo thứ tự ngẫu nhiên. Điều này được thực hiện với chức năng sau:

random.shuffle (qaList)

947361 8
947361 8

Bước 8. Thực hiện một vòng lặp

Chương trình nên xem qua từng mục trong danh sách và làm điều gì đó với nó. Tạo một vòng lặp như vậy với biểu thức này:

cho qaItem trong qaList:

947361 9
947361 9

Bước 9. Đưa ra từng câu hỏi

Sau biểu thức vòng lặp, hãy viết dòng:

print (qaItem.question)

947361 10
947361 10

Bước 10. Đưa ra tất cả các câu trả lời có thể

Chúng sẽ xuất hiện theo thứ tự ngẫu nhiên để câu trả lời đúng không phải lúc nào cũng ở cùng một vị trí. Ngoài ra, chúng phải được bắt đầu bằng một số để người dùng không phải nhập lại toàn bộ câu trả lời. Đoạn mã sau thực hiện điều này:

print ("Các câu trả lời có thể là:") could = qaItem.otherAnsw + [qaItem.corrAnsw] # dấu ngoặc vuông chuyển câu trả lời đúng thành danh sách để nối với danh sách khác random.shuffle (có thể) count = 0 # chỉ mục danh sách bắt đầu từ 0 trong python trong khi đếm <len (có thể): in (str (đếm + 1) + ":" + có thể [đếm]) đếm + = 1

947361 11
947361 11

Bước 11. Lấy thông tin đầu vào của người dùng

Đầu tiên, hãy nói với người dùng rằng họ phải nhập số của họ. Sau đó, kiểm tra xem những gì người dùng đã nhập có thực sự là một số tương ứng với một câu trả lời hay không. Nếu không, hãy nói lại với người dùng. Sử dụng mã này (bên ngoài vòng lặp while bạn đã tạo cho đầu ra):

print ("Vui lòng nhập số câu trả lời của bạn:") userAnsw = input () trong khi không phải userAnsw.isdigit (): print ("Đó không phải là một số. Vui lòng nhập số câu trả lời của bạn:") userAnsw = input () userAnsw = int (userAnsw) while not (userAnsw> 0 và userAnsw <= len (có thể)): print ("Số đó không tương ứng với bất kỳ câu trả lời nào. Vui lòng nhập số câu trả lời của bạn:") userAnsw = input ()

947361 12
947361 12

Bước 12. Kiểm tra xem câu trả lời của người dùng có đúng không

Để làm điều này, hãy lấy văn bản của câu trả lời mà người dùng đã nhập một số và so sánh nó với văn bản của câu trả lời đúng. Nếu chúng giống nhau, câu trả lời của người dùng là đúng và biến corrCount sẽ được tăng lên 1. Nếu không, câu trả lời là sai và người dùng phải được cho biết câu trả lời đúng. Cuối cùng, in một dòng trống để thêm một số không gian cho câu hỏi tiếp theo. Nhập mã sau:

nếu có thể [userAnsw-1] == qaItem.corrAnsw: print ("Câu trả lời của bạn là đúng.") corrCount + = 1 else: print ("Câu trả lời của bạn sai.") print ("Câu trả lời đúng là:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Bước 13. Đưa ra kết luận

Cuối cùng, người dùng có thể muốn biết họ đã trả lời đúng bao nhiêu câu hỏi. Vì vậy, hãy nói với họ bằng cách thêm biểu thức sau bên ngoài vòng lặp for:

print ("Bạn đã trả lời" + str (corrCount) + "of" + str (len (qaList)) + "câu hỏi đúng.")

947361 14
947361 14

Bước 14. Kiểm tra mã của bạn

Đặc biệt chú ý đến vết lõm. Mã hoàn chỉnh của bạn bây giờ sẽ trông như thế này:

nhập lớp ngẫu nhiên QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Minsk ở đâu?", "ở Belarus", ["ở Nga", "thành phố như vậy không tồn tại"]), QA ("Thủ đô của Úc là gì?", "Canberra", ["Sydney", "New York", "Úc không tồn tại"]), QA ("Trường hợp nào sau đây không có trên Trái đất?", "Biển yên bình", ["Biển Địa Trung Hải", "Biển Baltic", "Biển Bắc"]), QA ("Trường hợp nào sau đây không một lục địa? "," Bắc Cực ", [" Nam Cực "," Châu Mỹ "]), QA (" Quốc gia nào sau đây không phải là quốc gia châu Phi? "," Malaysia ", [" Madagascar "," Djibouti "," Nam Châu Phi "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) cho qaItem trong qaList: print (qaItem.question) print (" Các câu trả lời có thể là: ") could = qaItem.otherAnsw + [qaItem.corrAnsw] # dấu ngoặc vuông biến câu trả lời đúng thành danh sách để nối với danh sách khác ngẫu nhiên. hỗn hợp (có thể) count = 0 # chỉ mục danh sách bắt đầu từ 0 i n python while count <len (có thể): print (str (count + 1) + ":" + could [count]) count + = 1 print ("Vui lòng nhập số câu trả lời của bạn:") userAnsw = input () while not userAnsw.isdigit (): print ("Đó không phải là một số. Vui lòng nhập số câu trả lời của bạn: ") userAnsw = input () userAnsw = int (userAnsw) trong khi không (userAnsw> 0 và userAnsw <= len (có thể)): print (" Con số đó không tương ứng với bất kỳ câu trả lời nào. Vui lòng nhập số câu trả lời của bạn: ") userAnsw = input () nếu có thể [userAnsw-1] == qaItem.corrAnsw: print (" Câu trả lời của bạn là đúng. ") CorrCount + = 1 else: print (" Câu trả lời của bạn là sai. ") print (" Câu trả lời đúng là: "+ qaItem.corrAnsw) print (" ") print (" Bạn đã trả lời "+ str (corrCount) +" of "+ str (len (qaList)) +" câu hỏi đúng. ")

947361 15
947361 15

Bước 15. Chạy mã

Nếu bạn đang sử dụng IDE, hãy nhấp vào biểu tượng "Chạy" hoặc mục menu. Nếu bạn đang sử dụng trình soạn thảo văn bản, hãy lưu chương trình của bạn, đóng trình chỉnh sửa và mở chương trình của bạn bằng Python.

Lời khuyên

  • Chú ý đến việc thụt lề chính xác. Mã bên trong một hàm hoặc định nghĩa lớp được thụt vào, cũng như mã bên trong một vòng lặp. Một chương trình Python có thụt lề sai sẽ không hoạt động.
  • Nhấn Ctrl + C nếu bạn muốn làm gián đoạn trò chơi và không kết thúc trò chơi.
  • Nếu bạn thay thế mọi lệnh gọi input () bằng một lệnh gọi raw_input (), chương trình này sẽ hoạt động trong Python 2, nhưng ngừng hoạt động trong Python 3.

Đề xuất: