המשחק "שחק נא" הוא משחק לשחקן אחד בשני שלבים. השחקן מקבל 52 קלפים מעורבבים, שונים זה מזה. על כל קלף יש מספר בין 1 ל-13, וציור של אחת מארבע צורות (הצורות מיוצגות על ידי המספרים 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}כתבו את כותרת המחלקה Deck ואת התכונות שלה, וכן את כותרות הפעולות האלה (אין צורך לממש אותן בתת-סעיף זה):
insert (ב-C#: Insert) המקבלת קלף ומוסיפה אותו לערמה הנכונה על פי השלב הראשון במשחק.move (ב-C#: Move) המגרילה מספר המייצג צורה. אם ערמת הקלפים שצורתה הוגרלה ריקה — הפעולה תחזיר false; אחרת הפעולה תעביר לערמה החמישית את הקלף שבראש הערמה שמספרה הוגרל ותחזיר true.sum (ב-C#: Sum) המחזירה את הסכום הנוכחי של המספרים שעל הקלפים בערמה החמישית.ממשו את הפעולה הבונה במחלקה Deck.
ממשו את הפעולה sum (ב-C#: Sum) במחלקה Deck.
ממשו את הפעולה game (ב-C#: Game) במחלקה Test. אתם יכולים להשתמש בפעולות insert ו-move (ב-C#: Insert ו-Move) של המחלקה Deck בלי לממש אותן. אם אתם משתמשים בפעולות נוספות, עליכם לממש אותן.
המשחק "שחק נא" הוא משחק לשחקן אחד בשני שלבים. השחקן מקבל 52 קלפים מעורבבים, שונים זה מזה. על כל קלף יש מספר בין 1 ל-13, וציור של אחת מארבע צורות (הצורות מיוצגות על ידי המספרים 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}כתבו את כותרת המחלקה Deck ואת התכונות שלה, וכן את כותרות הפעולות האלה (אין צורך לממש אותן בתת-סעיף זה):
insert (ב-C#: Insert) המקבלת קלף ומוסיפה אותו לערמה הנכונה על פי השלב הראשון במשחק.move (ב-C#: Move) המגרילה מספר המייצג צורה. אם ערמת הקלפים שצורתה הוגרלה ריקה — הפעולה תחזיר false; אחרת הפעולה תעביר לערמה החמישית את הקלף שבראש הערמה שמספרה הוגרל ותחזיר true.sum (ב-C#: Sum) המחזירה את הסכום הנוכחי של המספרים שעל הקלפים בערמה החמישית.ממשו את הפעולה הבונה במחלקה Deck.
ממשו את הפעולה sum (ב-C#: Sum) במחלקה Deck.
ממשו את הפעולה game (ב-C#: Game) במחלקה Test. אתם יכולים להשתמש בפעולות insert ו-move (ב-C#: Insert ו-Move) של המחלקה Deck בלי לממש אותן. אם אתם משתמשים בפעולות נוספות, עליכם לממש אותן.