상속: Tyre
예제 #1
0
    public Tyre CreateTyre(string[] tyreArgs)
    {
        var tyreType     = tyreArgs[0];
        var tyreHardness = double.Parse(tyreArgs[1]);

        Tyre tyre = null;

        if (tyreType == "Hard")
        {
            tyre = new HardTyre(tyreHardness);
        }
        else if (tyreType == "Ultrasoft")
        {
            var grip = double.Parse(tyreArgs[2]);

            tyre = new UltrasoftTyre(tyreHardness, grip);
        }

        if (tyre == null)
        {
            throw new ArgumentException("Invalid Tyre Type");
        }

        return(tyre);
    }
예제 #2
0
    public void DriverBoxes(List <string> arguments)
    {
        string command    = arguments[0];
        string driverName = arguments[1];

        this.Drivers[driverName].TotalTime += 20;

        if (command == "ChangeTyres")
        {
            string tyreType = arguments[2];
            double hardness = double.Parse(arguments[3]);

            if (tyreType == "Ultrasoft")
            {
                double grip = double.Parse(arguments[4]);
                Tyre   tyre = new UltrasoftTyre(hardness, grip);
                this.Drivers[driverName].Car.ChangeTyre(tyre);
            }
            else if (tyreType == "Hard")
            {
                Tyre tyre = new HardTyre(hardness);
                this.Drivers[driverName].Car.ChangeTyre(tyre);
            }
        }
        else if (command == "Refuel")
        {
            double fuelAmount = double.Parse(arguments[2]);
            this.Drivers[driverName].Car.Refuel(fuelAmount);
        }
    }
예제 #3
0
    public void DriverBoxes(List <string> commandArgs)
    {
        string action = commandArgs[0];
        string name   = commandArgs[1];

        Driver driver = racingDrivers.FirstOrDefault(d => d.Name == name);

        driver.AddTime(BOX_TIME);

        if (action == "Refuel")
        {
            double fuel = double.Parse(commandArgs[2]);
            driver.Car.Refuel(fuel);
        }
        else if (action == "ChangeTyres")
        {
            double hardness = double.Parse(commandArgs[3]);
            switch (commandArgs[2])
            {
            case "Hard":
                HardTyre hardTyre = new HardTyre(hardness);
                driver.Car.ChangeTyre(hardTyre);
                break;

            case "Ultrasoft":
                double        grip     = double.Parse(commandArgs[4]);
                UltrasoftTyre softTyre = new UltrasoftTyre(hardness, grip);
                driver.Car.ChangeTyre(softTyre);
                break;
            }
        }
    }
예제 #4
0
    public Tyre CreateTyre(List <string> commandArgs)
    {
        var tyreType     = commandArgs[0];
        var tyreHardness = double.Parse(commandArgs[1]);

        var grip = 0.0;

        if (tyreType == "Ultrasoft")
        {
            grip = double.Parse(commandArgs[2]);
        }

        Tyre tyre = null;

        switch (tyreType)
        {
        case "Ultrasoft":
            tyre = new UltrasoftTyre(tyreHardness, grip);
            break;

        case "Hard":
            tyre = new HardTyre(tyreHardness);
            break;
        }

        return(tyre);
    }
예제 #5
0
    public void DriverBoxes(List <string> commandArgs)
    {
        string driverName    = commandArgs[1];
        var    currentDriver = drivers.Where(d => d.Name == driverName).First();

        currentDriver.TotalTime += 20;

        switch (commandArgs[0])
        {
        case "Refuel":
            double fuelAmout = double.Parse(commandArgs[2]);
            currentDriver.Car.Refuel(fuelAmout);
            break;

        case "ChangeTyres":
            Tyre   tyre         = null;
            double tyreHardness = double.Parse(commandArgs[3]);

            if (commandArgs[2] == "Hard")
            {
                tyre = new HardTyre(tyreHardness);
            }
            else if (commandArgs[2] == "Ultrasoft")
            {
                double grip = double.Parse(commandArgs[4]);
                tyre = new UltrasoftTyre(tyreHardness, grip);
            }
            currentDriver.Car.ChangeTyre(tyre);
            break;
        }
    }
예제 #6
0
    public void DriverBoxes(List <string> commandArgs)
    {
        string boxType    = commandArgs[0];
        string driverName = commandArgs[1];
        Driver driver     = allDrivers.FirstOrDefault(x => x.Name == driverName);

        switch (boxType)
        {
        case "Refuel":
            double fuelAmmount = double.Parse(commandArgs[2]);
            driver.Car.Refuel(fuelAmmount);
            break;

        case "ChangeTyres":
            string tyreType = commandArgs[2];
            double hardness = double.Parse(commandArgs[3]);
            if (tyreType == "Ultrasoft")
            {
                double grip    = double.Parse(commandArgs[4]);
                Tyre   newTyre = new UltrasoftTyre(hardness, grip);
                driver.Car.ChangeTyres(newTyre);
            }
            else
            {
                Tyre newTyre = new HardTyre(hardness);
                driver.Car.ChangeTyres(newTyre);
            }
            break;
        }
    }
예제 #7
0
    public Tyre CreateTyre(List <string> commandArgs)
    {
        Tyre newTyre = null;

        try
        {
            switch (commandArgs[0])
            {
            case "Hard":
                newTyre = new HardTyre(double.Parse(commandArgs[1]));
                break;

            case "Ultrasoft":
                newTyre = new UltrasoftTyre(double.Parse(commandArgs[1]), double.Parse(commandArgs[2]));
                break;

            default:
                break;
            }
        }
        catch (Exception)
        {
        }
        return(newTyre);
    }
예제 #8
0
        public Tyre Create(string tyreType, double tyreHardness)
        {
            Tyre tyre = null;

            tyre = new HardTyre(tyreHardness);

            return(tyre);
        }
예제 #9
0
    public void RegisterDriver(List <string> commandArgs)
    {
        var driverType = commandArgs[0];
        var tyreType   = commandArgs[4];

        try
        {
            switch (tyreType)
            {
            case "Hard":
                var hardTyre = new HardTyre(double.Parse(commandArgs[5]));
                var car      = new Car(int.Parse(commandArgs[2]), double.Parse(commandArgs[3]), hardTyre);
                switch (driverType)
                {
                case "Aggressive":
                    var agressiveDriver = new AggressiveDriver(commandArgs[1], car);
                    drivers.Add(agressiveDriver);
                    break;

                case "Endurance":
                    var eduranceDriver = new EnduranceDriver(commandArgs[1], car);
                    drivers.Add(eduranceDriver);
                    break;

                default:
                    break;
                }
                break;

            case "Ultrasoft":
                var ultrasoftTyre = new UltrasoftTyre(double.Parse(commandArgs[5]), double.Parse(commandArgs[6]));
                var car2          = new Car(int.Parse(commandArgs[2]), double.Parse(commandArgs[3]), ultrasoftTyre);
                switch (driverType)
                {
                case "Aggressive":
                    var agressiveDriver = new AggressiveDriver(commandArgs[1], car2);
                    drivers.Add(agressiveDriver);
                    break;

                case "Endurance":
                    var enduranceDriver = new EnduranceDriver(commandArgs[1], car2);
                    drivers.Add(enduranceDriver);
                    break;

                default:
                    break;
                }
                break;

            default:
                break;
            }
        }
        catch (Exception)
        {
            return;
        }
    }
예제 #10
0
    public static Tyre CreateTyre(string tyreType, double tyreHardness, List <string> commandArgs)
    {
        Tyre tyre;

        if (tyreType == "Hard")
        {
            return(tyre = new HardTyre(tyreHardness));
        }
        double grip = double.Parse(commandArgs[6]);

        return(tyre = new UltrasoftTyre(tyreHardness, grip));
    }
    public void RegisterDriver(List <string> commandArgs)
    {
        try
        {
            string type         = commandArgs[0];
            string name         = commandArgs[1];
            int    hp           = int.Parse(commandArgs[2]);
            double fuelAmount   = double.Parse(commandArgs[3]);
            string tyreType     = commandArgs[4];
            double tyreHardness = double.Parse(commandArgs[5]);

            if (commandArgs.Count == 6)
            {
                Tyre hardTyre = new HardTyre(tyreHardness);
                Car  car      = new Car(hp, fuelAmount, hardTyre);

                if (type == "Aggressive")
                {
                    Driver aggressiveDriver = new AggressiveDriver(name, car);
                    drivers.Add(aggressiveDriver);
                }
                else if (type == "Endurance")
                {
                    Driver enduranceDriver = new EnduranceDriver(name, car);
                    drivers.Add(enduranceDriver);
                }
            }
            else if (commandArgs.Count == 7)
            {
                double grip = double.Parse(commandArgs[6]);

                Tyre ultraSoftTyre = new UltrasoftTyre(tyreHardness, grip);
                Car  car           = new Car(hp, fuelAmount, ultraSoftTyre);

                if (type == "Aggressive")
                {
                    Driver aggressiveDriver = new AggressiveDriver(name, car);
                    drivers.Add(aggressiveDriver);
                }
                else if (type == "Endurance")
                {
                    Driver enduranceDriver = new EnduranceDriver(name, car);
                    drivers.Add(enduranceDriver);
                }
            }
        }
        catch (Exception e)
        {
            // FAK U
        }
    }
예제 #12
0
        public ITyre Produce(List <string> cmdArgs)
        {
            var   type = cmdArgs[5];
            ITyre tyre = null;

            if (type == "Ultrasoft")
            {
                var hardness = double.Parse(cmdArgs[6]);
                var grip     = double.Parse(cmdArgs[7]);
                tyre = new UltrasoftTyre(hardness, grip);
            }
            else if (type == "Hard")
            {
                var hardness = double.Parse(cmdArgs[6]);
                tyre = new HardTyre(hardness);
            }
            return(tyre);
        }
예제 #13
0
    public static Tyre CreateTyre(List <string> tyreArgs)
    {
        string type     = tyreArgs[0];
        double hardness = double.Parse(tyreArgs[1]);

        Tyre tyre = null;

        if (type.Equals("Ultrasoft"))
        {
            double grip = double.Parse(tyreArgs[2]);
            tyre = new UltrasoftTyre(hardness, grip);
        }
        else if (type.Equals("Hard"))
        {
            tyre = new HardTyre(hardness);
        }

        return(tyre);
    }
예제 #14
0
    public void RegisterDriver(List <string> commandArgs)
    {
        string type         = commandArgs[0];
        string driverName   = commandArgs[1];
        int    hp           = int.Parse(commandArgs[2]);
        double fuelAmount   = double.Parse(commandArgs[3]);
        string tyreType     = commandArgs[4];
        double tyreHardness = double.Parse(commandArgs[5]);

        if (commandArgs.Count == 6)
        {
            Tyre tyre = new HardTyre(tyreHardness);
            Car  car  = new Car(hp, fuelAmount, tyre);
            //AggressiveDriver aggressiveDriver = new AggressiveDriver();
        }
        else
        {
        }
    }
예제 #15
0
    public Tyre CreateTyre(string[] args)
    {
        Tyre tyre = null;

        string type         = args[0];
        double tyreHardness = double.Parse(args[1]);
        double tyreGrip     = 0d;

        if (type == "Hard")
        {
            tyre = new HardTyre(tyreHardness);
        }
        if (type == "Ultrasoft")
        {
            tyreGrip = double.Parse(args[2]);
            tyre     = new UltrasoftTyre(tyreHardness, tyreGrip);
        }

        return(tyre);
    }
예제 #16
0
    private Tyre CreateTyre(string[] tyreArgs)
    {
        var type     = tyreArgs[0];
        var hardness = double.Parse(tyreArgs[1]);

        Tyre tyre = null;

        if (type == "Hard")
        {
            tyre = new HardTyre(hardness);
            return(tyre);
        }
        else if (type == "Ultrasoft")
        {
            var grip = double.Parse(tyreArgs[2]);
            tyre = new UltrasoftTyre(hardness, grip);
            return(tyre);
        }
        throw new ArgumentException(OutputMessages.InvalidTyreType);
    }
    public Tyre CreateTyre(string[] tyreArgs)
    {
        string tyreType = tyreArgs[0];
        double hardness = double.Parse(tyreArgs[1]);

        Tyre tyre = null;

        if (tyreType == "Hard")
        {
            tyre = new HardTyre(hardness);
        }
        else if (tyreType == "Ultrasoft")
        {
            double grip = double.Parse(tyreArgs[2]);

            tyre = new UltrasoftTyre(hardness, grip);
        }

        return(tyre);
    }
예제 #18
0
    public Tyre CreateTyre(string[] tyreArgs)
    {
        string tyreType     = tyreArgs[0];
        double tyreHardness = double.Parse(tyreArgs[1]);
        Tyre   tyre         = null;

        if (tyreType == "Hard")
        {
            tyre = new HardTyre(tyreHardness);
            return(tyre);
        }
        else if (tyreType == "Ultrasoft")
        {
            double grip = double.Parse(tyreArgs[2]);
            tyre = new UltrasoftTyre(tyreHardness, grip);
            return(tyre);
        }

        throw new ArgumentException(ErrorMessages.InvalidTyreType);
    }
예제 #19
0
        private void ChangeTyres(List <string> commandArgs, IDriver driver)
        {
            var   type    = commandArgs[3];
            ITyre newTyre = null;

            if (type == "Ultrasoft")
            {
                var hardness = double.Parse(commandArgs[4]);
                var grip     = double.Parse(commandArgs[5]);
                newTyre = new UltrasoftTyre(hardness, grip);
            }
            else if (type == "Hard")
            {
                var hardness = double.Parse(commandArgs[4]);
                newTyre = new HardTyre(hardness);
            }
            if (driver != null)
            {
                driver.Car.Tyre = newTyre;
            }
        }
예제 #20
0
    public static Tyre CreateType(List <string> arguments)
    {
        var tyreType     = arguments[4];
        var tyreHardness = double.Parse(arguments[5]);

        if (tyreType == "Ultrasoft")
        {
            var  grip = double.Parse(arguments[6]);
            Tyre tyre = new UltrasoftTyre(tyreHardness, grip);
            return(tyre);
        }
        else if (tyreType == "Hard")
        {
            Tyre tyre = new HardTyre(tyreHardness);
            return(tyre);
        }
        else
        {
            throw new ArgumentException();
        }
    }
예제 #21
0
    public void RegisterDriver(List <string> commandArgs)
    {
        string driverType   = commandArgs[0];
        string name         = commandArgs[1];
        int    hp           = int.Parse(commandArgs[2]);
        double fuelAmmount  = double.Parse(commandArgs[3]);
        string tyreType     = commandArgs[4];
        double tyreHardness = double.Parse(commandArgs[5]);

        Tyre tyre = null;

        if (tyreType == "Ultrasoft")
        {
            double tyreGrip = double.Parse(commandArgs[6]);
            tyre = new UltrasoftTyre(tyreHardness, tyreGrip);
        }
        else
        {
            tyre = new HardTyre(tyreHardness);
        }
        Car car = new Car(hp, fuelAmmount, tyre);

        Driver driver = null;

        switch (driverType)
        {
        case "Aggressive":
            driver = new AggressiveDriver(name, car);
            break;

        case "Endurance":
            driver = new EnduranceDriver(name, car);
            break;

        default:
            throw new ArgumentException();
        }

        allDrivers.Add(driver);
    }
    public static Tyre CreateInstance(List <string> args)
    {
        try
        {
            Tyre newTyre = null;

            if (args[0] == "Ultrasoft")
            {
                newTyre = new UltrasoftTyre(double.Parse(args[1]), double.Parse(args[2]));
            }
            else
            {
                newTyre = new HardTyre(double.Parse(args[1]));
            }

            return(newTyre);
        }
        catch
        {
            return(null);
        }
    }
예제 #23
0
        public Tyre Create(List <string> commandArgs)
        {
            Tyre tyre = null;

            string name     = commandArgs[0];
            double hardness = double.Parse(commandArgs[1]);
            double grip     = 0;

            switch (name)
            {
            case "Hard":
                tyre = new HardTyre(hardness);
                break;

            case "Ultrasoft":
                grip = double.Parse(commandArgs[2]);
                tyre = new UltrasoftTyre(hardness, grip);
                break;
            }

            return(tyre);
        }
예제 #24
0
    public Tyre GetTyre(string[] arr)
    {
        string type     = arr[0];
        double hardness = double.Parse(arr[1]);
        Tyre   tyre;

        switch (type)
        {
        case "Ultrasoft ":
            double grip = double.Parse(arr[2]);
            tyre = new UltrasoftTyre(hardness, grip);
            break;

        case "Hard":
            tyre = new HardTyre(hardness);
            break;

        default:
            return(null);
        }

        return(tyre);
    }
예제 #25
0
    public ITyre CreateTyre(string[] args)
    {
        var type     = args[0];
        var hardness = double.Parse(args[1]);

        ITyre tyre;

        switch (type)
        {
        case "Ultrasoft":
            var grip = double.Parse(args[2]);
            tyre = new UltrasoftTyre(hardness, grip);
            break;

        case "Hard":
            tyre = new HardTyre(hardness);
            break;

        default:
            throw new System.ArgumentException();
        }

        return(tyre);
    }