משחקי טקסט פשוטים שתוכלו לשחק בשורת הפקודה הם פרויקטים נהדרים למתחילים.
האם יש לך מצב רוח לשחק משחק שכתבת בעצמך? ובכן, אתה במקום הנכון. Hangman הוא משחק ניחוש מילים פופולרי ואתה יכול ליצור גרסה משלך במינימום מאמץ.
המשחק הזה הוא בדרן מושלם, המוכר מתכניות משחקי טלוויזיה פופולריות וסדרות כמו Wheel of Fortune, Letterbox ו- Party Time. ו-Python היא שפה נוחה לשימוש כדי לבנות שיבוט לתליין.
איך לשחק את משחק התליין
Hangman הוא משחק ידוע שבו שחקן אחד חושב על מילה והשחקן השני מנסה לנחש אותה על ידי הצעת אותיות עם מספר קבוע של ניחושים. שחקן אחד (במקרה זה התוכנית) מציג רצף של מקפים המייצגים כל אות במילה, יחד עם תו כנקודת התחלה. השחקן השני (או המשתמש) מנחש את הדמויות הקיימות במילה, אחת אחת.
אם האות שהם מנחשים נמצאת במילת המטרה, התוכנית ממלאת את המקף בתו. אחרת, השחקן מאבד הזדמנות אחת, והתוכנית מציירת אלמנט של דמות מקל כמספר. בסך הכל שבע הזדמנויות, אם המשתמש מנחש נכון את המילה, הוא מנצח במשחק. אם לא, התוכנית משלימה את הציור של איש מקל.
אתה יכול ליצור רשימה של המילים האהובות עליך או להוריד לייק הרשימה של Mieliestronk הכוללת יותר מ-58,000 מילים באנגלית
. אתה יכול גם לחקור ולבנות משחקים מבוססי טקסט מהנים אחרים כגון משחק חידון אינטראקטיבי או א משחק הרפתקאות מבוסס טקסט בפייתון.איך לבנות את משחק התליין
קוד המקור של משחק Hangman זה, יחד עם קובץ רשימת המילים, קיים בזה מאגר GitHub והוא חופשי לשימוש.
ייבא את אַקרַאִי מודול ולהגדיר פונקציה, get_random_word_from_wordlist(), כדי לבחור מילה אקראית מהקובץ. קובץ הטקסט עשוי להכיל שמות עצם נפוצים, או שמות של מקומות, בעלי חיים, סרטים ועוד בהתאם לטעמך. הגדר רשימה באמצעות הסוגריים המלבניים([]).
להשתמש ב עם הצהרה כדי לפתוח את הקובץ ולהעביר את המצב כ 'ר' מציין מצב קריאה בלבד. זה דואג אוטומטית לסגירת הקובץ בסוף החסימה גם במקרים של שגיאות. אם אתה צופה ב hangman_wordlist.txt קובץ, תבחין שיש מילה אחת בכל שורה, כך שהקובץ מפריד כל מילה עם תו חדש.
העבר את דמות הבריחה לשורה חדשה (\n) אל ה לְפַצֵל() פונקציה לאחסון כל מילה ברשימה שהגדרת קודם לכן. להשתמש random.choice() כדי להחזיר מילה אקראית מהרשימה.
import random
defget_random_word_from_wordlist():
wordlist = []
with open("hangman_wordlist.txt", 'r') as file:
wordlist = file.read().split("\n")
word = random.choice(wordlist)
return word
לאחר מכן, הגדר פונקציה, get_some_letters(), שלוקח את המילה שנבחרה באקראי כפרמטר. פונקציה זו תציג רצף של מקפים ריקים (_) וכמה מכתבים למשתמש.
הגדר רשימה ריקה אותיות לאחסן את כל התווים הקיימים במילה. להשתמש ב טמפ' משתנה לאחסון מחרוזת המכילה את מספר המקפים הריקים השווים לאורך המילה. להשתמש רשימה() כדי להמיר את המחרוזת לרשימת תווים ולחזור עליה. להשתמש לְצַרֵף() כדי להוסיף את הדמות לרשימה אם עדיין לא קיים.
להשתמש random.choice() כדי לבחור דמות אקראית שאתה הולך להציג למשתמש יחד עם המקפים הריקים. חזור על תווי המילה באמצעות לִמְנוֹת כדי לעקוב אחר האינדקס של כל תו.
כאשר אתה מוצא את התו שנבחר באקראי, החלף בו את המקף הריק. להשתמש לְהִצְטַרֵף() כדי לאחד את רשימת התווים למחרוזת שלמה ולהחזיר אותה.
defget_some_letters(word):
letters = []
temp = '_' * len(word)
for char in list(word):
ifchar not in letters:
letters.append(char)
character = random.choice(letters)
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
return temp
הגדר פונקציה draw_hangman() שלוקח את מספר הסיכויים כפרמטר. פונקציה זו מספקת דמות של האיש התלוי. ככל שמספר הסיכויים ממשיך לרדת, כך גם סיכויי ההישרדות הולכים ופוחתים. כאשר מותשים, הדמות הושלמה והמשחק מסתיים.
defdraw_hangman(chances):
if chances == 6:
print("________ ")
print("| | ")
print("| ")
print("| ")
print("| ")
print("| ")
elif chances == 5:
print("________ ")
print("| | ")
print("| 0 ")
print("| ")
print("| ")
print("| ")
elif chances == 4:
print("________ ")
print("| | ")
print("| 0 ")
print("| / ")
print("| ")
print("| ")
elif chances == 3:
print("________ ")
print("| | ")
print("| 0 ")
print("| /| ")
print("| ")
print("| ")
elif chances == 2:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| ")
print("| ")
elif chances == 1:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / ")
print("| ")
elif chances == 0:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / \ ")
print("| ")
הכריז על פונקציה, start_hangman_game(), שמגדיר את ההיגיון העיקרי של התוכנית. קבל מילה אקראית על ידי קריאה ל- get_random_word_from_wordlist() פונקציה וקבל את הרצף שיוצג למשתמש באמצעות get_some_letters() פוּנקצִיָה.
הגדר את מספר הסיכויים לשבע ואתחול משתנה, מצאתי, כשקר. אתה תגדיר את זה ל נָכוֹן אם האות המנחשת קיימת במילה.
defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False
הכריז על לולאה שמסתיימת כאשר המשתמש מנחש את המילה נכונה או שנגמר לו הסיכויים. התחל את המשחק על ידי הצגת הרצף, מספר האותיות במילה והסיכויים שנותרו. בקש מהמשתמש לנחש מכתב ולקבל אותו באמצעות קֶלֶט() פוּנקצִיָה. אמת את קלט המשתמש על ידי בדיקת אורך התו והאם הוא אלפבית.
whileTrue:
if chances == 0:
print(f"Sorry! You Lost, the word was: {word}")
print("Better luck next time")
break
print(" Guess the word ")
print(temp, end='')
print(f"\t(word has {len(word)} letters)")
print(f"Chances left: {chances}")
character = input("Enter the character you think the word may have: ")
iflen(character) > 1 ornotcharacter.isalpha():
print("Please enter a single alphabet only")
continue
אם הקלט חוקי, בדוק אם התו קיים במילה והחלף אותו באמצעות התהליך שנראה קודם לכן ועדכן את הערך של found. אם הדמות אינה נוכחת, הפחיתו את מספר הסיכויים. אם קיים, החזר את הערך של נמצא לערך ההתחלתי false.
אם לא נותרו מקפים ריקים, הצג שהמשתמש זכה יחד עם מספר הניחושים שנלקחו אחרת הצג את גרפיקת התליין לפי מספר הסיכויים שנותרו.
else:
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
found = True
if found:
found = False
else:
chances -= 1
if'_' not in temp:
print(f"\nYou Won! The word was: {word}")
print(f"You got it in {7 - chances} guess")
break
else:
draw_hangman(chances)
print()
הגדר פונקציה למשחק התליין. אם המשתמש מזין כן, התקשר ל- start_hangman_game() פונקציה אחרת צא מהמשחק עם ההודעה המתאימה. במקרה של קלט לא חוקי בקשו מהמשתמש להיכנס שוב.
print(" Welcome to the Hangman Game ")
whileTrue:
choice = input("Do you wanna play hangman? (yes/no): ")
if'yes'in choice.lower():
start_hangman_game()
elif'no'in choice.lower():
print('Quitting the game...')
break
else:
print("Please enter a valid choice.")
print("\n")
הפלט של משחק התליין
תראה את הפלט הבא אם תנצח במשחק:
תראה את הפלט הבא אם תפסיד את המשחק:
השתמש ב-Python כדי לבנות משחקים
אתה יכול להשתמש ב-Python כדי לבנות משחקי שורת פקודה כמו גם משחקים גרפיים. כמה משחקי שורת פקודה מעניינים שתוכלו לבנות באמצעות Python כוללים את משחק ניחוש המספרים, משחק Magic 8 Ball, Mad Libs, Rock/Paper/Scissors ומשחק הרפתקאות טקסט.
כמה משחקים גרפיים מהנים שאתה עשוי לבנות עם פיתון כוללים Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. החלק הכי טוב במשחקים האלה הוא שאתה יכול לבנות אותם רק עם הספרייה הסטנדרטית של Python.