Missie 3
Code met uitleg
De oplossing wordt hier stap voor stap besproken
Enclave
class Enclave
{
protected static Random r = new Random();
private Hospitaal hospitaal;
private Generator generator;
protected List<Woonst> woningen = new List<Woonst>();
public Enclave()
{
hospitaal = new Hospitaal("starthospitaal", r.Next(1, Console.WindowWidth), r.Next(1, Console.WindowHeight));
generator = new Generator("generator1", r.Next(1, Console.WindowWidth), r.Next(1, Console.WindowHeight));
for (int i = 0; i < 3; i++)
{
woningen.Add(new Woonst(r.Next(1, Console.WindowWidth), r.Next(1, Console.WindowHeight)));
}
}
public virtual void BouwWoonst()
{
int xpoging = 0;
int ypoging = 0;
do
{
xpoging = r.Next(1, Console.WindowWidth);
ypoging = r.Next(1, Console.WindowHeight);
} while ( !IsLeeg(xpoging,ypoging ));
woningen.Add(new Woonst(xpoging, ypoging));
}
public virtual void ToonEclave()
{
generator?.PrintGebouw();
hospitaal?.PrintGebouw();
foreach (var woonst in woningen)
{
woonst.PrintGebouw();
}
}
private bool IsLeeg(int x,int y)
{
if (hospitaal.X == x && hospitaal.Y == y)
return false;
if (generator.X == x && generator.Y == y)
return false;
foreach (var huisje in woningen)
{
if (huisje.X == x && huisje.Y == y)
return false;
}
return true;
}
}
StadsEnclave
class StadsEnclave: Enclave
{
private WaterkrachtCentrale waterkrachtcentrale;
private Hospitaal extrahospitaal;
private List<Flat> flats = new List<Flat>();
public override void BouwWoonst()
{
base.BouwWoonst();
if(woningen.Count%3==0)
{
for (int i = 0; i < 3; i++)
{
woningen.RemoveAt(0);
}
flats.Add(new Flat(r.Next(1, Console.WindowWidth), r.Next(1, Console.WindowHeight)));
}
}
public override void ToonEclave()
{
base.ToonEclave();
extrahospitaal?.PrintGebouw();
waterkrachtcentrale?.PrintGebouw();
foreach (var flat in flats)
{
flat.PrintGebouw();
}
}
}
Last updated