Gå til indholdet

N122 Enum(s) til kortspil

Du skal skabe en del af en applikation der kan bruges til forskellige typer af kortspil, og her skal du blandt kunne håndtere spillekort. Et spillekort har som bekendt en kulør (spar, ruder, hjerter og klør), og i stedet for at have kode som dette:

// Til alle der læser koden...
// Kulør 0 = Spar
// Kulør 1 = Hjerter
// Kulør 2 = Ruder
// Kulør 3 = Klør

int kort1Værdi = 2;
int kort1Kulør = 1;

int kort2Værdi = 2;
int kort2Kulør = 2;

vil det være oplagt at skabe en enumeration. Så din opgave er at skabe en enum kaldet KortKulør med de fire mulige værdier. Herefter skal du “rydde op” i ovennævnte kode så den bliver nemmere både at skrive og læse.

  • Prøv eventuelt at tildele egne værdier (spar = 10, hjerter = 20, …).
  • Prøv eventuelt at skrive værdien af kort1Kulør ud - både som tekst og som nummer (se løsning)

Tip

Man kunne overvejer om værdi også burde være en enum - To, Tre, Fire, …, Ti, Knægt, Dame, Konge, Es

Tip

Hvis du er i tvivl om hvordan du skaber en konsolapplikation så følg:

Klik for at se et forslag til en løsning
using System;  // muligvis ikke nødvendig i nyere versioner af C# pga `ImplicitUsings`

// Hjerter 2
int kort1Værdi = 2;                         // værdi
KortKulør kort1Kulør = KortKulør.Hjerter;   // kulør

// Skriver "Hjerter 2"
Console.WriteLine(kort1Kulør.ToString() + " " + kort1Værdi);

// Ruder 2
int kort2Værdi = 2;
KortKulør kort2Kulør = KortKulør.Ruder;

// Skriver "Ruder 2"
Console.WriteLine(kort2Kulør.ToString() + " " + kort2Værdi);


// udskriv tallet der svarer til ruder 
Console.WriteLine(Convert.ToInt32(kort2Kulør));     // 2

// typen burde nok placeres i en fil for sig selv
enum KortKulør
{
    Spar,
    Hjerter,
    Ruder,
    Klør
}

// eller
//enum KortKulør
//{
//    Spar = 10,
//    Hjerter = 20,
//    Ruder = 30,
//    Klør = 40
//}