שונטל קומבט finish him

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

ולשאלה, כיוון שאני אמור ליצור מופע לכל שחקן, שחקן הוא self בפני עצמו:

player1.name = DragonSlayer
player2.name = Mr.ButterFly

ולכן כיוון שאני לא יכול להתייחס לשחקן לפי השם שלו ( Mr_ButterFly.attack('DragonSlayer) ), האם אני יכול להתייחס לשמות בהתאם כך:

player1.nemeses = [player2.name, player3.name, player4.name] וכן הלאה…
for name in player1.nemeses:
if opponent == name:
opponent = player

הכוונה היא שעפ"י השם של המופע אוכל למצוא את המופע)

ובמידה וכן, א. האם אני קובע לכל משתמש אויבים לפי רצוני (לאחד אין, לשני אחד או שניים לשלישי כולם וכן הלאה), וב. עפ"י הדוגמא שנתתי (ואשמח לשמוע הצעות אחרות אם היא לא מספיק יעילה), איך אני יכול לשלוף את playerX מ- playerX.name.

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

הפעולה לא מקבלת שם אלא אובייקט


(זה אמור לסייע לך בפתרון השאלה)

מוודא, הפעולה תקבל לדוגמא:

player1.attack(player3)

נכון :slightly_smiling_face:

לייק 1

מנצל את הפוסט לעוד שאלה, אני כבר אחרי התרגיל, אך שאלה על התיעוד של הפונקציה revive.
אני עובד עפ"י התיעוד של גוגל, ובמקרה של הפונקציה הזאת אין לי args, אין return וכיוון שהיא פועלת מתוך הפונקציה attack, אז גם אין לי raises (כי היא הרי עובדת על self.

אם כך, האם אני בכלל מתעד אותם? אם כן אז לרשום בשלושתם None?
בנוגע ל- raises: האם כיוון שהוא פועל רק מתוך הפונקציה attack אני יכול להניח שהוא לא יעלה שום התראה (בהתחשב בכך ש2 הפונקציות עובדות כראוי)?

נכון לעכשיו הזנתי רק את example, אז מה בנוגע לשאר?

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

5 לייקים

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

תגיד לי אתה מה אתה חושב ולמה :slight_smile:

לייק 1

יהיה הרבה יותר נוח אם זו תהיה רשימה של מופעים של אויבים אבל אינטואיטיבית זה נראה לי מוזר שחלק מהמאפיינים של שחקן יהיו מופעים של שחקנים אחרים. אולי אני צריך להקריב את האינטואיציה שלי על מזבח הנוחות…

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

לייק 1