Kurzusok
/
C#
C#
/
Feladatok
/
Területszerzés az űrben
Területszerzés az űrben

Területszerzés az űrben

Tanulófeladat

Bevezetés

Struktúrák

A C# struct-ok szorosan kapcsolódnak a class-ekhez. Van állapotuk és viselkedésük. Rendelkeznek konstruktorokkal, amelyek argumentumokat várnak; a példányok hozzárendelhetők, egyenlőségre tesztelhetők és gyűjteményekben tárolhatók.

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"

Utasítások

Az Isaacs Asteroid Exploration Co. területigénylési osztálya azzal bízott meg, hogy javítsd a birtokigénylési rendszerük teljesítményét.

Valahányszor egy új aszteroida kiaknázásra kész, a spekulánsokat arra kérik, hogy jelentsék be igényüket egy telekre. Az aszteroida területe négyoldalú telkekre van felosztva. A spekulánsok a méretek megadásával igénylik a területet.

A célod, hogy egy nagy teljesítményű rendszert fejlessz, amely kezeli a telekért folyó rohamot, ami korábban már a weboldal összeomlását okozta.

A mértékegység 100 méter, de ezeknél a feladatoknál figyelmen kívül hagyható.

1. Definiálj egy Plot-ot

Fejezd be a Plot struct megvalósítását, amely 4 Coord structból áll (amelyeket a konstruktorában fogad).

2. A spekulánsok a telek méreteinek megadásával jelenthetik be az igényüket

Valósítsd meg a ClaimsHandler.StakeClaim() metódust, hogy egy igény regisztrálható legyen.

Valósítsd meg a ClaimsHandler.IsClaimStaked() metódust annak meghatározására, hogy egy igényt bejelentettek-e.

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

3. Ellenőrizd, hogy az aktuális igény ugyanaz-e, mint az előző.

Valósítsd meg a ClaimsHandler.IsLastClaim() metódust, amely összehasonlítja az aktuális igényt az előzővel.

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

4. Keresd meg a bejelentett telkek közül a leghosszabb oldalút kutatási célból

Valósítsd meg a ClaimsHandler.GetClaimWithLongestSide() metódust, amely megvizsgálja az összes regisztrált igényt, és visszaadja a leghosszabb oldalú telket. Egy telek koordinátái garantáltan összefüggő téglalap alakot alkotnak.

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))
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
C# Exercism

Készen állsz elkezdeni a(z) Területszerzés az űrben feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.