בי מאסטר (Bmaster)מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
תפריט

חומרי לימוד

מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
חזרה למאגר2016 קיץ מועד ב

משחק קלפים עם ערמות: תכנון המחלקה Deck

שאלה קודמתשאלה הבאה
שאלה 6מבני נתונים2016 קיץ מועד ב

משחק קלפים עם ערמות: תכנון המחלקה Deck

המשחק "שחק נא" הוא משחק לשחקן אחד בשני שלבים. השחקן מקבל 52 קלפים מעורבבים, שונים זה מזה. על כל קלף יש מספר בין 1 ל-13, וציור של אחת מארבע צורות (הצורות מיוצגות על ידי המספרים 1 עד 4).

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

המשחק מסתיים כאשר מוגרל מספר המייצג ערמה שאין בה קלפים. ניצחון הוא מצב שבו סכום המספרים שעל הקלפים בערמה החמישית מתחלק ב-100 ללא שארית.

לצורך מימוש המשחק הוגדרו המחלקות: Card (המייצגת קלף אחד — ראו קוד), Deck (המייצגת את חמש הערמות), ו-Test (המנהלת את המשחק). במחלקה Test נכתבה הפעולה game (ב-C#: Game) המקבלת מערך של 52 קלפים שונים המסודרים באופן אקראי, מנהלת את המשחק עד סיומו, ומחזירה true אם המשחק הסתיים בניצחון, אחרת false.

1public class Card {
2    private int value;   // מספר בין 1 ל-13
3    private int shape;   // צורה בין 1 ל-4
4
5    public Card (int value, int shape) {
6        this.value = value;
7        this.shape = shape;
8    }
9    public int getValue () { return this.value; }
10    public int getShape () { return this.shape; }
11}

משימות

אמשימה אcode

כתבו את כותרת המחלקה Deck ואת התכונות שלה, וכן את כותרות הפעולות האלה (אין צורך לממש אותן בתת-סעיף זה):

  • פעולה בונה המגדירה את חמש הערמות להיות ריקות.
  • פעולה insert (ב-C#: Insert) המקבלת קלף ומוסיפה אותו לערמה הנכונה על פי השלב הראשון במשחק.
  • פעולה move (ב-C#: Move) המגרילה מספר המייצג צורה. אם ערמת הקלפים שצורתה הוגרלה ריקה — הפעולה תחזיר false; אחרת הפעולה תעביר לערמה החמישית את הקלף שבראש הערמה שמספרה הוגרל ותחזיר true.
  • פעולה sum (ב-C#: Sum) המחזירה את הסכום הנוכחי של המספרים שעל הקלפים בערמה החמישית.
במשימה בcode

ממשו את הפעולה הבונה במחלקה Deck.

גמשימה גcode

ממשו את הפעולה sum (ב-C#: Sum) במחלקה Deck.

דמשימה דcode

ממשו את הפעולה game (ב-C#: Game) במחלקה Test. אתם יכולים להשתמש בפעולות insert ו-move (ב-C#: Insert ו-Move) של המחלקה Deck בלי לממש אותן. אם אתם משתמשים בפעולות נוספות, עליכם לממש אותן.

שאלה 6מבני נתונים2016 קיץ מועד ב

משחק קלפים עם ערמות: תכנון המחלקה Deck

המשחק "שחק נא" הוא משחק לשחקן אחד בשני שלבים. השחקן מקבל 52 קלפים מעורבבים, שונים זה מזה. על כל קלף יש מספר בין 1 ל-13, וציור של אחת מארבע צורות (הצורות מיוצגות על ידי המספרים 1 עד 4).

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

המשחק מסתיים כאשר מוגרל מספר המייצג ערמה שאין בה קלפים. ניצחון הוא מצב שבו סכום המספרים שעל הקלפים בערמה החמישית מתחלק ב-100 ללא שארית.

לצורך מימוש המשחק הוגדרו המחלקות: Card (המייצגת קלף אחד — ראו קוד), Deck (המייצגת את חמש הערמות), ו-Test (המנהלת את המשחק). במחלקה Test נכתבה הפעולה game (ב-C#: Game) המקבלת מערך של 52 קלפים שונים המסודרים באופן אקראי, מנהלת את המשחק עד סיומו, ומחזירה true אם המשחק הסתיים בניצחון, אחרת false.

1public class Card {
2    private int value;   // מספר בין 1 ל-13
3    private int shape;   // צורה בין 1 ל-4
4
5    public Card (int value, int shape) {
6        this.value = value;
7        this.shape = shape;
8    }
9    public int getValue () { return this.value; }
10    public int getShape () { return this.shape; }
11}

משימות

אמשימה אcode

כתבו את כותרת המחלקה Deck ואת התכונות שלה, וכן את כותרות הפעולות האלה (אין צורך לממש אותן בתת-סעיף זה):

  • פעולה בונה המגדירה את חמש הערמות להיות ריקות.
  • פעולה insert (ב-C#: Insert) המקבלת קלף ומוסיפה אותו לערמה הנכונה על פי השלב הראשון במשחק.
  • פעולה move (ב-C#: Move) המגרילה מספר המייצג צורה. אם ערמת הקלפים שצורתה הוגרלה ריקה — הפעולה תחזיר false; אחרת הפעולה תעביר לערמה החמישית את הקלף שבראש הערמה שמספרה הוגרל ותחזיר true.
  • פעולה sum (ב-C#: Sum) המחזירה את הסכום הנוכחי של המספרים שעל הקלפים בערמה החמישית.
במשימה בcode

ממשו את הפעולה הבונה במחלקה Deck.

גמשימה גcode

ממשו את הפעולה sum (ב-C#: Sum) במחלקה Deck.

דמשימה דcode

ממשו את הפעולה game (ב-C#: Game) במחלקה Test. אתם יכולים להשתמש בפעולות insert ו-move (ב-C#: Insert ו-Move) של המחלקה Deck בלי לממש אותן. אם אתם משתמשים בפעולות נוספות, עליכם לממש אותן.