|
|
# Skúška 15.12.2021
|
|
|
|
|
|
- Je povolené používať Internet na vyhľadanie informácii týkajúcich sa syntaxe jazyka C#, metód a pod. Nie je povolené komunikovať cez Internet (ani inak) s použitím mailu, chatu, Facebooku, Discordu a pod. Porušenie tohto zákazu je dôvodom pre vylúčenie zo skúšky s hodnotením 0 bodov. Nie je povolená žiadna forma plagiátorstva (čiastkové riešenia problémov môžete použiť, v takomto prípade uveďte do komentárov URL).
|
|
|
- V prípade, že bude odhalený pokus o podvod, všetci zúčastnení na podvode budú vylúčení zo skúšky s hodnotením 0 bodov.
|
|
|
- Ak sú v zadaní uvedené mená pre premenné a metódy používajte presne tie mená, ktoré sú uvedené v zadaní.
|
|
|
- Dodržanie rovnakých podmienok, ako platili pri zápočte.
|
|
|
- Uznané bude len riešenie, ktoré je možné skompilovať a spustiť na testovacom počítači (na ktorom sa budú spúšťať všetky zadania).
|
|
|
- Hotové zadanie odovzdajte cez MS Teams) - nezabudnite pred zabalením dať clean solution (a vymazať skrytý priečinok .vs)
|
|
|
|
|
|
---
|
|
|
|
|
|
Na vypracovanie zadania máte 60 minút. Body sa prideľujú iba ak je študent schopný obhájiť svoj kód, nestačí, že to je napísané.
|
|
|
|
|
|
## Úloha 1
|
|
|
|
|
|
(15 bodov)
|
|
|
|
|
|
Vytvorte si rozhranie
|
|
|
|
|
|
```csharp
|
|
|
public interface IScoreCounter
|
|
|
{
|
|
|
void AddScore(int score);
|
|
|
void ResetScoreCounter();
|
|
|
int GetScore();
|
|
|
void SetWorld(IWorld world);
|
|
|
}
|
|
|
```
|
|
|
|
|
|
Vytvorte si triedu `ScoreCounter`, ktorá bude implementovať návrhový vzor __singleton__ a horeuvedené rozhranie nasledovne:
|
|
|
|
|
|
- `AddScore` - pripočíta (odpočíta, ak je hodnota záporná) body
|
|
|
- `ResetScoreCounter` - vynuluje počítadlo
|
|
|
- `GetScore` - vráti aktuálne nahrané body
|
|
|
- `SetWorld` - nastaví referenciu na svet - potrebné pre zobrazenie skóre na obrazovke
|
|
|
|
|
|
Zabezpečte, aby bolo na obrazovke vypísané aktuálne skóre.
|
|
|
|
|
|
```csharp
|
|
|
//hint
|
|
|
public Message(string text, int x, int y, int fontSize, Color color, MessageDuration messageDuration)
|
|
|
IWorld.AddMessage(IMessage message)
|
|
|
IMessage.SetText(string newText)
|
|
|
|
|
|
```
|
|
|
|
|
|
## Úloha 2
|
|
|
|
|
|
(15 bodov)
|
|
|
|
|
|
Vyberte si aspoň 3 akcie (napr. zabitie nepriateľa, ubratie / strata života, otvorenie / zatvorenie dverí), ktoré budú pridávať / uberať body a implementujte ich.
|
|
|
|
|
|
## Úloha 3
|
|
|
|
|
|
(10 bodov)
|
|
|
|
|
|
Po skončení hry si od hráča vypýtajte meno a jeho body uložte do textového súboru vo formáte:
|
|
|
|
|
|
```plaintext
|
|
|
meno (medzera) body
|
|
|
```
|
|
|
|
|
|
Zabezpečte, aby sa už existujúci súbor neprepísal, nový záznam doplňte na koniec súboru. Využite `FileStream`. Zabezpečte, aby bol po skončení súbor zavretý. |