תכנות
—
שיעור 84
19/March/2009
SetGame
—
המשך
המשכנו לדון בפיתוח המשחק.
לחיצת כפתור על הלוח מטופלת באופן ראשוני בפונקציה
Board.event_callback(…)
אבל לאחר זיהוי הקלף, הטיפול מועבר לפונקציה:
SetGame.card_clicked(…)
מהטעמים הבאים:
-
אנו רוצים להקדיש את
class Board # (@board.py)
לציור ובחירה בלוח בלבד.
-
חוקי המשחק, והלוגיקה שלו אמורים להיות מיושמים ב
class SetGame # (@setgame.py)
תרגילים
-
השלם תרגילים קודמים.
-
הורד את הגירסא
setgame-2009-03-19-233717.tar.gz
מדף הגירסאות
והרץ.
-
שַלֵב ב
card.py
את הפונקציה
is_set(…)
מתרגיל של שעור קודם
.
-
בשלב זה הפונקציה
SetGame.card_clicked(…)
פשוט מְשָנַה את המצב selected של הקלף המוצבע בעת הלחיצה.
שנה את הפונקציה כך ש:
-
לא יהיו יותר מאשר 2 קלפים נבחרים בעת ובעונה אחת.
-
במצב של שני קלפים נבחרים, ונלחץ העכבר על קלף שלישי אחר, שלושת הקלפים ייבדקו
על-ידי הפונקציה
card.is_set(…).
אם הפונקציה תחזיר True אז הקלפים יוסרו מרשימת
active_cards.
אחרת, הקלף השלישי לא ייבחר, ותודפס הודעת טעות.
-
לפי הצורך, לבצע ציור מחדש של הלוח
(
gui.redraw()
).
-
למחוק מהפונקציה הערות הסבר לתרגיל זה, אם הן מיותרות או לא נכונות.
הצעה:
אפשר לבנות רשימה (זמנית?) של
selected_cards.
חזרה לעמוד האם