RHS   Allan   C#.NET Øvelser Dicegame03


 

DiceGame03

I det følgende vil vi justere og udvidde vores simple terningespil.
Her kan du finde mine vejledende løsninger indtil nu.

Tip: For hver øvelse bør du have et nyt combine. Di kan let kopiere filer fra et andet combine ved at højre-klikke på combine-navnet i "Projects" rammen og vælge Add -> Add Files. Når du har udvalgt filer (fra tidligere combine) får du mulighed for at kopiere eller flytte filerne. Vælg Copy så du har et komplet sæt filer til hver opgave.

Klasse Die
Properties er en nemmere og mere læselig måde at tilgå variabler på så vi ændrer metoden GetFaceValue til en property FaceValue med en get funktion. Der skal ingen set funktion være da variablen faceValue ændres uden overførsel af parameter - til det benyttes stadig metoden Roll().

Hvis du har haft problemer med at dine to terninger altid gav samme værdi kan du løse det ved at gøre random variablen static. På denne måde findes der kun en instans af Random objektet som deles af alle Die objekter. Problemet skyldes sikkert at et Random objekt altid fødes med samme seed-værdi.

Klassen Player
Erstat metoderne SetHighScore() og GetHighScore() med en property, HighScore.
Erstat metoden GetName() med en property, Name.

Klassen DiceGame
Først vil vi føje en spiller mere til: ændr navn på Player variablen så den hedder player1 og tilføj player2. Husk også at ændre klassens constructors.

Desuden vil vi ændre spillereglerne så et spil består af 3 runder. I hver runde slår hver spiller med de to terninger og opnår samme antal point som summen af terningernes øjne. Hver spillers slutresultat er summen af point for de 3 runder. Spilleren med flest point vinder.

Vi kan få brug for følgende to hjælpe-metoder (de skal kun benyttes internt så de bør være private):

Metoden Play() ændres, så den nu har et loop. Loop'et skal for de 3 runder udskrive en overskrift og kaldeHandlePlayer() for hver spiller.
Efter de 3 runder opdateres spillernes highscore og spillets vinder udskrives.

Klassen Game01
Klassens navn ændres til Game03. Da vi nu har 2 spillere indlæses 2 navne fra tastaturet, der instantieres to Player objekter som benyttes som argument for DiceGame's constructor. Spillet startes som før med Play() metoden.


Maintained by: Allan Helboe Nielsen
Updated: 3 November, 2005 1:04