コード例 #1
0
    public static Driver CreateDriver(List <string> args, Car car)
    {
        string type     = args[0];
        string name     = args[1];
        string tyreType = car.Tyre.GetType().Name;

        Driver driver = null;

        if (tyreType.Equals("Ultrasoft"))
        {
            if (type.Equals("Aggressive"))
            {
                driver = new AggressiveDriver(name, car);
            }
            else if (type.Equals("Endurance"))
            {
                driver = new EnduranceDriver(name, car);
            }
        }
        else
        {
            switch (type)
            {
            case "Aggressive":
                driver = new AggressiveDriver(name, car);
                break;

            case "Endurance":
                driver = new EnduranceDriver(name, car);
                break;
            }
        }
        return(driver);
    }
コード例 #2
0
    public static Driver CreateDriver(List <string> arguments)
    {
        string driverType = arguments[0];
        string driverName = arguments[1];
        int    hp         = int.Parse(arguments[2]);
        double fuelAmount = double.Parse(arguments[3]);


        try
        {
            arguments = arguments.Skip(4).Take(3).ToList();
            Tyre tyre = TyreFactory.CreateTyre(arguments);

            Car car = new Car(hp, fuelAmount, tyre);

            if (driverType == "Aggressive")
            {
                Driver driver = new AggressiveDriver(driverName, car);
                return(driver);
            }
            else if (driverType == "Endurance")
            {
                Driver driver = new EnduranceDriver(driverName, car);
                return(driver);
            }
            return(null);
        }
        catch (Exception)
        {
            return(null);
        }
    }
コード例 #3
0
    public Driver GetDriver(string[] arr)
    {
        string type       = arr[0];
        string name       = arr[1];
        int    hp         = int.Parse(arr[2]);
        double fuelAmount = double.Parse(arr[3]);

        string[] tyreArr = arr.Skip(4).ToArray();

        TyreFactory tyre = new TyreFactory();
        Driver      driver;

        switch (type)
        {
        case "Aggressive":
            driver = new AggressiveDriver(name, new Car(hp, fuelAmount, tyre.GetTyre(tyreArr)));
            break;

        case "Endurance":
            driver = new EnduranceDriver(name, new Car(hp, fuelAmount, tyre.GetTyre(tyreArr)));
            break;

        default:
            return(null);
        }

        return(driver);
    }
コード例 #4
0
    public static Driver CreateDriver(List <string> commandArgs)
    {
        Driver driver;

        var type       = commandArgs[0];
        var name       = commandArgs[1];
        var hp         = int.Parse(commandArgs[2]);
        var fuelAmount = double.Parse(commandArgs[3]);

        var args = commandArgs.Skip(4).ToList();
        var tyre = TyreFactory.CreateTyre(args);

        var car = new Car(hp, fuelAmount, tyre);

        if (type == "Aggressive")
        {
            driver = new AggressiveDriver(name, car);
        }
        else if (type == "Endurance")
        {
            driver = new EnduranceDriver(name, car);
        }
        else
        {
            throw new ArgumentException();
        }

        return(driver);
    }
コード例 #5
0
    public Driver Create(List <string> commandArgs)
    {
        var type       = commandArgs[0];
        var name       = commandArgs[1];
        var hp         = int.Parse(commandArgs[2]);
        var fuelAmount = double.Parse(commandArgs[3]);



        Tyre tyre = tyreFactory.CreateTyre(commandArgs.Skip(4).ToList());
        Car  car  = new Car(hp, fuelAmount, tyre);

        Driver driver = null;

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

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

        return(driver);
    }
コード例 #6
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;
        }
    }
コード例 #7
0
        public Driver Create(List <string> commandArgs)
        {
            Driver driver = null;

            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 (tyreType == "Ultrasoft")
            {
                double grip = double.Parse(commandArgs[6]);



                switch (type)
                {
                case "Aggressive":
                {
                    driver = new AgressiveDriver(name, hp, fuelAmount, tyreType, tyreHardness, grip);

                    break;
                }

                case "Endurance":
                {
                    driver = new EnduranceDriver(name, hp, fuelAmount, tyreType, tyreHardness, grip);

                    break;
                }
                }
            }
            else
            {
                switch (type)
                {
                case "Aggressive":
                {
                    driver = new AgressiveDriver(name, hp, fuelAmount, tyreType, tyreHardness);

                    break;
                }

                case "Endurance":
                {
                    driver = new EnduranceDriver(name, hp, fuelAmount, tyreType, tyreHardness);

                    break;
                }
                }
            }

            return(driver);
        }
コード例 #8
0
    public static Driver CreateInstance(List <string> args)
    {
        try
        {
            List <string> tyreParams = new List <string>();

            string driverType = args[0];
            string driverName = args[1];
            int    carHp      = int.Parse(args[2]);
            double fuelAmount = double.Parse(args[3]);

            string tyreType = args[4];
            tyreParams.Add(tyreType);

            string tyreHardness = args[5];
            tyreParams.Add(tyreHardness);

            if (tyreType == "Ultrasoft")
            {
                string grip = args[6];
                tyreParams.Add(grip);
            }

            Tyre newTyre = TyreFactory.CreateInstance(tyreParams);

            Car newCar = new Car(carHp, fuelAmount, newTyre);

            Driver newDriver = null;

            if (args[0] == "Aggressive")
            {
                newDriver = new AggressiveDriver(driverName, newCar);
            }
            else if (args[0] == "Endurance")
            {
                newDriver = new EnduranceDriver(driverName, newCar);
            }

            return(newDriver);
        }
        catch
        {
            return(null);
        }

        // type – a string, equal to either “Aggressive“ or “Endurance“
        // name – a string
        // hp – an integer
        // fuelAmount – a floating-point number
        // tyreType – a string
        // tyreHardness – a floating-point number
        // If the type of tyre is Ultrasoft, you will receive 1 extra parameter:
        // grip –  a positive floating - point number
    }
コード例 #9
0
    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
        }
    }
コード例 #10
0
    public Driver CreateDriver(string driverType, string driverName, Car car)
    {
        Driver driver = null;

        if (driverType == "Aggressive")
        {
            driver = new AggressiveDriver(driverName, car);
        }
        else if (driverType == "Endurance")
        {
            driver = new EnduranceDriver(driverName, car);
        }

        return(driver);
    }
コード例 #11
0
        public IDriver Produce(List <string> cmdArgs, ICar car, int lengthOfLap)
        {
            var     type   = cmdArgs[1];
            IDriver driver = null;
            var     name   = cmdArgs[2];

            if (type == "Aggressive")
            {
                driver = new AggressiveDriver(name, car, lengthOfLap);
            }
            else if (type == "Endurance")
            {
                driver = new EnduranceDriver(name, car, lengthOfLap);
            }
            return(driver);
        }
コード例 #12
0
    private Driver CreateDriver(string type, string name, Car car)
    {
        Driver driver = null;

        if (type == "Aggressive")
        {
            driver = new AggressiveDriver(name, car);
            return(driver);
        }
        else if (type == "Endurance")
        {
            driver = new EnduranceDriver(name, car);
            return(driver);
        }
        throw new ArgumentException("Invalid Driver Type");
    }
コード例 #13
0
    public Driver CreateDriver(string driverType, string driverName, Car car)
    {
        Driver driver = null;

        if (driverType == "Endurance")
        {
            driver = new EnduranceDriver(driverName, car);
            return(driver);
        }
        else if (driverType == "Aggressive")
        {
            driver = new AggressiveDriver(driverName, car);
            return(driver);
        }

        throw new ArgumentException(ErrorMessages.InvalidDriverType);
    }
コード例 #14
0
    public Driver CreateDriver(string type, string name, Car car)
    {
        Driver driver;

        if (type == "Aggressive")
        {
            driver = new AggressiveDriver(name, car);
            return(driver);
        }
        if (type == "Endurance")
        {
            driver = new EnduranceDriver(name, car);
            return(driver);
        }

        throw new ArgumentException(OutputMessages.InvalidDriverType);
    }
コード例 #15
0
    private static Drivers InitializeCarEntDriver(string type, string name, int hp, double fuelAmount, Tyre tyre)
    {
        Car car = new Car(hp, fuelAmount, tyre);

        if (type == "Aggressive")
        {
            Drivers driver = new AggressivDriver(name, car);
            return(driver);
        }
        else if (type == "Endurance")
        {
            Drivers driver = new EnduranceDriver(name, car);
            return(driver);
        }

        throw new Exception();
    }
コード例 #16
0
    public Driver CreateDriver(string typeOfDriver, string nameOfDriver, Car car)
    {
        Driver newDriver = null;

        switch (typeOfDriver)
        {
        case "Aggressive":
            newDriver = new AggressiveDriver(nameOfDriver, car);
            break;

        case "Endurance":
            newDriver = new EnduranceDriver(nameOfDriver, car);
            break;

        default:
            break;
        }
        return(newDriver);
    }
コード例 #17
0
    public IDriver CreateDriver(string type, string name, ICar car)
    {
        IDriver driver;

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

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

        default:
            throw new System.ArgumentException();
        }

        return(driver);
    }
コード例 #18
0
    private Driver CreateDriver(string type, string name, Car car)
    {
        Driver driver = null;

        if (type == "Aggressive")
        {
            driver = new AggressiveDriver(name, car);
        }
        else if (type == "Endurance")
        {
            driver = new EnduranceDriver(name, car);
        }

        if (driver == null)
        {
            throw new ArgumentException(ErrorMessages.InvalidDriverType);
        }

        return(driver);
    }
コード例 #19
0
        public Driver Create(List <string> commandArgs)
        {
            Driver        driver   = null;
            Car           car      = null;
            Tyre          tyre     = null;
            List <string> tyreArgs = new List <string>();

            double grip;
            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]);

            tyreArgs.Add(tyreType);
            tyreArgs.Add(tyreHardness.ToString());

            if (commandArgs.Count > 6)
            {
                grip = double.Parse(commandArgs[6]);
                tyreArgs.Add(grip.ToString());
            }

            tyre = tyreFactory.Create(tyreArgs);
            tyreArgs.Clear();

            switch (type)
            {
            case "Aggressive":
                car    = new Car(hp, fuelAmount, tyre);
                driver = new AggressiveDriver(name, car);
                break;

            case "Endurance":
                car    = new Car(hp, fuelAmount, tyre);
                driver = new EnduranceDriver(name, car);
                break;
            }
            return(driver);
        }
コード例 #20
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);
    }
コード例 #21
0
    public static Driver CreateDriver(List <string> arguments)
    {
        string typeOfDriver = arguments[0];
        var    name         = arguments[1];
        var    hp           = int.Parse(arguments[2]);
        var    fuelAmount   = double.Parse(arguments[3]);

        Car car = new Car(hp, fuelAmount, TyreFactory.CreateType(arguments));

        if (typeOfDriver == "Aggressive")
        {
            AggressiveDriver aggressiveDriver = new AggressiveDriver(name, car);
            return(aggressiveDriver);
        }
        else if (typeOfDriver == "Endurance")
        {
            EnduranceDriver enduranceDriver = new EnduranceDriver(name, car);
            return(enduranceDriver);
        }
        else
        {
            throw new ArgumentException();
        }
    }
コード例 #22
0
    public static Driver CreaterDriver(List <string> commandArgs)
    {
        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]);

        Tyre tyre = TyreFactory.CreateTyre(tyreType, tyreHardness, commandArgs);
        Car  car  = new Car(hp, fuelAmount, tyre);

        Driver driver = null;

        if (type == "Aggressive")
        {
            driver = new AggressiveDriver(name, car);
        }
        else if (type == "Endurance")
        {
            driver = new EnduranceDriver(name, car);
        }
        return(driver);
    }
コード例 #23
0
    public static void RegisterDriver(List <string> commandArgs)
    {
        if (commandArgs.Count < 6 && commandArgs.Count > 7)
        {
            return;
        }

        string driverType   = 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]);

        Tyre   tyre   = null;
        Car    car    = null;
        Driver driver = null;

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



            // tyre = new UltrasoftTyre(tyreHardness, grip);

            try
            {
                tyre = new UltrasoftTyre(tyreHardness, grip);
            }
            catch (Exception ex)
            {
                // Console.WriteLine(ex.Message);
                return;
            }
        }
        else if (tyreType == "Hard")
        {
            // tyre = new HardTyre(tyreHardness);

            try
            {
                tyre = new HardTyre(tyreHardness);
            }
            catch (Exception ex)
            {
                // Console.WriteLine(ex.Message);
                return;
            }
        }
        else
        {
            return;
        }

        // car = new Car(hp, fuelAmount, tyre);

        try
        {
            car = new Car(hp, fuelAmount, tyre);
        }
        catch (Exception ex)
        {
            // Console.WriteLine(ex.Message);
            return;
        }


        if (driverType == "Aggressive")
        {
            // driver = new AggressiveDriver(name, car);

            try
            {
                driver = new AggressiveDriver(name, car);
            }
            catch (Exception ex)
            {
                // Console.WriteLine(ex.Message);
                return;
            }
        }
        else if (driverType == "Endurance")
        {
            // driver = new EnduranceDriver(name, car);

            try
            {
                driver = new EnduranceDriver(name, car);
            }
            catch (Exception ex)
            {
                // Console.WriteLine(ex.Message);
                return;
            }
        }
        else
        {
            return;
        }

        drivers.Add(name, driver);
    }