טוען...
טוען...
שים לב
בכל שאלה שנדרש בה מימוש אתה יכול להשתמש בפעולות של המחלקות תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן.
המשחק "שחק נא" הוא משחק לשחקן אחד בשני שלבים. השחקן מקבל 52 קלפים מעורבבים, שונים זה מזה. על כל קלף יש מספר בין 1 ל-13, וציור של אחת מארבע צורות (הצורות מיוצגות על ידי המספרים 1 עד 4).
המשחק מסתיים כאשר מוגרל מספר המייצג ערמה שאין בה קלפים. ניצחון הוא מצב שבו סכום המספרים שעל הקלפים בערמה החמישית מתחלק ב-100 ללא שארית.
לצורך מימוש המשחק הוגדרו המחלקות: Card (המייצגת קלף אחד — ראה קוד), Deck (המייצגת את חמש הערמות), ו-Test (המנהלת את המשחק). במחלקה Test נכתבה הפעולה game המקבלת מערך של 52 קלפים שונים המסודרים באופן אקראי, מנהלת את המשחק עד סיומו, ומחזירה true אם המשחק הסתיים בניצחון, אחרת false.
public class Card {
private int value; // מספר בין 1 ל-13
private int shape; // צורה בין 1 ל-4
public Card (int value, int shape) {
this.value = value;
this.shape = shape;
}
public int getValue () { return this.value; }
public int getShape () { return this.shape; }
}i. כתוב ב־Java את כותרת המחלקה Deck ואת התכונות שלה.
ii. כתוב ב־Java במחלקה Deck את כותרות הפעולות האלה:
insert המקבלת קלף ומוסיפה אותו לערמה הנכונה על פי השלב הראשון במשחק.move המגרילה מספר המייצג צורה. אם ערמת הקלפים שצורתה הוגרלה היא ריקה, הפעולה תחזיר false. אחרת — הפעולה תעביר לערמה החמישית את הקלף שבראש הערמה שמספרה הוגרל ותחזיר true.sum המחזירה את הסכום הנוכחי של המספרים שעל הקלפים בערמה החמישית.שים לב
בתת־סעיף זה אין צורך לממש את הפעולות.
ממש ב־Java את הפעולה הבונה במחלקה Deck.
ממש ב־Java את הפעולה sum במחלקה Deck.
ממש ב־Java את הפעולה game במחלקה Test. אתה יכול להשתמש בפעולות insert ו־move של המחלקה Deck, בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן.
שים לב
בכל שאלה שנדרש בה מימוש אתה יכול להשתמש בפעולות של המחלקות תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן.
המשחק "שחק נא" הוא משחק לשחקן אחד בשני שלבים. השחקן מקבל 52 קלפים מעורבבים, שונים זה מזה. על כל קלף יש מספר בין 1 ל-13, וציור של אחת מארבע צורות (הצורות מיוצגות על ידי המספרים 1 עד 4).
המשחק מסתיים כאשר מוגרל מספר המייצג ערמה שאין בה קלפים. ניצחון הוא מצב שבו סכום המספרים שעל הקלפים בערמה החמישית מתחלק ב-100 ללא שארית.
לצורך מימוש המשחק הוגדרו המחלקות: Card (המייצגת קלף אחד — ראה קוד), Deck (המייצגת את חמש הערמות), ו-Test (המנהלת את המשחק). במחלקה Test נכתבה הפעולה game המקבלת מערך של 52 קלפים שונים המסודרים באופן אקראי, מנהלת את המשחק עד סיומו, ומחזירה true אם המשחק הסתיים בניצחון, אחרת false.
public class Card {
private int value; // מספר בין 1 ל-13
private int shape; // צורה בין 1 ל-4
public Card (int value, int shape) {
this.value = value;
this.shape = shape;
}
public int getValue () { return this.value; }
public int getShape () { return this.shape; }
}i. כתוב ב־Java את כותרת המחלקה Deck ואת התכונות שלה.
ii. כתוב ב־Java במחלקה Deck את כותרות הפעולות האלה:
insert המקבלת קלף ומוסיפה אותו לערמה הנכונה על פי השלב הראשון במשחק.move המגרילה מספר המייצג צורה. אם ערמת הקלפים שצורתה הוגרלה היא ריקה, הפעולה תחזיר false. אחרת — הפעולה תעביר לערמה החמישית את הקלף שבראש הערמה שמספרה הוגרל ותחזיר true.sum המחזירה את הסכום הנוכחי של המספרים שעל הקלפים בערמה החמישית.שים לב
בתת־סעיף זה אין צורך לממש את הפעולות.
ממש ב־Java את הפעולה הבונה במחלקה Deck.
ממש ב־Java את הפעולה sum במחלקה Deck.
ממש ב־Java את הפעולה game במחלקה Test. אתה יכול להשתמש בפעולות insert ו־move של המחלקה Deck, בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן.