見出し画像

ブロスタのAIを強化学習で作る③

こんにちは。しげまつです。
ブロスタAIが少し進んだのでまとめます。

今回やったこと

リザルト画面から報酬を受け取る
行動を起こす

リザルト画面から報酬を受け取る

前回作ったモデルで1位だったら報酬を1負けたら報酬を-1として受け取れるようにしました。

#リザルト画面から報酬を受け取る
def get_reward():  
    if pred[0] > 0.997:
        reward = 1
    elif pred[1] > 0.997:
        reward = -1
    return reward

行動を起こす

移動する方向として8方向と攻撃をするかしないかで16通りの行動をランダムにしてみました。

def action_button(action): 
    #攻撃なし・移動のみ
    if action == 0:
        pyautogui.keyDown("w") #前
    elif action == 1:
        pyautogui.keyDown("a")#左
    elif action == 2:
        pyautogui.keyDown("d")#右
    elif action == 3:
        pyautogui.keyDown("s")#後ろ
    elif action == 4:
        pyautogui.keyDown("w",'a')#左前
    elif action == 5:
        pyautogui.keyDown("w",'d')#右前
    elif action == 6:
        pyautogui.keyDown("d",'s')#右後ろ
    elif action == 7:
        pyautogui.keyDown("a",'s')#左後ろ
    #攻撃あり・移動あり
    elif action == 8:
        pyautogui.hotkey("w",'e') #前
    elif action == 9:
        pyautogui.hotkey("a",'e')#左
    elif action == 10:
        pyautogui.hotkey("d",'e')#右
    elif action == 11:
        pyautogui.hotkey("s",'e')#後ろ
    elif action == 12:
        pyautogui.hotkey("w",'a','e')#左前
    elif action == 13:
        pyautogui.hotkey("w",'d','e')#右前
    elif action == 14:
        pyautogui.hotkey("d",'s','e')#右後ろ
    elif action == 15:
        pyautogui.hotkey("a",'s','e')#左後ろ


強化学習に必要な状態と報酬と行動をとれるようになったので次から本格的に学習させていければなと思います。

この記事が気に入ったらサポートをしてみませんか?