diff --git a/src/main/java/org/dromara/easyai/gameRobot/DynamicState.java b/src/main/java/org/dromara/easyai/gameRobot/DynamicState.java new file mode 100644 index 0000000..3c5d98c --- /dev/null +++ b/src/main/java/org/dromara/easyai/gameRobot/DynamicState.java @@ -0,0 +1,70 @@ +package org.dromara.easyai.gameRobot; + +import java.util.*; + +/** + * @author lidapeng + * @description 状态 + * @date 10:27 上午 2022/9/12 + */ +public class DynamicState { + private int[] stateId;//状态id + private int bestActionId = 1;//该状态的最优动作 + private float value = 0;//该状态价值 + private int number = 0;//该状态被执行了几次 被执行的时候需要修改 + private boolean isFinish = false;//是否是终结态 + private Map> sonStatesMap = new HashMap<>();//动作-子状态集合 被执行的时候需要修改 + private Map profitMap = new HashMap<>();//该状态的收益集合,主键是收益,值是次数 被执行的时候需要修改 + + public void add() { + number++; + } + + public int getNumber() { + return number; + } + + public int getBestActionId() { + return bestActionId; + } + + public void setBestActionId(int bestActionId) { + this.bestActionId = bestActionId; + } + + public Map> getSonStatesMap() { + return sonStatesMap; + } + + public boolean isFinish() { + return isFinish; + } + + public void setFinish(boolean finish) { + isFinish = finish; + } + + public Map getProfitMap() { + return profitMap; + } + + public DynamicState(int[] stateId) {//设置状态id + this.stateId = stateId; + } + + public int[] getStateId() { + return stateId; + } + + public void setStateId(int[] stateId) { + this.stateId = stateId; + } + + public float getValue() { + return value; + } + + public void setValue(float value) { + this.value = value; + } +}