עם מוערך של 2.5 מיליארד אוהדים, קריקט הוא אחד מענפי הספורט הגדולים והפופולריים בעולם. בהודו לבדה, קריקט שווה עצום של 5.3 מיליארד דולר. סאצ'ין טנדלקר, דונלד ברדמן, בריאן לארה ו-MS Dhoni הם רק כמה אגדות ששמותיהן חיים בלבם של מיליונים.
אין זה מפתיע שקריקט מצא את דרכו למציאות מדומה, למשחקי וידאו ולווריאציות אחרות כמו קריקט ספרים וידיים. קח את המשחק הזה צעד אחד קדימה על ידי בניית משחק קריקט יד באמצעות Python.
מה זה קריקט יד?
קריקט יד הוא משחק בו שני משחקים מתחרים זה בזה באמצעות האצבעות שלהם. בכל תור, שני השחקנים מציגים מספר באמצעות האצבעות בו-זמנית. אם התוצאות תואמות, החובט בחוץ, אחרת הם מקבלים את המספר שלהם בריצות. לבסוף, השחקן שקולע הכי הרבה מנצח במשחק.
אתה יכול לבנות את המשחק הזה ולשחק אותו גם מול מחשב. במקום להושיט אצבעות כדי לייצג את הציון, אתה מכניס אותו לתוכנית. Python היא אחת השפות הקלות והנוחות ביותר לשימוש. אם אין לך ניסיון קודם בשימוש ב- Python, תוכל להתעדכן בכל אחד מאלה קורסי Python מקוונים בחינם למתחילים.
ברגע שאתה לומד את היסודות, מומלץ לבנות מיני-פרויקטים ומשחקים כדי לבסס את הלמידה שלך. אתה יכול להתחיל בבניית שעון דיגיטלי, הטלת קוביות, חידון או מונה מילים. אתה יכול גם לקבל השראה מאלה רעיונות לפרויקט Python למתחילים.
כיצד לבנות משחק קריקט יד באמצעות פייתון
אתה יכול למצוא את קוד המקור של Hand Cricket Using Python כאן GitHub מאגר.
ייבא את הספרייה האקראית, הנדרשת להטלה הראשונית ולבחירות המחשב. הגדר פונקציה בשם input_num שמקבלת שני טיעונים, דקה ו מקסימום בהתאמה כדי לאמת את הקלט של המשתמש. משתמש ב קֶלֶט() פונקציה, אחסן את המספר שהמשתמש מכניס למשתנה מספר, והעבר אותו מהסוג המחרוזת המוגדר כברירת מחדל לסוג מספר שלם באמצעות int().
אם המספר שהמשתמש מזין גדול מהמגבלה המקסימלית או קטן מהמגבלה המינימלית, בקש מהמשתמש להזין בחירה חוקית על ידי קריאה רקורסיבית לפונקציה. אם המספר נמצא בטווח, החזר אותו.
יְבוּא אַקרַאִי
definput_num(מינימום מקסימום):
num = int (input())
אם מספר > מקסימום אוֹ מספר < דקות:
הדפס("הזן בחירה חוקית")
לַחֲזוֹר input_num (מינימום, מקסימום)
אַחֵר:
לַחֲזוֹר מספר
הגדר פונקציה סיבובים שמקבל את החובט הנוכחי ואת הריצות למרדף כטיעוני קלט. בקש מהמשתמש להזין מספרים בטווח של אחד עד שש. על פי כללי קריקט יד, אם גם המשתמש וגם המחשב בוחרים באותו מספר, החובט הנוכחי בחוץ.
אתחול משתנה סה"כ לאחסן את סך כל הריצות שכבש חובט ולהגדיר אותו לאפס. להתחיל אינסוף בזמן לולאה והתקשר ל input_num() פונקציה לאחסן ולאמת את הקלט של המשתמש. השתמש במודול האקראי randint() פונקציה לבחירת מספר אקראי בין אחד לשש עבור המחשב.
הצג את האפשרויות של שני השחקנים, ולאחר מכן בדוק אם הם שווים. אם כן, הצג שהחובט בחוץ והחזיר את סך כל הריצות שהם קלעו באותו סיבוב.
אחרת, בדוק מי חובט והוסף את הערך המתאים לתוצאה הכוללת pnum אוֹ cnum. הצג את התוצאה הנוכחית של החובט.
במקרה של הסיבוב השני, אתה רוצה לבדוק אם החובט כבר כבש את התוצאה של היריבה. כדי לעשות זאת, בדוק אם ה לרדוף הערך אינו ריק ואם הניקוד של החובט גדול יותר. אם כן, החזר את ניקוד הניצחון שלהם.
defסיבובים(חובט, לרדוף):
הדפס("הזן מספרים בין 1 ל-6. אם שניכם בוחרים באותו מספר אז " + חובט + " זה בחוץ")
סך הכל = 0בזמןנָכוֹן:
pnum = input_num(1, 6)
cnum = random.randint(1, 6)הדפס("המשתמש בחר", pnum)
הדפס("המחשב בחר", cnum)
אם pnum == cnum:
הדפס (חובט + " זה בחוץ")
לַחֲזוֹר סה"כ
אַחֵר:
סה"כ = סה"כ + (pnum אם חובט == "מִשׁתַמֵשׁ"אַחֵר cnum)
הדפס (חובט + "ציון הוא", סה"כ)
אם לרדוף הואלֹאאף אחדו total > to_chase:
לַחֲזוֹר סה"כ
הצג את ההודעה להטלה ואמת את בחירת המשתמש באמצעות ה input_num() פוּנקצִיָה. לזרוק את המטבע ולאחסן את התוצאה במשתנה מַטְבֵּעַ. אתחל את ערך ברירת המחדל של שחקן_קערות לשווא. אם הטלת המטבע תואמת את בחירת המשתמש, המשתמש זוכה בהטלה ובוחר בין חבטות לבאולינג.
קחו את בחירת המשתמש ובדקו אם הוא הזין אחד. אם כן, הערך את הביטוי לאמיתי ואחסן ב- שחקן_קערות מִשְׁתַנֶה. הצג את בחירת המשתמש. מצד שני, אם המחשב ניצח בהטלה, בצע randint() ולהעריך את הערך המתאים ל שחקן_קערות.
הצג את בחירת המחשב והתחל את הסיבובים.
הדפס("זמן לזרוק, הזן 0 עבור ראשים ו-1 עבור זנבות")
בחירה = input_num(0, 1)
coin = random.randint(0, 1)
player_bowls = שֶׁקֶראם מטבע == בחירה:
הדפס("ניצחת בהשלכה")
הדפס("בחר 0 לחבוט, 1 לקערה")
player_bowls = input_num(0, 1) == 1אם שחקן_קערות:
הדפס("בחרת לקערה")
אַחֵר:
הדפס("בחרת לחבוט")
אַחֵר:
הדפס("המחשב ניצח בהטלה")
player_bowls = random.randint(0, 1) == 1
אם שחקן_קערות:
הדפס("המחשב בחר לחבוט")
אַחֵר:
הדפס("המחשב בחר לקערה")
אם שחקן_קערות נכון, המחשב חובט ראשון ולהיפך. חשב את הריצות שהושגו בסיבוב באמצעות הפונקציה שהגדרת קודם לכן. הפונקציה דורשת את שמו של החובט הנוכחי ואת הריצות כדי לרדוף. כשהחובט הראשון קובע את התוצאה, הפוך אותו לפרמטר אופציונלי ועבור אף אחד. לסיבוב השני, עברו את התוצאה של החובט שקבע את המטרה.
אם שחקן_קערות:
comp_score = innings("מַחשֵׁב", אף אחד)
user_score = innings("מִשׁתַמֵשׁ", comp_score)
אַחֵר:
user_score = innings("מִשׁתַמֵשׁ", אף אחד)
comp_score = innings("מַחשֵׁב", ציון_משתמש)
אם המחשב מקבל ציון נמוך מהמשתמש, המשתמש מנצח, ולהיפך. במקרה שהציונים זהים, הצג תיקו.
אם comp_score < user_score:
הדפס("המשתמש מנצח")
אליף user_score < comp_score:
הדפס("המחשב מנצח")
אַחֵר:
הדפס("הגרלת משחק")
חבר את כל הקוד יחד והתכונן לשחק קריקט ידני בכל עת ובכל מקום ממש בקצות אצבעותיך.
הפלט של קריקט יד באמצעות פייתון
אתה יכול לראות את הפלט של משחק קריקט ידני באמצעות Python באופן הבא:
כאשר אתה מפעיל את התוכנית, התוכנית מבקשת ממך לבחור בחירה להטלה ומקצה את התוצאה המתאימה. אם אתה מנצח, אתה יכול להחליט אם אתה רוצה לחבוט או לשחק, אחרת המחשב יחליט. כל סיבוב נמשך עד שהמספרים תואמים ואחד בחוץ. בסופו של דבר, המחשב משווה את הציון הסופי ומכריז על הזוכה.
משחקים מבוססי טרמינלים ב- Python
בניית משחקים היא דרך מדהימה ללמוד Python והיא מהנה מאוד. אתה לא צריך להיות מומחה כדי להתחיל בקידוד ולהתנסות ב-Python. רק עם היסודות הנכונים, אתה יכול לבנות כמה משחקי מסוף מדהימים.
התחל בבניית כדור הקסם 8, התליין, מספרי נייר רוק, מחולל Mad Libs ומשחק ניחוש המספרים. ככל שתתקדם הלאה, חקור את ספריית PyGame כדי לבנות גם משחקי וידאו גרפיים משלך.