Пример #1
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Adds a function parameters. </summary>
        ///
        /// <param name="functionParameters">   Options for controlling the function. </param>
        ///
        /// <seealso cref="M:KelpNet.Common.Optimizers.Optimizer.AddFunctionParameters(NdArray[])"/>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        internal override void AddFunctionParameters([NotNull] NdArray[] functionParameters)
        {
            foreach (NdArray functionParameter in functionParameters)
            {
                OptimizerParameters.Add(new AdaDeltaParameter(functionParameter, this));
            }
        }
Пример #2
0
    private void GetOptimizerSettings()
    {
        OptimizerParameters.Reset();

        OptimizerParameters.Name        = GameObject.Find("Name Textbox").GetComponent <dfTextbox>().Text;
        OptimizerParameters.Description = GameObject.Find("Description Textbox").GetComponent <dfTextbox>().Text;

        OptimizerParameters.DistanceToKeep = GameObject.Find("s_DistanceToKeep").GetComponent <dfSlider>().Value;
        OptimizerParameters.WApproach      = GameObject.Find("s_KeepDistance").GetComponent <dfSlider>().Value;

        OptimizerParameters.WAngleTowards       = GameObject.Find("s_FaceTarget").GetComponent <dfSlider>().Value;
        OptimizerParameters.WTurretAngleTowards = GameObject.Find("s_TurretFaceTarget").GetComponent <dfSlider>().Value;
        OptimizerParameters.WMeleeAttack        = GameObject.Find("s_MeleeAttacks").GetComponent <dfSlider>().Value;
        OptimizerParameters.WRifleAttack        = GameObject.Find("s_RifleAttacks").GetComponent <dfSlider>().Value;
        OptimizerParameters.WRifleHits          = GameObject.Find("s_RifleHits").GetComponent <dfSlider>().Value;
        OptimizerParameters.WRiflePrecision     = GameObject.Find("s_RiflePrecision").GetComponent <dfSlider>().Value;
        OptimizerParameters.WMortarAttack       = GameObject.Find("s_MortarAttacks").GetComponent <dfSlider>().Value;
        OptimizerParameters.WMortarHits         = GameObject.Find("s_MortarHits").GetComponent <dfSlider>().Value;
        OptimizerParameters.WMortarPrecision    = GameObject.Find("s_MortarPrecision").GetComponent <dfSlider>().Value;
        OptimizerParameters.WMortarDamagePerHit = GameObject.Find("s_MortarDamagePerHit").GetComponent <dfSlider>().Value;


        string value = GameObject.Find("Target Movement Dropdown").GetComponent <dfDropdown>().SelectedValue;

        OptimizerParameters.TargetMoveStrategy = GetTargetMovePattern(value);
    }
Пример #3
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Adds a function parameters. </summary>
        ///
        /// <param name="functionParameters">   Options for controlling the function. </param>
        ///
        /// <seealso cref="M:KelpNet.Common.Optimizers.Optimizer.AddFunctionParameters(NdArray[])"/>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        internal override void AddFunctionParameters([NotNull] NdArray[] functionParameters)
        {
            foreach (NdArray functionParameter in functionParameters)
            {
                OptimizerParameters.Add(new GradientClippingParameter(functionParameter, this));
            }
        }
Пример #4
0
 private void setParameters()
 {
     OptimizerParameters.Clear();
     foreach (var item in OptimizerSettingData.Optimizer.Parameters)
     {
         OptimizerParameters.Add(new OptimizerParameterViewModel(item));
     }
 }
Пример #5
0
    // Update is called once per frame
    void OnGUI()
    {
        var top = 10;
        var stationary_aprroach = "Stationary Approach";
        var buttonClicked       = false;

        if (GUI.Button(new Rect(10, top, 200, 30), stationary_aprroach))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = stationary_aprroach;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            OptimizerParameters.WMeleeAttack       = 0;
            OptimizerParameters.WApproach          = 10;
            buttonClicked = true;
        }

        var stationary_melee = "Stationary Melee";

        top += 40;
        if (GUI.Button(new Rect(10, top, 200, 30), stationary_melee))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = stationary_melee;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            OptimizerParameters.WMeleeAttack       = 1;
            OptimizerParameters.WApproach          = 1;
            buttonClicked = true;
        }

        var simple_approach = "Simple Approach";

        top += 40;
        if (GUI.Button(new Rect(10, top, 200, 30), simple_approach))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = simple_approach;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Simple;
            OptimizerParameters.WMeleeAttack       = 0;
            OptimizerParameters.WApproach          = 10;
            buttonClicked = true;
        }

        var simple_attack = "Simple Attack";

        top += 40;
        if (GUI.Button(new Rect(10, top, 200, 30), simple_attack))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = simple_attack;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Simple;
            OptimizerParameters.WMeleeAttack       = 1;
            OptimizerParameters.WApproach          = 1;
            buttonClicked = true;
        }

        var random_approach = "Random Approach";

        top += 40;
        if (GUI.Button(new Rect(10, top, 200, 30), random_approach))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = random_approach;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Random;
            OptimizerParameters.WMeleeAttack       = 0;
            OptimizerParameters.WApproach          = 10;
            buttonClicked = true;
        }

        var random_attack = "Random Attack";

        top += 40;
        if (GUI.Button(new Rect(10, top, 200, 30), random_attack))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = random_attack;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Random;
            OptimizerParameters.WMeleeAttack       = 1;
            OptimizerParameters.WApproach          = 1;
            buttonClicked = true;
        }

        var angle_stationary = "Angle Stationary";

        top += 40;
        if (GUI.Button(new Rect(10, top, 200, 30), angle_stationary))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = angle_stationary;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            OptimizerParameters.WMeleeAttack       = 0;
            OptimizerParameters.WApproach          = 10f;
            OptimizerParameters.WRifleAttack       = 0;
            OptimizerParameters.WAngleTowards      = 0.1f;
            OptimizerParameters.DistanceToKeep     = 15f;
            buttonClicked = true;
        }

        var rifle_stationary = "Rifle Stationary";

        top += 40;
        if (GUI.Button(new Rect(10, top, 200, 30), rifle_stationary))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = rifle_stationary;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            OptimizerParameters.WMeleeAttack       = 0;
            //    OptimizerParameters.WApproach = 1f;
            OptimizerParameters.WRifleAttack = 0.1f;
            OptimizerParameters.WRifleHits   = 1f;
            //     OptimizerParameters.WAngleTowards = 1f;
            //     OptimizerParameters.DistanceToKeep = 15f;
            buttonClicked = true;
        }

        var rifle_markan = "Rifle Markman";

        top += 40;
        if (GUI.Button(new Rect(10, top, 200, 30), rifle_markan))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = rifle_markan;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            OptimizerParameters.WMeleeAttack       = 0;
            //    OptimizerParameters.WApproach = 1f;
            //    OptimizerParameters.WRifleAttack = 0.1f;
            OptimizerParameters.WRifleHits      = 1f;
            OptimizerParameters.WRiflePrecision = 10f;
            //     OptimizerParameters.WAngleTowards = 1f;
            //     OptimizerParameters.DistanceToKeep = 15f;
            buttonClicked = true;
        }

        var flee = "Flee";

        top += 40;
        if (GUI.Button(new Rect(10, top, 200, 30), flee))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = flee;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            OptimizerParameters.MultipleTargets    = true;
            OptimizerParameters.WApproach          = 1f;
            OptimizerParameters.DistanceToKeep     = 20f;
            buttonClicked = true;
        }


        if (GUI.Button(new Rect(250, 10, 200, 60), "BATTLE!"))
        {
            Application.LoadLevel("Battle Arena");
        }

        GUI.Label(new Rect(250, 90, 200, 60), Application.persistentDataPath);

        if (GUI.Button(new Rect(500, 10, 200, 60), "NETWORK!"))
        {
            Application.LoadLevel("Network Test");
        }

        if (GUI.Button(new Rect(500, 80, 200, 60), "NETWORK!"))
        {
            print("Checking connection");
            ParseQuery <ParseObject> query = ParseObject.GetQuery("TestObject");
            query.GetAsync("BAi0Ok6Ipi").ContinueWith(t =>
            {
                if (t != null)
                {
                    print("Connected!");
                    print(t.Result.Get <string>("foo"));
                }
            });
        }



        top = 120;
        var turret_angle = "Turret Angle";

        top += 40;
        if (GUI.Button(new Rect(250, top, 200, 30), turret_angle))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = turret_angle;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            //    OptimizerParameters.WApproach = 1f;
            OptimizerParameters.DistanceToKeep      = 30f;
            OptimizerParameters.WTurretAngleTowards = 10f;
            buttonClicked = true;
        }

        var mortar_attack = "Mortar Attack";

        top += 40;
        if (GUI.Button(new Rect(250, top, 200, 30), mortar_attack))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = mortar_attack;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            //    OptimizerParameters.WApproach = 1f;
            OptimizerParameters.DistanceToKeep      = 30f;
            OptimizerParameters.WTurretAngleTowards = 10f;
            OptimizerParameters.WMortarAttack       = 0.1f;
            buttonClicked = true;
        }

        var mortar_hits = "Mortar Hits";

        top += 40;
        if (GUI.Button(new Rect(250, top, 200, 30), mortar_hits))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = mortar_hits;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            //    OptimizerParameters.WApproach = 1f;
            //   OptimizerParameters.DistanceToKeep = 30f;
            //    OptimizerParameters.WTurretAngleTowards = 10f;
            //  OptimizerParameters.WMortarAttack = 0.1f;
            //    OptimizerParameters.WMortarHits = 10f;
            OptimizerParameters.WMortarDamage = 1f;
            buttonClicked = true;
        }

        var mortar_precision = "Mortar Precision";

        top += 40;
        if (GUI.Button(new Rect(250, top, 200, 30), mortar_precision))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = mortar_precision;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            //    OptimizerParameters.WApproach = 1f;
            //   OptimizerParameters.DistanceToKeep = 30f;
            //    OptimizerParameters.WTurretAngleTowards = 10f;
            //  OptimizerParameters.WMortarAttack = 0.1f;
            //    OptimizerParameters.WMortarHits = 10f;
            //   OptimizerParameters.WMortarDamage = 1f;
            OptimizerParameters.WMortarPrecision = 1f;
            buttonClicked = true;
        }

        var mortar_dmg_hit = "Mortar Dmg pr Hit";

        top += 40;
        if (GUI.Button(new Rect(250, top, 200, 30), mortar_dmg_hit))
        {
            OptimizerParameters.Reset();
            OptimizerParameters.Name = mortar_dmg_hit;
            OptimizerParameters.TargetMoveStrategy = TargetMove.Stationary;
            //    OptimizerParameters.WApproach = 1f;
            //   OptimizerParameters.DistanceToKeep = 30f;
            //    OptimizerParameters.WTurretAngleTowards = 10f;
            //  OptimizerParameters.WMortarAttack = 0.1f;
            //    OptimizerParameters.WMortarHits = 10f;
            //   OptimizerParameters.WMortarDamage = 1f;
            //    OptimizerParameters.WMortarPrecision = 1f;
            OptimizerParameters.WMortarDamagePerHit = 1f;
            buttonClicked = true;
        }

        if (buttonClicked)
        {
            Utility.DebugLog = false;
            Application.LoadLevel("Optimization scene");
        }
    }