נתונה מחלקה Card המייצגת קלף. למחלקה שתי תכונות: value — ערך הקלף, בין 1 ל-9, מטיפוס שלם; color — צבע הקלף מטיפוס שלם: 1 מייצג אדום, 2 מייצג צהוב, 3 מייצג ירוק, 4 מייצג כחול. במחלקה מוגדרות (וכבר קיימות, אין צורך לממש): Card(value,color) — פעולה בונה; isSame(other) — מחזירה true אם ערך הקלף הנוכחי זהה לערך הקלף של other וגם צבעו זהה לצבעו של other, אחרת false; compareVal(other) — מחזירה 1 אם ערך הקלף הנוכחי גדול מערכו של other, 2- אם קטן ממנו (השאלון: מחזירה קוד שלילי), 0 אם שווים. נתונה גם המחלקה Deck — חפיסת קלפים — שיש לה תכונה אחת: מערך חד-ממדי allCards מטיפוס Card, שהפעולה הבונה שלה מגדירה בגודל 36, ובו 36 קלפים שונים זה מזה.
נתונה מחלקה Card המייצגת קלף. למחלקה שתי תכונות: value — ערך הקלף, בין 1 ל-9, מטיפוס שלם; color — צבע הקלף מטיפוס שלם: 1 מייצג אדום, 2 מייצג צהוב, 3 מייצג ירוק, 4 מייצג כחול. במחלקה מוגדרות (וכבר קיימות, אין צורך לממש): Card(value,color) — פעולה בונה; isSame(other) — מחזירה true אם ערך הקלף הנוכחי זהה לערך הקלף של other וגם צבעו זהה לצבעו של other, אחרת false; compareVal(other) — מחזירה 1 אם ערך הקלף הנוכחי גדול מערכו של other, 2- אם קטן ממנו (השאלון: מחזירה קוד שלילי), 0 אם שווים. נתונה גם המחלקה Deck — חפיסת קלפים — שיש לה תכונה אחת: מערך חד-ממדי allCards מטיפוס Card, שהפעולה הבונה שלה מגדירה בגודל 36, ובו 36 קלפים שונים זה מזה.
public class Card
{
private int value; // ערך הקלף, 1 עד 9
private int color; // צבע הקלף: 1=אדום, 2=צהוב, 3=ירוק, 4=כחול
public Card(int value, int color) {…}
public boolean isSame(Card other) {…}
public int compareVal(Card other) {…}
}
public class Deck
{
private Card[] allCards; // 36 קלפים שונים זה מזה
public Deck() {…}
public Card seeCard(int i) {…}
}
נתונה המחלקה Deck חפיסת קלפים, שיש לה תכונה אחת — מערך חד-ממדי allCards מטיפוס Card. ממש ב-Java את הפעולה seeCard או ב-C# את הפעולה SeeCard שבמחלקה Deck, המחזירה את הקלף הנמצא במקום i במערך allCards.
public Card seeCard(int i)
לפניך תיאור של משחק קלפים לשני שחקנים. בתחילת המשחק לכל אחד מהשחקנים יש חפיסת קלפים משלו. בכל תור: כל אחד מהשחקנים מגריל מספר אקראי i בין 0 ל-35 (כולל) ומציג את הקלף שנמצא במקום i בחפיסה שלו. אם שני הקלפים זהים (בערך ובצבע), כל אחד מהשחקנים מקבל נקודה אחת. שחקן שערך הקלף שלו גדול מערך הקלף של השחקן האחר מקבל 3 נקודות. נוסף על כך: כל שחקן שצבע הקלף שלו ירוק מקבל 2 נקודות נוספות. המשחק מסתיים כאשר אחד השחקנים צבר לפחות 28 נקודות. כתוב ב-Java או ב-C# קטע מפעולה במחלקה Program שידמה את המשחק שתואר. עליך להשתמש בפעולות של המחלקות Card ו-Deck; אינך צריך לממש אותן.
public static void playCardGame(Deck deck1, Deck deck2, Random rng)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.