![]() |
.. (לתיקייה המכילה) | |
האם מותר לנו להשתמש בכל STL?
| כן |
האם ניתן להשתמש בחופשיות בstd::shared_ptr במהלך התרגיל? או שיש להשתמש בו רק אם לא ניתן להשתמש בstd::unique_ptr וצריך עבור הshared הצדקה מסויימת?
|
בכל מקרה בו ניתן להשתמש ב-unique_ptr (כלומר ישנה בעלות יחידה על האובייקט), יש להשתמש ב-unique_ptr ולא ב-shared_ptr . שימוש ב-shared_ptr במצב זה הוא תכן לא נכון, מהווה מקור לבאגים, ואינו יעיל. החומר נלמד בהרצאות וישנה חשיבות בהבחנה בין shared_ptr ו-unique_ptr. אנחנו מצפים שתקפידו על הנושא. |
במקרה שגם שם השחקן וגם שם הדמות שהוקלדו לא נכונים, עלינו להדפיס את 2 השגיאות או רק את השגיאה של השם כי היא נבדקת קודם?
|
כמו שכתוב במסמך, יש לבדוק אם השם לא תקין ולאחר מכן לבדוק את סוג הדמות. אם השם לא תקין, אז מדפיסים printInvalidName מבלי לבדוק את הסוג. |
האם אפשר לשנות את הקובץ Mtmchkin.h?
|
מותר לשנות את mtmchkin.h. אך אסור לשנות את הממשק הפומבי של mtmhckin שנתון לכם. (פרט למחיקת בנאי העתקה ואופרטור השמה) ניתן להוסיף שדות למחלקה, מתודות עזר פרטיות משלכם, includeים שונים למימוש, וכדומה. |
אפשר להשתמש ב auto ?
| לא |
האם ניתן ליצור שחקן "כללי" שהוא לא אחת מהדמויות?
| לא |
האם מותר להוסיף שדות למחלקה player (מעבר למה שמוגדר ב2.2.1)?
| כן |
האם מותר להוסיף קבצים המכילים מחלקות חדשות בנוסף למחלקות שהוגדרו במסמך?
| כן |
האם חריגות שאני מגדיר ל Player צריכות להיות מוגדרות ב Player.h או שצריכות להיות מוגדרות ב Exception.h?
האם מותר לעשות "include "../Exception.h?
| כל החריגות אמורות להיות בקובץ Exception.h. ומותר לעשות include יחסי. |
למה בMtmchkin.h מקבלים ארגומנטים מטיפוס string במקום std::string?
| טעות. תוקן. תזכורת: אסור לעשות using בקבצי האדר. |
האם לשחקנים שונים יכול להיות ערך maxHP שונה?
| ה-HP המקסימלי האפשרי לכולם הוא 100 |
בהנחיות לכתיבת התכן ציינתם שאין צורך לכלול מחלקות המאפיינות collections. מה הכוונה ב- מחלקות המאפיינות collections ?
|
הכוונה ב-collections היא מבני נתונים שמשתמשים בהם בפתרון (קראו לזה data structions בהרצאות). דוגמה לזה היא וקטור, רשימה מקושרת, תור וכו... |
מה לעשות במצב בו שחקן מבקש לקנות נקודות חיים מקלף הסוחר אבל יש לו נקודות חיים מלאות?
האם לאפשר את התשלום ולא לשנות את נקודות החיים או למנוע מראש את התשלום?
| לאפשר את התשלום ולא לשנות את נקודות החיים |
האם יש מצב שנקבל שם שחקן בגודל אפס?
|
לא ייבדק מקרה כזה. |
בעת הפסד לערפד מאבדים יחידת כוח אחת כאשר הכוח של השחקן הוא 0, מה צריך לעשות?
|
אז נשאר 0 ולא יורד יותר. |
בקובץ utilities יש שימוש באופרטור >> של player אבל בתרגיל לא כתוב שצריך לממש אותו (לא חובה), האם צריך לממש אותו או שזו טעות ב utilities ?
| צריך לממש אותו |
האם אפשרי לעשות תקייה בתוך תקיית cards או שזה בעייתי מבחינת ההגשה?
| בעייתי מבחינת ההגשה. יש להגיש במבנה שנתנו לכם. |
לאן אנחנו אמורים לשייך את השימושים של הדפסת פרטי הקלף, האם זו העמסת אופרטור כלשהי?
| כן, העמסת אופרטור הדפסה. |
1. האם אפשר/צריך/מותר לשנות את היוטיליטיז?
2. האם צריך להגיש אותו גם אם אנחנו משתמשים בו?
3. האם לא מגישים אותו וניתן להשתמש בו ופשוט אצלכם הוא קיים כפי שהוא, ולכן אם נשנה אותו אז זה יצור בעיות בהגשה?
|
1. לא 2. לא 3. בדיוק. |
האם ניתן להניח בקריאת ה deck מהקובץ ש:
א. אין שורות ריקות
ב. יש מילה אחת בדיוק בכל שורה, והיא ללא רווחים לפניה ואחריה.
ג. ישנה מילה אחת בשורה והיא המילה הראשונה בלבד(האם להשוות למילה הראשונה בשורה או לכל השורה?)
1. אם יש שורות ריקות פשוט לדלג עליהם(עד לקריאת 6 קלפים לכל היותר)?
2. אם יש יותר מ6 קלפים לזרוק חריגה?
3. אם יש שם שהוא אינו קלף האם לדלג עליו או לזרוק חריגה?
|
א. לא ב.לא ג. לא 1. לא, צריך לזרוק חריגה של פורמט לא תקין. 2. לא, כמות הקלפים לא מוגבלת מלמעלה, רק מלמטה - יותר מ5 קלפים. 3. חריגה |
בחלק מפונקציות ההדפסה של הקלפים, יש דבר שלא ברור לי אם הוא במכוון או בטעות.
חלק מהפונקציות מדפיסות הישר ל- cout ובפרט הפונקציה: printMerchantInsufficientCoins מקבלת רפרנס ל-ostream אך לא משתמשת בו ומדפיסה ל-cout במקום. מכך הסקתי שכנראה קיימת לפחות בעיה אחת אך לא ברור לי מהי.
באילו מהפונקציות הדפסה של קלפים ב-utillities ההדפסה צריכה להיות ל-cout ובאילו אמור להתקבל סטרים הדפסה אליו יודפס הטקסט?
|
בכל מקום צריך להדפיס לcout. החוסר אחידות בפורמט של הפונקציות הדפסה נובע מטעות שלנו. תעבירו cout בתור ה-ostream. |
מותר להשתמש בפונקציות של string כמו length למשל?
|
כן ברור. בקשה מכל מי שקורא את זה: מותר להשתמש בstl. לא צריך לשאול אותנו על כל מתודה/פונקציה/מחלקה בSTL. |
can we use queue in the standard library or we should use the queue that we implemented in ex3?
| מה שאתם מעדיפים |
is it possible to get two players with the same name ?
| כן |
כאשר זורקים DeckFileFormatError צריך להתייחס למספר השורה שבה הייתה שגיאה. מספור השורות מתחיל מ0 או מ-1? כלומר, השורה הראשונה בקובץ היא שורה 0 או שורה 1?
| השורה ראשונה היא שורה 1. |
תואר בשאלה שעבור שחקנים מסוג שונה אז יש להם יכולות שונים.
האם צריך להתחשב בזה עבור תחילת המשחק? לדוגמא, שחקן מסוג ROGUE "מכייס" פי 2 את כמות המטבעות במשחק. זה אומר שהוא אמור להתחיל עם 20 מטבעות כשיוצרים את השחקן?
|
לא, ערכי האתחול שווים לכל סוגי השחקנים. |
ה מצופה מאיתנו לעשות במקרה שנקלט שם שאינו נמנה עם הסוגים האפשריים? לזרוק חריגה?
|
אם התקבל שם קלף שלא ברשימת סוגי הקלפים יש לזרוק חריגה DeckFileFormatError |
בקובץ deck
1. אם יש רווחים לפני סוג הקלף צריך לזרוק חריגה?
2. אם יש רווחים אחרי סוג הקלף צריך לזרוק חריגה?
|
1. כן, צריך לזרוק DeckFileFormatError 2. כן, אם זה לא בפורמט הנכון, צריך לזרוק DeckFileFormatError |
במקרה שאין מספיק מטבעות בMerchant, מה עלינו לעשות?
1) לעבור ל PLAYER אחר ולהשתמש ב printMerchantSummary? או לעבור ל PLAYER אחר בלי להדפיס להשתמש ב printMerchantSummary?
2) או לא לעבור ל PLAYER אחר לבקש שוב מ USER שיכניס מספר?
שזה והתשובה למעלה מנוגדים למה שרשום במסמך:
|
1 - לסיים ולעבור לplayer חדש. להדפיס printMerchantInsufficietCoins, לאחר מכן printMerchantSummary ואז לסיים. |
בחלק של הMerchant.
מה עושים כאשר:
א. מוכנס 0
ב. אין מספיק כסף לשחקן
|
א- מדפיסים printMerchantSummary ומסיימים את פעולת הקלף. ב- מדפיסים printMerchantInsufficietCoins ולאחר מכן printMerchantSummary ובסוף מסיימים את פעולת הקלף. |
כאשר גנב נתקל בקלף אוצר, הוא מקבל 20 זהב (10 מהקלף וכפול 2 בגלל העבודה שלו).
אבל פונקציית ההדפסה שנתונה לנו תדפיס שהדמות קיבלה 10 זהב.
האם להשאיר את זה כך למרות שהיא קיבלה 20 זהב?
|
להשאיר את זה כך למרות שבפועל התקבל 20. יש להדפיס עם printTreasureMessage שהשחקן קיבל 10 מטבעות. |
1. מה המבנה שבו צריך לממש את Exception.h, האם זו תהיה מחלקה שלה יהיו class ריקות ופומביות שהם החריגות? (כמו למשל emptyQueue בתרגיל בית 3), או שצריך להגדיר מחלקה Exception, ואז להגדיר מחלקות לכל 3 החריגות הללו שיירשו מException?
2. מה שכתוב בסוף ()exception::what לעשות override לפונקציה what ע"י המחלקות של החריגות זה נחשב פיתרון? גם פה לא כל כך הבנתי מה מצופה.
|
1. כל חריגה היא מחלקה נפרדת בפני עצמה שצריכה לרשת מstd::exception. לא מחלקה פנימית למחלקה אחרת. 2. כן |
i want to add an exception of my own , should i add it the exceprion.h file or have it in another file ?
| exceprion.h |
אם נותר שחקן אחד שלא ניצח או הפסיד (לדוגמא מקבוצה של 5 הפסידו וניצחו 4 שחקנים), האם יש מה להמשיך את המשחק עד שאותו שחקן יגיע לתוצאה של הפסד או ניצחון?
| ממשיכים את המשחק עד שכל השחקנים הגיעו לרמת 10 או עם HP שווה לאפס. |
בחלקים האינטראקטיביים של התרגיל (לדוגמה קלף Merchant), האם ניתן לקבל שורה ריקה?
אם כן, מדפיסים invalid input ומנסים לקבל קלט שוב, או שאין צורך להדפיס שגיאה?
|
מדפיסים invalid input ומנסים לקבל קלט שוב |
what is the right way to override std::exception::what function?
|
https://cplusplus.com/reference/exception/exception/what/ |
אם בקובץ טקסט של הקלפים יש לי שם תקין של קלף ולאחריו רווחים, האם צריך להחשיב את זה כקלט תקין או לזרוק שגיאה?
| יש לזרוק חריגה |
איזה printsummray לבצע אם אין לשחקנית מספיק מטבעות. לעשות את ההדפסה של מה שהיא רוצה עם העלות הנכונה אבל פשוט לא לבצע את הרכישה או הדבר שהיא רוצה עם עלות 0
| עם עלות 0 |
1. חידוד הדרישות עבורו - מה מצופה שנבצע שם (להריץ עם deck.txt? לקבל שחקים מהמשתמש?)? הוא מופיע ברשימת קבצים להגשה (ונזרקת שגיאה מהבודק האוטומטי בהעדרו).
2. בהרצה של finalcheck, כאשר מעלים בZIP קובץ main.cpp מתקבלת שגיאה של הכרזה כפולה על int main() - (בtests.cpp ובmain.cpp). מה לעשות עם זה?
|
1.כן בmain שאתם צריכים להגיש אנחנו מצפים שתריצו משחק. תריצו משחק mtmchkin עד שהוא נגמר (אפשר עד שמגיעים ל100 סיבובים - לבחירתכם). המשחק צריך להיות מאותחל עם קובץ הקלפים deck.txt. אם מתרחשת שגיאה כלשהי בזמן המשחק על תוכנית להדפיס את המחרוזת המוחזרת בפונקציית הwhat של אותה חריגה, ולסיים את התוכנית. 2. יתוקן. יש להגיש את הקובץ main.cpp בתוך תיקיית tool. הfinalCheck יעודכן ותתפרסם הודעה על כך. |
האם אפשק לקנות יותר מעותק אחד מה-Merchant
יש אפשרות לקנות יותר מעותק אחד ממוצר מהסוחר? לדוגמא לקנות בתור אחד 3 נקודות חיים, או 3 נקודות כוח?
| לא |

