วิธีสร้างเกมตอบคำถามใน Python (พร้อมรูปภาพ)

สารบัญ:

วิธีสร้างเกมตอบคำถามใน Python (พร้อมรูปภาพ)
วิธีสร้างเกมตอบคำถามใน Python (พร้อมรูปภาพ)

วีดีโอ: วิธีสร้างเกมตอบคำถามใน Python (พร้อมรูปภาพ)

วีดีโอ: วิธีสร้างเกมตอบคำถามใน Python (พร้อมรูปภาพ)
วีดีโอ: ทำ New Year Countdown Timer นับถอยหลังวันปีใหม่ ด้วย Python 2024, เมษายน
Anonim

หากคุณต้องการเรียนรู้ Python คุณควรเริ่มด้วยเกมแบบข้อความธรรมดาๆ บทความนี้จะแสดงวิธีสร้างเกมตอบคำถาม

ขั้นตอน

947361 1
947361 1

ขั้นตอนที่ 1 ติดตั้ง Python หากคุณยังไม่ได้ติดตั้ง

Python มีสองเวอร์ชันหลัก: Python 2 และ Python 3 ใช้แทนกันได้ และการรองรับ Python 2 จะสิ้นสุดในปี 2020 ดังนั้นบทความนี้จะถือว่าคุณติดตั้ง Python 3

947361 2
947361 2

ขั้นตอนที่ 2 เปิดไฟล์ใหม่ในโปรแกรมแก้ไขข้อความหรือ Python IDE ของคุณ

ตั้งชื่อที่สื่อความหมายซึ่งลงท้ายด้วย.py

947361 3
947361 3

ขั้นตอนที่ 3 นำเข้าไลบรารีแบบสุ่ม

คุณจะต้องใช้มันเพื่อสุ่มจัดเรียงคำตอบที่เป็นไปได้

947361 4
947361 4

ขั้นตอนที่ 4 กำหนดคลาส "QA"

"QA" จะประกอบด้วยคำถามและคำตอบที่ถูกต้อง และรายการคำตอบอื่นๆ ที่เป็นไปได้ ฟังก์ชัน _init_() จะถูกเรียกเมื่อใดก็ตามที่คุณสร้างวัตถุ QA ใหม่ด้วยฟังก์ชัน QA() โดยอาร์กิวเมนต์จะถูกส่งต่อไปยังแอตทริบิวต์ที่เกี่ยวข้อง พิมพ์:

คลาส QA: def _init_(ตัวเอง, คำถาม, แก้ไขคำตอบ, คำตอบอื่นๆ): self.question = คำถาม self.corrAnsw = แก้ไขคำตอบ self.otherAnsw = otherAnswers

947361 5
947361 5

ขั้นตอนที่ 5. สร้างรายการ QAs

ลองนึกถึงคำถามบางคำถามที่มีคำตอบที่ถูกต้องและคำตอบที่ผิด สร้างวัตถุ QA จากแต่ละรายการและใส่ไว้ในรายการ เนื่องจากรายการจะค่อนข้างยาว คุณสามารถแยกเป็นหลายบรรทัดเพื่อให้อ่านง่ายขึ้น ทั้งหมดนี้ทำได้ด้วยรหัสต่อไปนี้ (ข้อความของคุณอาจแตกต่างกัน):

qaList = [QA("มินสค์อยู่ที่ไหน", "ในเบลารุส", ["ในรัสเซีย", "ไม่มีเมืองแบบนี้"]), QA("เมืองหลวงของออสเตรเลียคืออะไร", "แคนเบอร์รา", ["ซิดนีย์", "นิวยอร์ก", "ไม่มีออสเตรเลีย"]), QA("ข้อใดต่อไปนี้ไม่อยู่บนโลก", "ทะเลแห่งความเงียบสงบ", ["ทะเลเมดิเตอร์เรเนียน", "ทะเลบอลติก" ", "ทะเลเหนือ"]), QA("ข้อใดต่อไปนี้ไม่ใช่ทวีป", "อาร์กติก", ["แอนตาร์กติกา", "อเมริกา"]), QA("ข้อใดต่อไปนี้ไม่ใช่ประเทศในแอฟริกา ?", "มาเลเซีย", ["มาดากัสการ์", "จิบูตี", "แอฟริกาใต้", "ซิมบับเว"])]

947361 6
947361 6

ขั้นตอนที่ 6 เพิ่มตัวแปรที่นับจำนวนคำตอบที่ถูก

ตั้งเป็นศูนย์ในตอนเริ่มต้น เพิ่มบรรทัด:

corrCount = 0

947361 7
947361 7

ขั้นตอนที่ 7 สับเปลี่ยนรายการ QA

สิ่งนี้จะทำให้คำถามของคุณปรากฏขึ้นแบบสุ่ม ทำได้ด้วยฟังก์ชันต่อไปนี้:

random.shuffle(qaList)

947361 8
947361 8

ขั้นตอนที่ 8 สร้างลูป

โปรแกรมควรตรวจสอบแต่ละรายการและทำบางสิ่งกับมัน สร้างลูปด้วยนิพจน์นี้:

สำหรับ qaItem ใน qaList:

947361 9
947361 9

ขั้นตอนที่ 9 ส่งออกแต่ละคำถาม

หลังจากนิพจน์ลูปเขียนบรรทัด:

พิมพ์ (qaItem.question)

947361 10
947361 10

ขั้นตอนที่ 10. ส่งออกคำตอบที่เป็นไปได้ทั้งหมด

คำตอบควรปรากฏขึ้นแบบสุ่มเพื่อไม่ให้คำตอบที่ถูกต้องอยู่ในตำแหน่งเดียวกันเสมอไป นอกจากนี้ ควรนำหน้าด้วยตัวเลขเพื่อไม่ให้ผู้ใช้ต้องป้อนคำตอบทั้งหมดอีกครั้ง รหัสต่อไปนี้ทำสิ่งนี้:

พิมพ์ ("คำตอบที่เป็นไปได้คือ:") เป็นไปได้ = qaItem.otherAnsw + [qaItem.corrAnsw] # วงเล็บเหลี่ยมเปลี่ยนคำตอบที่ถูกต้องลงในรายการสำหรับการต่อกับรายการ random.shuffle (ที่เป็นไปได้) อื่น ๆ จำนวน = 0 # รายการดัชนีเริ่มต้นที่ 0 ในหลาม ขณะนับ < len(เป็นไปได้): พิมพ์(str(นับ+1) + ": " + เป็นไปได้[นับ]) นับ += 1

947361 11
947361 11

ขั้นตอนที่ 11 รับข้อมูลของผู้ใช้

ขั้นแรก บอกผู้ใช้ว่าพวกเขาต้องป้อนหมายเลขของพวกเขา จากนั้นตรวจสอบว่าสิ่งที่ผู้ใช้ป้อนเป็นตัวเลขที่ตรงกับคำตอบหรือไม่ หากไม่ใช่ ให้แจ้งผู้ใช้อีกครั้ง ใช้รหัสนี้ (นอกลูป while ที่คุณสร้างสำหรับเอาต์พุต):

print("Please enter the number of your answer:") userAnsw = input() while not userAnsw.isdigit(): print("That was not a number. Please enter the number of your answer:") userAnsw = input() userAnsw = int(userAnsw) ในขณะที่ไม่ใช่ (userAnsw > 0 และ userAnsw <= len(possible)): print("ตัวเลขนั้นไม่ตรงกับคำตอบใด ๆ โปรดป้อนจำนวนคำตอบของคุณ:") userAnsw = input()

947361 12
947361 12

ขั้นตอนที่ 12 ตรวจสอบว่าคำตอบของผู้ใช้ถูกต้องหรือไม่

ในการทำเช่นนี้ ให้รับข้อความของคำตอบที่ผู้ใช้ป้อนตัวเลขและเปรียบเทียบกับข้อความของคำตอบที่ถูกต้อง หากเหมือนกัน คำตอบของผู้ใช้นั้นถูกต้อง และตัวแปร corrCount ควรเพิ่มขึ้น 1 มิฉะนั้น ผิดและผู้ใช้ควรได้รับคำตอบที่ถูกต้อง สุดท้าย ให้พิมพ์บรรทัดว่างเพื่อเพิ่มช่องว่างให้กับคำถามถัดไป ป้อนรหัสต่อไปนี้:

ถ้าเป็นไปได้[userAnsw-1] == qaItem.corrAnsw: print("คำตอบของคุณถูกต้อง") corrCount += 1 อื่น ๆ: print("คำตอบของคุณไม่ถูกต้อง") print("คำตอบที่ถูกต้องคือ: " + qaItem. corrAnsw) พิมพ์ ("")

947361 13
947361 13

ขั้นตอนที่ 13 แสดงข้อสรุป

ในท้ายที่สุด ผู้ใช้อาจต้องการทราบว่าพวกเขาตอบคำถามถูกกี่ข้อ ดังนั้นบอกพวกเขาโดยเพิ่มนิพจน์ต่อไปนี้นอก for-loop:

print("คุณตอบ " + str(corrCount) + " ของ " + str(len(qaList)) + " คำถามถูกต้อง")

947361 14
947361 14

ขั้นตอนที่ 14. ตรวจสอบรหัสของคุณ

ให้ความสนใจเป็นพิเศษกับการเยื้อง รหัสที่สมบูรณ์ของคุณควรมีลักษณะดังนี้:

นำเข้าคลาสสุ่ม QA: def _init_(ตัวเอง คำถาม แก้ไขคำตอบ คำตอบอื่น ๆ): self.question = คำถาม self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA("มินสค์อยู่ที่ไหน", "ในเบลารุส", ["ในรัสเซีย", "ไม่มีเมืองแบบนี้"]), QA("เมืองหลวงของออสเตรเลียคืออะไร", "แคนเบอร์รา", ["ซิดนีย์", "นิวยอร์ก", "ไม่มีออสเตรเลีย"]), QA("ข้อใดต่อไปนี้ไม่อยู่บนโลก", "ทะเลแห่งความเงียบสงบ", ["ทะเลเมดิเตอร์เรเนียน", "ทะเลบอลติก", "ทะเลเหนือ"]), QA("ข้อใดต่อไปนี้ไม่ใช่ ทวีป?", "อาร์กติก", ["แอนตาร์กติกา", "อเมริกา"]), QA("ข้อใดต่อไปนี้ไม่ใช่ประเทศในแอฟริกา", "มาเลเซีย", ["มาดากัสการ์", "จิบูตี", "ใต้ แอฟริกา", "ซิมบับเว"])] corrCount = 0 random.shuffle(qaList) สำหรับ qaItem ใน qaList: print(qaItem.question) print("คำตอบที่เป็นไปได้คือ:") เป็นไปได้ = qaItem.otherAnsw + [qaItem.corrAnsw] # วงเล็บเหลี่ยมเปลี่ยนคำตอบที่ถูกต้องลงในรายการเพื่อเชื่อมต่อกับรายการอื่น ๆ random.shuffle (เป็นไปได้) count = 0 # รายการดัชนีเริ่มต้นที่ 0 i n python while count < len(possible): print(str(count+1) + ": " + possible[count]) count += 1 print("Please enter the number of your answer:") userAnsw = input() ในขณะที่ไม่ใช่ userAnsw.isdigit(): print("นั่นไม่ใช่ตัวเลข โปรดป้อนจำนวนคำตอบของคุณ:") userAnsw = input() userAnsw = int(userAnsw) ในขณะที่ไม่ใช่ (userAnsw > 0 และ userAnsw <= len(possible)): print("ตัวเลขนั้นไม่ตรงกับคำตอบใด ๆ โปรดป้อนหมายเลขคำตอบของคุณ:") userAnsw = input() ถ้าเป็นไปได้[userAnsw-1] == qaItem.corrAnsw: print("คำตอบของคุณถูกต้อง") corrCount += 1 อื่น ๆ: print("คำตอบของคุณคือ ผิด") print("คำตอบที่ถูกต้องคือ: " + qaItem.corrAnsw) print("") print("คุณตอบ " + str(corrCount) + " ของ " + str(len(qaList)) + " คำถามถูกต้อง ")

947361 15
947361 15

ขั้นตอนที่ 15. เรียกใช้รหัส

หากคุณใช้ IDE ให้คลิกที่สัญลักษณ์ "เรียกใช้" หรือรายการเมนู หากคุณกำลังใช้เท็กซ์เอดิเตอร์ ให้บันทึกโปรแกรมของคุณ ปิดตัวแก้ไข และเปิดโปรแกรมของคุณด้วย Python

เคล็ดลับ

  • ระวังการเยื้องที่ถูกต้อง โค้ดภายในฟังก์ชันหรือนิยามคลาสถูกเยื้อง เช่นเดียวกับโค้ดภายในลูป โปรแกรม Python ที่มีการเยื้องผิดจะไม่ทำงาน
  • กด Ctrl+C หากคุณต้องการหยุดเกมแต่เล่นไม่จบ
  • หากคุณแทนที่ทุก ๆ การเรียกของ input() ด้วยการเรียกของ raw_input() โปรแกรมนี้จะทำงานใน Python 2 แต่หยุดทำงานใน Python 3

แนะนำ: