Beispiel #1
0
    public override void UpdateState(int[] state, int[] state_, int rewd, BirdAction action)
    {
        UpdateNode node = new UpdateNode();

        node.state  = state;
        node.state_ = state_;
        node.rewd   = rewd;
        node.action = (int)action;
        Send(node);
    }
Beispiel #2
0
 public void RespondByDecision(BirdAction action)
 {
     if (isGameStart && !isGameOver)
     {
         if (action == BirdAction.FLY)
         {
             mainBird.FlyUp();
         }
     }
 }
Beispiel #3
0
 public override void OnUpdate(float delta)
 {
     base.OnUpdate(delta);
     Monitor.Enter(m_oDataQueue);
     if (m_oDataQueue.Count > 0)
     {
         BirdAction action = m_oDataQueue.Dequeue();
         GameMgr.S.RespondByDecision(action);
         last_action = action;
     }
     Monitor.Exit(m_oDataQueue);
 }
Beispiel #4
0
    public void OnRecv(string recv, int length)
    {
        int res = 0;

        if (!int.TryParse(recv, out res))
        {
            Debug.LogError("server chose action error " + recv);
        }
        else
        {
            BirdAction action = (BirdAction)res;
            Monitor.Enter(m_oDataQueue);
            m_oDataQueue.Enqueue(action);
            Debug.Log("rcv action:" + action);
            Monitor.Exit(m_oDataQueue);
        }
    }
Beispiel #5
0
 public override void OnTick()
 {
     base.OnTick();
     if (loaded)
     {
         int[] state = GetCurrentState();
         if (last_state != null)
         {
             UpdateState(last_state, state, last_r, last_action);
         }
         //do next loop
         BirdAction action = choose_action(state);
         GameMgr.S.RespondByDecision(action);
         last_r      = 1;
         last_state  = state;
         last_action = action;
     }
 }
Beispiel #6
0
 public override void UpdateState(int[] state, int[] state_, int rewd, BirdAction action)
 {
     //internal don't need to update env
 }
Beispiel #7
0
 public abstract void UpdateState(int[] state, int[] state_, int rewd, BirdAction action);
Beispiel #8
0
 public override void UpdateState(int[] state, int[] state_, int rewd, BirdAction action)
 {
     //nothing
 }