מועדון השחמט "מט" מתכנן טורניר שחמט שנתי. המועדון מעוניין במערכת שתנהל את תוצאות המשחקים, את דירוג השחקנים ואת לוח המשחקים. לשם כך הוגדרו המחלקות הבאות:
המחלקה Player מייצגת שחקן. למחלקה התכנות הבאות:
- שם השחקן – name, מסוג מחרוזת, string
- דירוג השחקן – rating, מסוג מספר שלם, int. דירוג השחקן מתעדכן לפי התוצאות הסופיות של הטורניר.
במחלקה הוגדרו פעולות Set/Get לכל התכונות.
המחלקה Tournament מייצגת טורניר שחמט. למחלקה התכונות הבאות:
- רשימת השחקנים – players, מערך עצמים מסוג Player.
- לוח תוצאות המשחקים – results – מערך דו-ממדי של מספרים שלמים.
כל שחקן משחק עם כל שחקן אחר. ניצחון בכל משחק מקנה למנצח שתי נקודות, במקרה של תיקו שני השחקנים מקבלים נקודה אחת, שחקן שהפסיד לא מקבל נקודות.
לדוגמה:
| 0 | 1 | 2 | |
|---|---|---|---|
| 0 | 2 | 0 | |
| 1 | 0 | 1 | |
| 2 | 2 | 1 |
המערך הזה מייצג את התוצאות האלה:
- שחקן 0 ניצח את שחקן 1
- שחקן 2 ניצח את שחקן 0
- שחקן 1 ושחקן 2 סיימו בתיקו
כלומר, הערך results[i, j] מציין את התוצאה של השחקן i מול השחקן j.
נתונה פעולה בונה של המחלקה Tournament:
public Tournament(Player[] players) {
this.players = players;
this.results = new int[players.Length][players.Length];
}
(א)כתבו את הפעולה GetPlayerIndexByName. הפעולה מקבלת שם שחקן ומחזירה את המספר הסידורי שלו ברשימת השחקנים.
כותרת הפעולה:
```csharp
public int GetPlayerIndexByName(string name)
```
כותרת הפעולה:
```csharp
public int GetPlayerIndexByName(string name)
```
(ב)כתבו את הפעולה המקבלת את שמות השחקנים ואת מספר הנקודות של השחקן הראשון. הפעולה מעדכנת את לוח תוצאות המשחקים.
כותרת הפעולה:
```csharp
public void PlayMatch(string name1, string name2, int result1)
```
כותרת הפעולה:
```csharp
public void PlayMatch(string name1, string name2, int result1)
```
(ג)כתבו פעולה המחזירה את שם השחקן המנצח בטורניר. אפשר להניח שיש רק מנצח אחד.
כותרת הפעולה:
```csharp
public string GetNameOfWinnerPlayer()
```
כותרת הפעולה:
```csharp
public string GetNameOfWinnerPlayer()
```
(ד)אחרי סיום הטורניר מעדכנים את דירוגם של כל השחקנים: מוסיפים מספר ניצחונות ומורידים מספר הפסדים. כתבו פעולה המעדכנת את הדירוג של כל משתתפי הטורניר.
כותרת הפעולה:
```csharp
public void UpdateRating()
```
כותרת הפעולה:
```csharp
public void UpdateRating()
```
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות