コード例 #1
0
def main():
    # 標準入力から、エージェントの入力形式を取得
    inputTypeOfEachAgent = createInputTypeOfEachAgent()

    # 標準入力から、試行回数を取得
    epoch = int(input("試行回数を入力してください >>"))

    # 指定された回数分、試合を実行
    teamAWinCounter = 0
    for gameCount in range(epoch):
        # 試合設定
        megurimasu = MeguriMasuCore(createRandomGameSet())
        gameInput = CUIInput(megurimasu.play, **inputTypeOfEachAgent)

        # ゲームを進行
        for act in megurimasu.act():
            act(gameInput.input())
        megurimasu.endAct()

        # ゲームの勝敗を記録
        if (megurimasu.play.judgmentVictory() == "teamAWin"):
            teamAWinCounter += 1

    # ゲームの統計結果を表示
    print("\n")
    print("-" * 30)
    print(f"試合数:{epoch}")
    print(f"チームAの勝率: {teamAWinCounter/epoch}")
    print(f"チームBの勝率: {1-(teamAWinCounter/epoch)}")
コード例 #2
0
def main():
    megurimasu = MeguriMasuCore(createRandomGameSet())
    cuiInput = CUIInput(megurimasu.play, **createInputTypeOfEachAgent())
    cuiOutput = CUIOutput(megurimasu.play)

    # ゲームの説明
    cuiOutput.printGameExplain()

    # ゲームを進行
    for act in megurimasu.act():
        cuiOutput.printTurnStatus()
        act(cuiInput.input())
    megurimasu.endAct()

    # ゲームの終了メッセージを表示
    cuiOutput.printGameEndMessage()
コード例 #3
0
def main():
    startTime = datetime.datetime.now()

    # 標準入力から、エージェントの入力形式を取得
    inputTypeOfEachAgent = createInputTypeOfEachAgent()

    epoch = int(input("試行回数を入力してください >>"))

    learn = Learn()

    # 入力された回数分、試合を実行&学習
    for gameCount in range(epoch):
        # ゲームの試合設定
        megurimasu = MeguriMasuCore(createRandomGameSet())
        cuiInput = CUIInput(megurimasu.play, **inputTypeOfEachAgent)

        # ゲームの試合設定をlearnにセット
        learn.SetInit(createInitDataForLearn(megurimasu.play))

        # ゲームの進行
        for act in megurimasu.act():
            act(cuiInput.input())

            # ゲームのターンごとの現状状況をlearnにセット
            learn.PushTurn(createTurnDataForLearn((megurimasu.play)))
        megurimasu.endAct()

        # ゲームの勝敗データをlearnにセット
        learn.SetTerm(createTurmDataForLearn(megurimasu.play))

        # 学習データをデータベースに記録
        saveResult = learn.Save()

        # 学習データを破棄
        learn.Clear()

        nowTime = datetime.datetime.now()
        print(f"{gameCount}試合目:", saveResult, f"{(nowTime-startTime)}s")
        print("-" * 30)

    finishedTime = datetime.datetime.now()

    # 学習完了結果を表示
    print("-" * 30)
    print("学習が完了しました\n")
    print(f"試合回数: {epoch}")
    print(f"計測時間: {finishedTime-startTime}s")
コード例 #4
0
def main():
    """
    試合設定のQRコードテキストを生成

    行数 列数:
    スコアボード:
    エージェントAのX座標 エージェントAのY座標:
    エージェントBのX座標 エージェントBのY座標:
    """

    # ランダムな試合設定を取得
    gameStartSet = createRandomGameSet()
    
    scoreBoard = gameStartSet["scoreBoard"]
    column     = gameStartSet["column"]
    row        = gameStartSet["row"]
    agentAX = gameStartSet["agentAX"]
    agentAY = gameStartSet["agentAY"]
    agentBX = gameStartSet["agentBX"]
    agentBY = gameStartSet["agentBY"]

    gameStartSetQRText = ""
    gameStartSetQRText += f"{column} {row}:"

    for y in range(column):
        for x in range(row):
            gameStartSetQRText += str(scoreBoard[y][x])

            if x < row - 1:
                gameStartSetQRText += " "
        gameStartSetQRText += ":"

    gameStartSetQRText += f"{agentAX} {agentAY}:"
    gameStartSetQRText += f"{agentBX} {agentBY}:"

    # QRコードのテキストからQRコードを生成
    gameStartSetQRImage = qrcode.make(gameStartSetQRText)

    # QRコードを表示
    gameStartSetQRImage.show()

    # QRコードをPNGとして出力
    gameStartSetQRImage.save(
        f"game_start_set_qr{column}{row}{agentAX}{agentAY}{agentBX}{agentBY}.png"
    )
コード例 #5
0
def main():

    # ランダムな試合設定を取得
    gameStartSet = createRandomGameSet()

    column = gameStartSet["column"]
    row = gameStartSet["row"]
    scoreBoard = gameStartSet["scoreBoard"]
    agentAX = gameStartSet["agentAX"]
    agentAY = gameStartSet["agentAY"]
    agentBX = gameStartSet["agentBX"]
    agentBY = gameStartSet["agentBY"]

    # 試合設定のQRコードテキストを生成する
    # スコアボードの行数と列数をQRコードテキストにセットする
    gameStartSetQRText = ""
    gameStartSetQRText += f"{column} {row}:"

    # スコアボードをQRコードテキストにセットする
    for y in range(column):
        for x in range(row):
            gameStartSetQRText += str(scoreBoard[y][x])
            if x < row - 1:
                gameStartSetQRText += " "
        gameStartSetQRText += ":"

    # エージェントAとBの座標をQRコードにセットする
    gameStartSetQRText += f"{agentAX} {agentAY}:"
    gameStartSetQRText += f"{agentBX} {agentBY}:"

    # QRコードのテキストからQRコードを生成する
    gameStartSetQRImage = qrcode.make(gameStartSetQRText)

    # QRコードを表示する
    gameStartSetQRImage.show()

    # QRコードをPNGとして出力する
    gameStartSetQRImage.save(
        f"game_start_set_qr{column}{row}{agentAX}{agentAY}{agentBX}{agentBY}.png"
    )
コード例 #6
0
    def __init__(self,
                 settingData=None,
                 additionalFunc=None,
                 initializeFunc=None):

        self.play: Playing  # ゲームの制御
        self.MAX_TURN: int  # ゲームのターン数
        self.state: str = "SET"  # ゲームの状態

        # play の初期化
        if (settingData is not None):
            self.play = Playing(**settingData)

        # settingData が None なら ランダムなデータをセットする
        else:
            self.play = Playing(**createRandomGameSet())

        self.MAX_TURN = self.play.MAX_TURN

        # もし追加動作がある場合は additionalFunc に かく
        if (initializeFunc is not None):
            additionalFunc(self.playData())