C#-structs sind eng verwandt mit classes. Sie haben Zustand und Verhalten. Sie haben Konstruktoren, die Argumente entgegennehmen. Instanzen können zugewiesen, auf Gleichheit geprüft und in Sammlungen gespeichert werden.
enum Unit
{
Kg,
Lb
}
struct Weight
{
private double count;
private Unit unit;
public Weight(double count, Unit unit)
{
this.count = count;
this.unit = unit;
}
public override string ToString()
{
return count.ToString() + unit.ToString();
}
}
new Weight(77.5, Unit.Kg).ToString();
// => "77.6Kg"
Die Anspruchsabteilung von Isaacs Asteroid Exploration Co. hat dich damit beauftragt, die Leistung ihres Systems für Landansprüche zu verbessern.
Jedes Mal, wenn ein neuer Asteroid zur Ausbeutung bereitsteht, werden Spekulanten eingeladen, ihren Anspruch auf ein Stück Land geltend zu machen. Das Land des Asteroiden ist in viereckige Grundstücke unterteilt. Spekulanten beanspruchen das Land, indem sie seine Abmessungen angeben.
Dein Ziel ist es, ein leistungsfähiges System zu entwickeln, das den Ansturm auf das Land bewältigt, der in der Vergangenheit zum Absturz der Website geführt hat.
Die Maßeinheit beträgt 100 Meter, kann in diesen Aufgaben aber ignoriert werden.
Vervollständige die Implementierung der Plot-Struktur, die aus 4 Coord-Strukturen besteht (die sie in ihrem Konstruktor entgegennimmt).
Implementiere die Methode ClaimsHandler.StakeClaim(), damit ein Anspruch registriert werden kann.
Implementiere die Methode ClaimsHandler.IsClaimStaked(), um festzustellen, ob ein Anspruch geltend gemacht wurde.
var ch = new ClaimsHandler();
ch.StakeClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
ch.IsClaimStaked(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
// => true
Implementiere die Methode ClaimsHandler.IsLastClaim(), um den aktuellen Anspruch mit dem vorherigen zu vergleichen.
var ch = new ClaimsHandler();
ch.StakeClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
ch.IsLastClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
// => true
Implementiere die Methode ClaimsHandler.GetClaimWithLongestSide(), um alle registrierten Ansprüche zu prüfen und das Grundstück mit der längsten Seite zurückzugeben. Die Koordinatendaten eines Grundstücks sind garantiert in einer zusammenhängenden rechteckigen Form.
var ch = new ClaimsHandler();
ch.StakeClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
ch.StakeClaim(new Plot(new Coord(10,1), new Coord(20,1), new Coord(10,2), new Coord(20,2)));
ch.GetClaimWithLongestSide();
// => new Plot(new Coord(1,1), new Coord(20,1), new Coord(1,2), new Coord(2,2))
Melde dich bei Exercism an, um C# mit 62 Konzepte178 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.