Kurzusok
/
C#
C#
/
Feladatok
/
Need for Speed
Need for Speed

Need for Speed

Tanulófeladat

Bevezetés

Konstruktorok

Egy osztály példányát úgy hozod létre, hogy meghívod a konstruktorát a new operátoron keresztül. A konstruktor egy különleges metódustípus, amelynek a célja, hogy inicializálja az újonnan létrehozott példányt. A konstruktorok úgy néznek ki, mint a hagyományos metódusok, de nincs visszatérési típusuk, és a nevük megegyezik az osztály nevével.

class Library
{
    private int books;

    public Library()
    {
        // Initialize the books field
        this.books = 10;
    }
}

// This will call the constructor
var library = new Library();

A hagyományos metódusokhoz hasonlóan a konstruktoroknak is lehetnek paramétereik. A konstruktor paramétereit általában (privát) mezőkként tároljuk, hogy később hozzáférhessünk hozzájuk, vagy valamilyen egyszeri számításban használjuk fel őket. A konstruktoroknak ugyanúgy adhatsz át argumentumokat, mint a hagyományos metódusoknak.

class Building
{
    private int numberOfStories;
    private int totalHeight;

    public Building(int numberOfStories, double storyHeight)
    {
        this.numberOfStories = numberOfStories;
        this.totalHeight = numberOfStories * storyHeight;
    }
}

// Call a constructor with two arguments
var largeBuilding = new Building(55, 6.2)

Utasítások

Ebben a feladatban különféle típusú távirányítós autók közötti versenyeket fogsz megszervezni. Minden autónak megvan a saját sebessége és akkumulátor-kimerülési jellemzője.

Az autók feltöltött (100%-os) akkumulátorral indulnak. Valahányszor vezeted az autót a távirányítóval, annyi métert tesz meg, amennyi az autó sebessége, és a hátralévő akkumulátorszázalékot az akkumulátor-kimerülés mértékével csökkenti.

Ha egy autó akkumulátora a kimerülési százaléka alá csökken, már nem tudod vezetni az autót.

Minden versenypályának megvan a maga távolsága. Az autókat úgy tesztelik, hogy megnézik, képesek-e teljesíteni a pályát anélkül, hogy kimerülne az akkumulátoruk.

Hat részfeladat vár rád, és mindegyikük távirányítós autók példányaival dolgozik majd.

1. Távirányítós autó létrehozása

Tedd lehetővé távirányítós autó létrehozását úgy, hogy definiálsz egy konstruktort a RemoteControlCar osztályhoz, amely két paraméterként az autó méterben mért sebességét és az akkumulátor-kimerülés százalékát várja (mindkettő int típusú):

int speed = 5;
int batteryDrain = 2;
var car = new RemoteControlCar(speed, batteryDrain);

2. Versenypálya létrehozása

Tedd lehetővé versenypálya létrehozását úgy, hogy definiálsz egy konstruktort a RaceTrack osztályhoz, amely egyetlen paraméterként a pálya méterben mért távolságát várja (int típusú):

int distance = 800;
var raceTrack = new RaceTrack(distance);

3. Vezesd az autót

Valósítsd meg a RemoteControlCar.Drive() metódust, amely az autó sebessége alapján frissíti a megtett méterek számát. Valósítsd meg a RemoteControlCar.DistanceDriven() metódust is, amely visszaadja az autó által megtett méterek számát:

int speed = 5;
int batteryDrain = 2;
var car = new RemoteControlCar(speed, batteryDrain);
car.Drive();

car.DistanceDriven();
// => 5

4. Ellenőrizd, hogy kimerült-e az akkumulátor

Frissítsd a RemoteControlCar.Drive() metódust, hogy az autó akkumulátor-kimerülése alapján kimerítse az akkumulátort. Valósítsd meg a RemoteControlCar.BatteryDrained() metódust is, amely jelzi, hogy kimerült-e az akkumulátor:

int speed = 5;
int batteryDrain = 2;
var car = new RemoteControlCar(speed, batteryDrain);
car.Drive();

car.BatteryDrained();
// => false

5. Hozd létre a Nitro távirányítós autót

A legkelendőbb távirányítós autó a Nitro, amely lenyűgöző, 50 méteres végsebességgel és 4%-os akkumulátor-kimerüléssel bír. Valósítsd meg a (statikus) RemoteControlCar.Nitro() metódust, amely ezt az autótípust adja vissza:

var car = RemoteControlCar.Nitro();
car.Drive();
car.DistanceDriven();
// => 50

6. Ellenőrizd, hogy egy távirányítós autó be tud-e fejezni egy versenyt

Ahhoz, hogy egy autó teljesítsen egy versenypályát, képesnek kell lennie megtenni a pálya távolságát. Ez azt jelenti, hogy nem meríti ki az akkumulátorát, mielőtt átlépné a célvonalat. Valósítsd meg a RaceTrack.TryFinishTrack() metódust, amely paraméterként egy RemoteControlCar példányt vár, és true-t ad vissza, ha az autó teljesíteni tudja a versenypályát; egyébként false-t:

int speed = 5;
int batteryDrain = 2;
var car = new RemoteControlCar(speed, batteryDrain);

int distance = 100;
var raceTrack = new RaceTrack(distance);

raceTrack.TryFinishTrack(car);
// => true
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
C# Exercism

Készen állsz elkezdeni a(z) Need for Speed 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.