אם אתה רוצה ללמוד Python, טוב להתחיל עם כמה משחקים פשוטים המבוססים על טקסט. מאמר זה יראה לכם כיצד ליצור משחק חידון.
צעדים
שלב 1. התקן את פייתון אם עדיין לא עשית זאת
ישנן שתי גרסאות עיקריות של Python: Python 2 ו- Python 3. הן אינן ניתנות להחלפה והתמיכה ב- Python 2 תסתיים בשנת 2020, כך שמאמר זה יניח שתתקין את Python 3.
שלב 2. פתח קובץ חדש בעורך טקסט או ב- Python IDE שלך
תן לו שם תיאורי שמסתיים ב-.py.
שלב 3. ייבא את הספרייה האקראית
תזדקק לזה כדי לסדר באופן אקראי את התשובות האפשריות.
שלב 4. הגדר מחלקה "QA"
"QA" יכלול שאלה ותשובה נכונה, ורשימת תשובות אפשריות אחרות. הפונקציה _init _ () תקרא בכל פעם שאתה יוצר אובייקט QA חדש עם הפונקציה QA (), כאשר הארגומנטים שלו מועברים לתכונה המתאימה. סוּג:
class QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers
שלב 5. צור רשימה של QAs
חשוב על כמה שאלות עם תשובה אחת נכונה וכמה תשובות לא נכונות. צור אובייקטים מסוג QA והכנס אותם לרשימה. מכיוון שהרשימה תהיה ארוכה למדי, אתה יכול לפרוץ אותה על פני מספר שורות לקריאה טובה יותר. כל זה נעשה עם הקוד הבא (הטקסט שלך יכול להיות שונה):
qaList = [QA ("איפה מינסק?", "בבלרוס", ["ברוסיה", "עיר כזו לא קיימת"]), QA ("מהי בירת אוסטרליה?", "קנברה", ["סידני", "ניו יורק", "אוסטרליה לא קיימת"]), QA ("איזה מהבאים אינו על כדור הארץ?", "ים של שלווה", ["ים תיכוני", "ים הבלטי "," הים הצפוני "]), QA (" איזו מהבאים אינה יבשת? "," ארקטיקה ", [" אנטארקטיקה "," אמריקה "]), QA (" איזו מהבאים אינה מדינה אפריקאית ? "," מלזיה ", [" מדגסקר "," ג'יבוטי "," דרום אפריקה "," זימבבואה "])]
שלב 6. הוסף משתנה הסופר כמה תשובות היו נכונות
הגדר אותו לאפס בהתחלה. הוסף את השורה:
corrCount = 0
שלב 7. ערבב את רשימת QA
זה יגרום לשאלות שלך להופיע בסדר אקראי. זה נעשה עם הפונקציה הבאה:
random.shuffle (qaList)
שלב 8. צור לולאה
התוכנית צריכה לעבור על כל פריט ברשימה ולעשות איתה משהו. צור לולאה כזו עם הביטוי הזה:
עבור qaItem ב- qaList:
שלב 9. פלט כל שאלה
לאחר ביטוי הלולאה, כתוב את השורה:
הדפס (qaItem.question)
שלב 10. פלט את כל התשובות האפשריות
הם צריכים להופיע בסדר אקראי, כך שהתשובה הנכונה לא תמיד נמצאת באותה מיקום. כמו כן, יש להקדים אותם במספר כך שהמשתמש לא יצטרך להזין את התשובה כולה שוב. הקוד הבא עושה זאת:
הדפס ("תשובות אפשריות הן:") אפשרי = qaItem.otherAnsw + [qaItem.corrAnsw] # סוגריים מרובעים הופכים את התשובה הנכונה לרשימה לשילוב עם רשימה אחרת random.shuffle (אפשרי) ספירה = 0 # אינדקס רשימה מתחילים ב -0 בפייתון while count <len (אפשרי): הדפס (str (count + 1) + ":" + אפשרי [count]) count + = 1
שלב 11. קח את קלט המשתמש
ראשית, אמור למשתמש שעליו להזין את מספר שלו. לאחר מכן, בדוק אם מה שהמשתמש הכניס הוא באמת מספר המתכתב עם תשובה. אם לא, דווח על כך שוב למשתמש. השתמש בקוד זה (מחוץ ללולאת ה- while שיצרת עבור הפלט):
print ("אנא הכנס את מספר התשובה שלך:") userAnsw = input () בעוד לא userAnsw.isdigit (): print ("זה לא היה מספר. אנא הזן את מספר התשובה שלך:") userAnsw = input () userAnsw = int (userAnsw) בעוד לא (userAnsw> 0 ו- userAnsw <= len (אפשרי)): print ("מספר זה אינו תואם כל תשובה. אנא הכנס את מספר התשובה שלך:") userAnsw = input ()
שלב 12. בדוק אם התשובה של המשתמש הייתה נכונה
לשם כך, קבל את הטקסט של התשובה שלשמה הזן המשתמש מספר והשווה אותו עם הטקסט של התשובה הנכונה. אם הם זהים, התשובה של המשתמש הייתה נכונה וצריך להגדיל את המשתנה corrCount ב- 1. אחרת, זה לא נכון ולספר למשתמש את התשובה הנכונה. לבסוף, הדפס שורה ריקה כדי להוסיף קצת מקום לשאלה הבאה. הזן את הקוד הבא:
אם אפשר [userAnsw-1] == qaItem.corrAnsw: print ("התשובה שלך הייתה נכונה.") corrCount + = 1 אחר: print ("התשובה שלך הייתה שגויה.") print ("התשובה הנכונה הייתה:" + qaItem. corrAnsw) הדפס ("")
שלב 13. פלט מסקנה
בסופו של דבר, המשתמש כנראה רוצה לדעת כמה שאלות הוא קיבל נכון. אז ספר להם על ידי הוספת הביטוי הבא מחוץ ללולאה:
print ("ענית" + str (corrCount) + "מתוך" + str (len (qaList)) + "שאלות נכון.")
שלב 14. בדוק את הקוד שלך
שימו לב במיוחד לכניסה. הקוד המלא שלך אמור להיראות כך כעת:
ייבא QA מחלקה אקראית: def _init _ (self, question, correctAnswer, otherAnswers): self.question = 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 (אפשרי): print (str (count + 1) + ":" + אפשרי [count]) count + = 1 print ("אנא הכנס את מספר התשובה שלך:") userAnsw = input () אמנם לא userAnsw.isdigit (): print ("זה לא היה מספר. אנא הזן את מספר התשובה שלך: ") userAnsw = input () userAnsw = int (userAnsw) ואילו לא (userAnsw> 0 ו- userAnsw <= len (אפשרי)): print (" מספר זה אינו תואם כל תשובה. אנא הזן את מספר התשובה שלך: ") userAnsw = input () במידת האפשר [userAnsw-1] == qaItem.corrAnsw: print (" התשובה שלך הייתה נכונה. ") CorrCount += 1 else: print (" התשובה שלך הייתה שגוי. ") print (" התשובה הנכונה הייתה: " + qaItem.corrAnsw) הדפס (" ") הדפס (" ענית " + str (corrCount) +" של " + str (len (qaList)) +" שאלות נכון. ")
שלב 15. הפעל את הקוד
אם אתה משתמש ב- IDE, לחץ על הסמל "הפעל" או על פריט התפריט. אם אתה משתמש בעורך טקסט, שמור את התוכנית שלך, סגור את העורך ופתח את התוכנית באמצעות Python.
טיפים
- היזהר מהכניסה הנכונה. קוד בתוך פונקציה או הגדרת מחלקה מוכן, כמו גם קוד בתוך לולאה. תוכנית Python עם הזחה לא נכונה לא תעבוד.
- הקש Ctrl+C אם ברצונך להפריע למשחק ולא לסיים אותו.
- אם תחליף כל קריאת קלט () בקריאה של raw_input (), תוכנית זו תעבוד ב- Python 2, אך תפסיק לעבוד ב- Python 3.