Beispiel #1
0
        short[] GetQ1Setup(short[] upperSetup)
        {
            short[] bestSetup = new short[6];

            int driverExp = int.Parse(txtDriverExperience.Text);
            int driverTI  = int.Parse(txtDriverTI.Text);

            Classes.TechnicalDirector td = ReadTdFromForm();

            float HR = 135f - 0.1f * driverExp - 0.3f * driverTI;

            short SRWings      = (short)(HR - 0.39f * td.RDaerodynamics - 0.04f * td.Experience);
            short SREngine     = (short)(HR - 0.14f * td.RDmechanics - 0.2f * td.RDelectronics - 0.04f * td.Experience);
            short SRBrakes     = (short)(HR - 0.24f * td.RDmechanics - 0.009f * td.RDaerodynamics - 0.06f * td.Experience - 0.08f * td.RDelectronics);
            short SRGear       = (short)(HR - 0.29f * td.RDelectronics - 0.06f * td.Experience - 0.06f * td.RDmechanics);
            short SRSuspension = (short)(HR - 0.259f * td.RDmechanics - 0.07f * td.Experience - 0.09f * td.RDaerodynamics);

            bestSetup[0] = (short)(upperSetup[0] - SRWings);
            bestSetup[1] = (short)(upperSetup[1] - SRWings);
            bestSetup[2] = (short)(upperSetup[2] - SREngine);
            bestSetup[3] = (short)(upperSetup[3] - SRBrakes);
            bestSetup[4] = (short)(upperSetup[4] - SRGear);
            bestSetup[5] = (short)(upperSetup[5] - SRSuspension);

            return(bestSetup);
        }
Beispiel #2
0
 void FillTd(Classes.TechnicalDirector td)
 {
     txtTDLeadership.Text      = td.Leadership.ToString();
     txtTDRDMechanics.Text     = td.RDmechanics.ToString();
     txtTDRDElectronics.Text   = td.RDelectronics.ToString();
     txtTDRDAerodynamics.Text  = td.RDaerodynamics.ToString();
     txtTDExperience.Text      = td.Experience.ToString();
     txtTDPitCoordination.Text = td.Pitcoordination.ToString();
     txtTDMotivation.Text      = td.Motivation.ToString();
     txtTDAge.Text             = td.Age.ToString();
     txtTDSalary.Text          = td.Salary.ToString();
     txtTDRaces.Text           = td.RacesLeft.ToString();
 }
Beispiel #3
0
        void SaveSkills()//testing car
        {
            //Read values from form
            Classes.Car               car     = ReadCarFromForm();
            Classes.Driver            driver  = ReadDriverFromForm();
            Classes.TechnicalDirector td      = ReadTdFromForm();
            Classes.StaffFacilities   sf      = ReadSfFromForm();
            Classes.Weather           weather = ReadWeatherFromForm();
            int activeTyreCode = GetTyreCodeFromSkillTab();

            //Call the Save methods
            DB.Car.UpdateCarToDb(car);
            DB.Driver.UpdateDriverToDb(driver);
            DB.TechnicalDirector.UpdateTdToDb(td);
            DB.StaffFacilities.UpdateStaffFacilitiesToDb(sf);
            DB.Weather.UpdateWeatherToDb(weather);
            DB.Tyres.UpdateTyreToDb(activeTyreCode);
        }
Beispiel #4
0
        void InitiateSkillsTab()
        {
            Classes.Driver driver = DB.Driver.ReadDriverFromDB();
            FillDriver(driver);
            Classes.Car car = DB.Car.ReadCarFromDB();
            FillCar(car);
            Classes.TechnicalDirector td = DB.TechnicalDirector.ReadTdFromDB();
            FillTd(td);
            Classes.StaffFacilities sf = DB.StaffFacilities.ReadStaffFacilitiesFromDB();
            FillStaffFacilities(sf);
            UpdateStaffAndFacilitiesCost(sf);
            Classes.Weather w = DB.Weather.ReadWeatherFromDB();
            FillWeather(w);
            int activeTyreSupplierId = DB.ActiveTyreSupplier.GetTyreSupplierId();

            Classes.TyresSupplier tyre = DB.Tyres.ReadTyreFromSupplierDB(activeTyreSupplierId);
            FillActiveTyreSupplier(tyre);
        }
Beispiel #5
0
        Classes.TechnicalDirector ReadTdFromForm()
        {
            Classes.TechnicalDirector td = new Classes.TechnicalDirector();

            td.Age             = int.Parse(txtTDAge.Text);
            td.Experience      = int.Parse(txtTDExperience.Text);
            td.Leadership      = int.Parse(txtTDLeadership.Text);
            td.Motivation      = int.Parse(txtTDMotivation.Text);
            td.Pitcoordination = int.Parse(txtTDPitCoordination.Text);
            td.RacesLeft       = int.Parse(txtTDRaces.Text);
            td.RDaerodynamics  = int.Parse(txtTDRDAerodynamics.Text);
            td.RDelectronics   = int.Parse(txtTDRDElectronics.Text);
            td.RDmechanics     = int.Parse(txtTDRDMechanics.Text);
            td.Salary          = int.Parse(txtTDSalary.Text);

            td.Id = 1;

            return(td);
        }
Beispiel #6
0
        void GetNextPracticeSetup()
        {
            short[,] setups = new short[8, 11];

            int driverExp = int.Parse(txtDriverExperience.Text);
            int driverTI  = int.Parse(txtDriverTI.Text);

            Classes.TechnicalDirector td = ReadTdFromForm();

            float HR = 135f - 0.1f * driverExp - 0.3f * driverTI;

            float SRWings      = HR - 0.39f * td.RDaerodynamics - 0.04f * td.Experience;
            float SREngine     = HR - 0.14f * td.RDmechanics - 0.2f * td.RDelectronics - 0.04f * td.Experience;
            float SRBrakes     = HR - 0.24f * td.RDmechanics - 0.009f * td.RDaerodynamics - 0.06f * td.Experience - 0.08f * td.RDelectronics;
            float SRGear       = HR - 0.29f * td.RDelectronics - 0.06f * td.Experience - 0.06f * td.RDmechanics;
            float SRSuspension = HR - 0.259f * td.RDmechanics - 0.07f * td.Experience - 0.09f * td.RDaerodynamics;

            //Get setup list
            int practiceLap = 0;

            foreach (DataRow row in dtPractice.Rows)
            {
                object[] setupArray = row.ItemArray;
                for (int i = 0; i < 11; i++)
                {
                    setups[practiceLap, i] = short.Parse(setupArray[i].ToString());
                }
                practiceLap++;
            }

            //Process
            int lastLapNumber = dtPractice.Rows.Count - 1; //Subtract 1 because arrays in c# starts counting on 0

            int wingSetup = (int)((setups[lastLapNumber, 0] + setups[lastLapNumber, 1]) / 2 - setups[lastLapNumber, 6] * HR);

            wingSetup += (int)(HR * Math.Pow(2, -lastLapNumber) + (SRWings - HR));

            int engSetup = (int)(setups[lastLapNumber, 2] - setups[lastLapNumber, 7] * HR);

            engSetup += (int)(HR * Math.Pow(2, -lastLapNumber) + (SREngine - HR));

            int brakesSetup = (int)(setups[lastLapNumber, 3] - setups[lastLapNumber, 8] * HR);

            brakesSetup += (int)(HR * Math.Pow(2, -lastLapNumber) + (SRBrakes - HR));

            int gearSetup = (int)(setups[lastLapNumber, 4] - setups[lastLapNumber, 9] * HR);

            gearSetup += (int)(HR * Math.Pow(2, -lastLapNumber) + (SRGear - HR));

            int suspSetup = (int)(setups[lastLapNumber, 5] - setups[lastLapNumber, 10] * HR);

            suspSetup += (int)(HR * Math.Pow(2, -lastLapNumber) + (SRSuspension - HR));

            //Write next setup to form
            txtFWing1.Text      = wingSetup.ToString();
            txtRWing1.Text      = wingSetup.ToString();
            txtEngine1.Text     = engSetup.ToString();
            txtBreaks1.Text     = brakesSetup.ToString();
            txtGear1.Text       = gearSetup.ToString();
            txtSuspension1.Text = suspSetup.ToString();
        }