בדוק את היכולות הקוגניטיביות שלך על ידי בניית משחק אריחי זיכרון זה.

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

אז איך אתה יכול לפתח את המשחק המדהים הזה באמצעות Python?

ה-Tkinter והמודולים האקראיים

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

pip להתקין tkinter

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

כיצד לבנות את משחק אריח הזיכרון באמצעות Python

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

instagram viewer

התחל בייבוא ​​ה-Tkinter והמודול האקראי. אתחול חלון הבסיס והגדר את הכותרת והמידות בפיקסלים.

מ tkinter יְבוּא *
יְבוּא אַקרַאִי
מ tkinter יְבוּא תיבת הודעות

root = Tk()
root.title('משחק אריח זיכרון')
root.geometry("760x550")

הגדר שני משתנים גלובליים ואתחול המשתנה המנצח לאפס. הכריז על רשימה של פריטים שיופיעו על האריחים. סדר מחדש את הרשימה באמצעות המודולים האקראיים לְעַרְבֵּב() שיטה. הגדירו מסגרת בחלון השורש והוסיפו ריפוד של 10 בכיוון האנכי.

אתחול משתנה ספירה ל-0 והכריז על רשימת תשובות ומילון בהתאמה.

גלוֹבָּלִי מנצח, התאמות
מנצח = 0
התאמות = ["תפוח עץ","תפוח עץ","בננה","בננה", "תפוז","תפוז", "אוכמנית","אוכמנית","תוּת","תוּת", "ענבים","ענבים"]
random.shuffle (התאמות)
my_frame = מסגרת (שורש)
my_frame.pack (pady=10)
לספור = 0
answer_list = []
answer_dict = {}

הגדר פונקציה, אִתחוּל(). הגדר את הטקסט של התווית למחרוזת ריקה באמצעות ה- config() פוּנקצִיָה. הגדירו רשימת לחצנים, אחת לכל אחד מהאריחים. חזור על הרשימה והגדר את הטקסט על אריח הכפתורים למחרוזת ריקה, צבע הרקע לברירת מחדל (SystemButtonFace), והמדינה למצב נורמלי.

defאִתחוּל():
my_label.config (טקסט="")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
ל לַחְצָן ב button_list:
button.config (טקסט=" ", bg="SystemButtonFace", מצב="נוֹרמָלִי")

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

defלנצח():
my_label.config (טקסט="מזל טוב! ניצחת!")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
ל לַחְצָן ב button_list:
button.config (bg="#90EE90")

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

defbutton_click(ב, מספר):
גלוֹבָּלִי count, answer_list, answer_dict, winner
אם ב["טֶקסט"] == ' 'ו לספור < 2:
ב["טֶקסט"] = תואמים[מספר]
answer_list.append (מספר)
answer_dict[b] = תואמים[מספר]
לספור += 1

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

אם len (answer_list) == 2:
אם התאמות[answer_list[0]] == התאמות[answer_list[1]]:
my_label.config (טקסט="זה גפרור!")
ל מַפְתֵחַ ב answer_dict:
מַפְתֵחַ["מדינה"] = "נָכֶה"
לספור = 0
answer_list = []
answer_dict = {}
מנצח += 1
אם מנצח == 6:
לנצח()

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

אַחֵר:
לספור = 0
answer_list = []
messagebox.showinfo("לֹא נָכוֹן!", "לֹא נָכוֹן")
ל מַפְתֵחַ ב answer_dict:
מַפְתֵחַ["טֶקסט"] = " "
my_label.config (טקסט=" ")
answer_dict = {}

הגדר 12 כפתורים. הגדר את חלון האב שבו תרצה למקם אותם, את הטקסט שהם צריכים להציג, את סגנון הגופן שהם צריכים, את הגובה והרוחב שלהם ואת הפקודה לביצוע בעת לחיצה. זכור להשתמש בפונקציית lambda כדי להעביר את הנתונים ל- button_click() פוּנקצִיָה. הגדר את הֲקָלָה פרמטר ל חָרִיץ כדי ליצור אפקט עומק תלת מימדי סביב הכפתור.

b0 = לחצן (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b0, 0), הקלה="חָרִיץ")
b1 = לחצן (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b1, 1), הקלה="חָרִיץ")
b2 = לחצן (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b2, 2), הקלה="חָרִיץ")
b3 = כפתור (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b3, 3), הקלה="חָרִיץ")
b4 = לחצן (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b4, 4), הקלה="חָרִיץ")
b5 = לחצן (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b5, 5), הקלה="חָרִיץ")
b6 = לחצן (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b6, 6), הקלה="חָרִיץ")
b7 = לחצן (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b7, 7), הקלה="חָרִיץ")
b8 = Button (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b8, 8), הקלה="חָרִיץ")
b9 = לחצן (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b9, 9), הקלה="חָרִיץ")
b10 = לחצן (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b10, 10), הקלה="חָרִיץ")
b11 = לחצן (my_frame, text=' ', גופן=("הלבטיקה", 20), גובה=4, רוחב=8, פקודה=למבדה: button_click (b11, 11), הקלה="חָרִיץ")

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

b0.grid (שורה=0, עמודה=0)
b1.grid (שורה=0, עמודה=1)
b2.grid (row=0, עמודה=2)
b3.grid (row=0, עמודה=3)
b4.grid (שורה=1, עמודה=0)
b5.grid (שורה=1, עמודה=1)
b6.grid (שורה=1, עמודה=2)
b7.grid (שורה=1, עמודה=3)
b8.grid (שורה=2, עמודה=0)
b9.grid (שורה=2, עמודה=1)
b10.grid (שורה=2, עמודה=2)
b11.grid (שורה=2, עמודה=3)

הגדירו תווית המציגה מחרוזת ריקה והוסיפו ריפוד של 20 בכיוון האנכי. הגדר תפריט ברמה העליונה בחלון הבסיס וצרף אותו על ידי סיבוב ה- לתלוש פרמטר ל שֶׁקֶר. הוסף פריט בתפריט משנה, אפשרויות משתמש ב add_cascade פָּרָמֶטֶר.

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

my_label = תווית (שורש, טקסט="")
my_label.pack (pady=20)

my_menu = תפריט (שורש)
root.config (menu=my_menu)
option_menu = תפריט (my_menu, tearoff=שֶׁקֶר)
my_menu.add_cascade (תווית="אפשרויות", menu=option_menu)
option_menu.add_command (תווית="איפוס משחק", command=reset)
option_menu.add_separator()
option_menu.add_command (תווית="צא ממשחק", command=root.quit)

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

root.mainloop()

חבר את כל הקוד ביחד. כעת משחק אריחי הזיכרון מוכן להפעלה.

פלט של משחק אריח הזיכרון

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

בבחירת שני אריחים תואמים, הלחצנים נראים מושבתים והתווית מציגה שהבחירה נכונה.

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

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

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

Python מציעה מגוון מודולים לבניית משחקים. כדי ליצור משחקים פשוטים המבוססים על מילים או בחירה כגון Hangman, Tic-Tac-Toe, או Rock Paper Scissors, אתה יכול להשתמש במודולים Tkinter ו-Random. כדי לפתח משחקים שצריכים יותר גרפיקה, אתה יכול להשתמש ב-Pygame.

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