Exemple #1
0
        // DISTANCE,ES_ATTACK,MS_STAND,MS_NEAR,MS_FAR,OUTPUT , ES_STAND,ES_NEAR,ES_FAR,MS_ATTACK,



        public void UpdateAIState(WindowsGame2.AI.OUTPUT state)
        {
            WindowsGame2.AI.InputData input = GetInputData();

            _LastAction = state;
            //float

            _Learning.AddData(input, state);
        }
Exemple #2
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);



            if (CombatSprite.GetcurrentAnimation() != null && CombatSprite.GetcurrentAnimation().IsLoop == false)
            {
                if (CombatSprite.IsPlaybackComplete == false)
                {
                    return;
                }

                State = RolePlayingGameData.Character.CharacterState.Idle;
            }


            switch (State)
            {
            case RolePlayingGameData.Character.CharacterState.Walking:
            case RolePlayingGameData.Character.CharacterState.Idle:


                WindowsGame2.AI.InputData input = GetInputData();

                _CurAIState = MyLearning.I.GetNextAction(input);

                break;
            }


            switch (_CurAIState)
            {
            case OUTPUT.STAND:
                State = RolePlayingGameData.Character.CharacterState.Idle;

                break;

            case OUTPUT.ATTACK:
                State = RolePlayingGameData.Character.CharacterState.Attack;
                break;

            case OUTPUT.FAR:
                break;
            }
        }
Exemple #3
0
        public OUTPUT GetNextAction(InputData input)
        {
            string strOutPut = _Learning.Estimate(input._Input);
            if (strOutPut == null)
                return OUTPUT.STAND;
            OUTPUT output = (OUTPUT)Enum.Parse(typeof(OUTPUT), strOutPut);

            return output;
        }
Exemple #4
0
        public void AddData(InputData input,OUTPUT output )
        {
            StringBuilder s = new StringBuilder();
            s.Append("[");

            int c = 0;
            foreach (var item in input._Input)
            {

                switch ((INPUT)c)
                {
                    case INPUT.ES_STAND:
                    case INPUT.MS_STAND:
                    case INPUT.MS_STAND2:
                    case INPUT.MS_STAND3:
                        s.Append("[");
                        s.Append(item.ToString());
                        break;
                    case INPUT.ES_DODGE:
                    case INPUT.MS_DODGE:
                    case INPUT.MS_DODGE2:
                    case INPUT.MS_DODGE3:
                        s.Append(item.ToString());
                        s.Append("]");

                        break;
                    default:
                        s.Append(item.ToString());
                        break;

                }
                c++;

            }

            s.Append("] [");

            s.Append(output.ToString());

            s.Append("]");

            _form.listBox1.Items.Insert(0,s.ToString());

            KLearnData data = new KLearnData();
            data._Input = input._Input;
            data._Symbol = output.ToString();

            _Learning.Run(data);
        }