בנה את משחק הנומרולוגיה המהנה הזה ב-Python כדי לתרגל מניפולציה של מיתרים וללמוד על Tkinter.

FLAMES הוא משחק מהנה לילדים המייצג חברים, אוהבים, חיבה, נישואים ואויבים. המשחק לוקח שמות של שני אנשים, ובסדרה של צעדים, קובע את מערכת היחסים ביניהם. כדי לשחק FLAMES, רשום את השמות של שני האנשים, הסר את האותיות התואמות וקבל את ספירת הדמויות שנותרו.

חזור על אותיות המילה, FLAMES באמצעות הספירה והסר את האות הזו. לדוגמה, אם הספירה היא ארבע, הסר את האות M. הספירה מתחילה מ-E שוב. חזור על תהליך זה עד שתישאר אות אחת בלבד, המציינת את מצב הקשר.

מודול Tkinter

כדי לבנות את משחק FLAMES, תשתמש במודול Tkinter. Tkinter הוא מודול חוצה פלטפורמות, פשוט וידידותי למשתמש שבו אתה יכול להשתמש כדי ליצור ממשקי משתמש גרפיים במהירות. חלק מהיישומים שאתה יכול לבנות כמתחילים באמצעות Tkinter כוללים א נגן מוזיקה, לוּחַ שָׁנָה, כלי המרת משקל, וכן א משחק ערבוביות מילים.

כדי להתקין את tkinter במערכת שלך, הפעל את הפקודה הבאה בטרמינל:

pip להתקין tkinter

כיצד לבנות משחק FLAMES באמצעות Python

אתה יכול למצוא את קוד המקור של משחק FLAMES באמצעות Python כאן מאגר GitHub.

ייבא את מודול Tkinter. הגדר פונקציה, remove_match_char() שמקבל שתי רשימות כקלט. השתמש בלולאה מקוננת עבור כדי לחזור על שתי הרשימות. בדוק אם יש תו תואם; אם יש, הסר אותו משתי הרשימות וצור רשימה שלישית שמשרשרת את שתי הרשימות עם כוכבית ביניהן. הכוכבית משמשת כמפריד.

החזר את הרשימה השלישית יחד עם ההתאמה שנמצאה כ-True. במקרה שאין אותיות תואמות, החזר את הרשימה כפי שנוצרה למעלה.

מ tkinter יְבוּא *

defremove_match_char(רשימה1, רשימה2):
ל אני ב טווח (לן (רשימה1)):
ל י ב טווח (len (רשימה2)):
אם list1[i] == list2[j]:
c = list1[i]
list1.remove (c)
list2.remove (c)
list3 = list1 + ["*"] + רשימה2
לַחֲזוֹר [רשימה3, נָכוֹן]
list3 = list1 + ["*"] + רשימה2
לַחֲזוֹר [רשימה3, שֶׁקֶר]

הגדר פונקציה, tell_status(). אחזר את השם של האדם שהמשתמש הזין באמצעות ה- לקבל() שיטה בווידג'ט הכניסה. המר את כל האותיות לאותיות קטנות והסר רווחים ביניהן. המר את השם לרשימת תווים. חזור על זה עם השם של האדם השני והגדר את להמשיך משתנה ל נָכוֹן.

deftell_status():
p1 = Person1_field.get()
p1 = p1.lower()
p1.replace(" ", "")
p1_list = רשימה (p1)
p2 = Person2_field.get()
p2 = p2.lower()
p2.replace(" ", "")
p2_list = רשימה (p2)
להמשיך = נָכוֹן

עד שהערך של המשך נכון, התקשר ל- remove_match_char() פונקציה והעביר את שתי הרשימות שיצרת זה עתה. אחסן את הרשימה המשורשרת ואת סטטוס הדגל שהתקבל מהפונקציה. מצא את האינדקס של הכוכבית שהוספת וחתך את המחרוזות לשתי רשימות לפניה ואחריה.

ספור את מספר הדמויות בשתי הרשימות והגדר רשימה המאחסנת את הסטטוסים השונים שיכולים להיות לזוגיות לפי משחק FLAMES.

בזמן להמשיך:
ret_list = remove_match_char (p1_list, p2_list)
con_list = ret_list[0]
להמשיך = ret_list[1]
star_index = con_list.index("*")
p1_list = con_list[: star_index]
p2_list = con_list[כוכב_אינדקס + 1:]

count = len (p1_list) + len (p2_list)
תוצאה = ["חברים", "אהבה", "אַהֲבָה", "נישואים", "אוֹיֵב", "אחים"]

עד שהאותיות ברשימת התוצאות אינן אפס, אחסן את ערך האינדקס מהמקום שבו אתה צריך לבצע את החיתוך. אם האינדקס גדול או שווה לאפס, חלק את הרשימות לשני חלקים ואחסן את המחרוזת המשורשרת כשהחלק הימני נוסף ראשון לפי הסדר. זה מבטיח שאתה יכול לספור נגד כיוון השעון.

הכנס את התוצאה לשדה הסטטוס במיקום התו הראשון כדי להציג את מצב הקשר.

בזמן לן (תוצאה) > 1:
split_index = (ספירה % len (תוצאה) - 1)

אם split_index >= 0:
right = result[split_index + 1:]
שמאל = תוצאה[: split_index]
תוצאה = ימין + שמאל
אַחֵר:
תוצאה = תוצאה[: לן (תוצאה) - 1]

Status_field.insert(0, תוצאה[0])

הגדר פונקציה, clear_all(). השתמש בפונקציה delete() מהאינדקס הראשון עד האחרון בשלושת שדות הכניסה כדי לנקות את התוכן המוצג על המסך. השתמש בשיטת focus_set() בשדה הכניסה הראשון כדי להפעיל ולציין את המשתמש להזין בו ערכים.

defברור_הכל():
Person1_field.delete(0, END)
Person2_field.delete(0, END)
Status_field.delete(0, END)
Person1_field.focus_set()

אתחול המופע של Tkinter והצג את חלון הבסיס על ידי העברתו למחלקה. הגדר את צבע הרקע לבחירתך, את הגודל ואת הכותרת של היישום שלך.

root = Tk()
root.configure (background='#A020F0')
root.geometry("700x200")
root.title("משחק FLAMES")

הגדר שלוש תוויות לציון שני האנשים ומצב היחסים שלהם. הגדר את חלון האב שבו תרצה למקם אותם, את הטקסט שהוא אמור להציג, את צבע הגופן, צבע הרקע וסגנונות הגופן. הוסף קצת ריפוד בכיוון האופקי.

label1 = תווית (שורש, טקסט="שם 1:", fg='#ffffff',bg='#A020F0', גופן=("אריאל",20,"נוֹעָז"), padx='20')
label2 = תווית (שורש, טקסט="שם 2:", fg='#ffffff',bg='#A020F0', גופן=("אריאל",20,"נוֹעָז"), padx='20')
label3 = תווית (שורש, טקסט="סטטוס מערכת יחסים: ", fg='#ffffff', bg='#A020F0',font=("אריאל",20,"נוֹעָז"), padx='20')

השתמש במנהל הרשת כדי לסדר את שלושת הווידג'טים בעמודה הראשונה. הצב את התווית הראשונה בשורה השנייה, התווית השנייה בשורה השלישית, והתווית השלישית בשורה הרביעית.

label1.grid (שורה=1, עמודה=0)
label2.grid (שורה=2, עמודה=0)
label3.grid (שורה=4, עמודה=0)

הגדר שלושה ווידג'טים של כניסה כדי לקבל את הערכים של שני האנשים ולהציג את הסטטוס שלהם. הגדר את חלון האב שבו ברצונך למקם את הווידג'טים ואת סגנונות הגופנים שהוא צריך להיות.

Person1_field = Entry (root, font=("אריאל", 15, "נוֹעָז"))
Person2_field = Entry (root, font=("אריאל", 15, "נוֹעָז"))
Status_field = כניסה (שורש, גופן=("אריאל",15,"נוֹעָז"))

באופן דומה, השתמש במנהל הרשת כדי לארגן את הווידג'טים בעמודה השנייה. להשתמש ב ipadx מאפיין כדי להגדיר את מספר הפיקסלים לרפד בתוך גבולות הווידג'ט.

Person1_field.grid (row=1, עמודה=1, ipadx="50")
Person2_field.grid (row=2, עמודה=1, ipadx="50")
Status_field.grid (שורה=4, עמודה=1, ipadx="50")

הגדר שני כפתורים, שלח ו ברור. הגדר את חלון האב שבו תרצה למקם אותם, את הטקסט שהוא צריך להציג, את צבע הרקע, את צבע הגופן, את הפונקציות שהם צריכים להפעיל בעת לחיצה וסגנונות הגופן.

השתמש במנהל הרשת כדי למקם את הכפתורים בשורה הרביעית והשישית של העמודה השנייה בהתאמה.

button1 = לחצן (שורש, טקסט="שלח", bg="#00ff00", fg="שָׁחוֹר", command=tell_status, font=("אריאל",13,"נוֹעָז") )
button2 = לחצן (שורש, טקסט="ברור", bg="#00ff00", fg="שָׁחוֹר", command=clear_all, font=("אריאל",13,"נוֹעָז"))
button1.grid (שורה=3, עמודה=1)
button2.grid (שורה=5, עמודה=1)

ה mainloop() הפונקציה אומרת לפייתון להפעיל את לולאת האירועים של Tkinter ולהקשיב לאירועים עד שתסגור את החלון.

root.mainloop()

חבר את כל הקוד יחד, והתכונן לשחק במשחק FLAMES בקצות אצבעותיך.

פלט לדוגמה של משחק FLAMES

בהפעלת התוכנית למעלה, התוכנית מציגה את אפליקציית המשחק FLAMES עם שלוש תוויות, שלושה שדות כניסה ושני לחצנים מסודרים ברשת. בהזנת השמות "טוני סטארק" ו"פפר פוטס", התוכנית מציגה את מצב היחסים שלהם כ"אהבה".

משחקים שאתה יכול לבנות באמצעות Python

Pygame, Arcade, Panda3D, PyOpenGL ו-Pyglet הם כמה מודולים שימושיים שאפשר לבנות איתם משחקי Python. באמצעות Pygame תוכלו לבנות משחקי 2D כמו Super Mario Bros, Flappy Bird ו-Snake. באמצעות Arcade אתה יכול לבנות שיבוט של Pac-Man, Asteroids, או Breakout.

Panda3D יכול לעזור לך לבנות משחקי תלת מימד כמו Toontown Online, Pirates of the Caribbean Online וממלכת הקסם הווירטואלית של דיסני.