N250 Arv (Terning)
Du skal skabe en tom konsol app med en klasse Terning med følgende medlemmer:
- En offentlig egenskab (int) Værdi (med private felt kaldet værdi). Der må ikke tildeles et tal mindre end en eller større end seks. Hvis det sker sættes værdi blot til en.
- En offentlig metode Ryst() der giver et tilfældigt tal
- En Offentlig metode Skriv() der viser terningen (eksempelvis [1] eller [2])
- Tilføj en default constructor (hvor Ryst kaldes) og en custom constructor hvor værdi kan angives når der oprettes en instans.
Prøv terningen i Main() på forskellige måder så du er sikker på at den virker!
Skab nu en ny klasse LudoTerning der arver fra Terning. Klassen har to metoder
- ErGlobus() returnerer true hvis værdien er 3 – ellers false
- ErStjerne() returnerer true hvis værdien er 5 – ellers false
- Sørg for at der både er en default og custom constructor der kalder ”mor” uden yderligere funktionalitet
- Sørg for at klassen er
sealed
så man ikke kan arve fra den
Prøv at skabe instanser af LudoTerning og test at de nye metoder fungerer, og check at man ikke kan skabe en klasse der arver fra LudoTerning.
Klik for at se et forslag til en løsning
using System;
Terning t = new Terning();
t.Skriv();
t.Ryst();
t.Skriv();
LudoTerning l = new LudoTerning();
l.Skriv();
Console.WriteLine(l.ErGlobus());
Console.WriteLine(l.ErStjerne());
public class Terning
{
private static System.Random rnd;
private int værdi;
public int Værdi
{
get
{
//Console.WriteLine("Terning aflæses som " + this.værdi);
return this.værdi;
}
set
{
if (value < 0 || value > 6)
value = 1;
//Console.WriteLine("Terning tildeles " + value);
this.værdi = value;
}
}
public void Skriv()
{
Console.WriteLine("[" + this.Værdi + "]");
}
public void Ryst()
{
this.Værdi = rnd.Next(1, 7);
}
public Terning()
{
this.Ryst();
}
public Terning(int værdi)
{
this.Værdi = værdi;
}
static Terning()
{
rnd = new Random();
}
}
public sealed class LudoTerning : Terning
{
public bool ErGlobus()
{
return this.Værdi == 3;
}
public bool ErStjerne()
{
return this.Værdi == 5;
}
public LudoTerning() : base()
{ }
public LudoTerning(int værdi) : base(værdi)
{ }
}