欢迎有兴趣的棋牌 AI 研究同道帮忙试用 RoomAI

AlgorithmDog 2018-02-09

      最近我和小伙伴们一起开发了一款非完美信息游戏 AI 环境:RoomAI。RoomAI 是非完美信息游戏 AI 环境,提供了七鬼五二三、德州扑克、梭哈、斗地主、桥牌和麻将等游戏环境,方便研究和开发人员开发和对比游戏 AI。


      在 RoomAI 中,选手获得游戏环境给出的信息,当前选手选择合适的动作,游戏环境根据该动作推进游戏逻辑;重复上述过程,直到分出胜负;整个过程如下所示。

      

      我们先介绍简单的使用范例。第一步是安装 roomai。

pip install roomai

      

第二步是实现一个随机出牌的 AI。


#!/bin/python
from roomai.kuhn import *;
import random

class KuhnPokerExamplePlayer(roomai.common.AbstractPlayer):
    #@override
    def receive_info(self, info):
      if info.person_state.available_actions is not None:
        self.available_actions = info.person_state.available_actions
            
    #@override
    def take_action(self):
values = list(self.available_actions.values())
idx = int(random.random() * len(self.available_actions))       return values[idx] #@overide def reset(self): pass

      

第三步是测试这个随机 AI。


if __name__ == "__main__":
    players = [KuhnPokerExamplePlayer() for i in range(2)]  + [roomai.common.RandomPlayerChance()]
    env = KuhnPokerEnv()
    scores = KuhnPokerEnv.compete(env, players)
    print (scores)


其中 roomai.common.RandomPlayerChance 是随机的 Chance Player。所谓 Chance Player 是自然本质的代表,控制游戏过程中的事件,比如选手的手牌。


      由于 RoomAI 刚刚开发完成,代码和文档质量方面还有很多的缺陷。欢迎有兴趣的棋牌 AI 研究同道帮忙试用 RoomAI, 从而暴露我们在设计、实现和文档方面的缺陷。非常感谢。也欢迎不方便试用的研究同道交流,共同进步。

    觉得不错,分享给更多人看到

    AlgorithmDog 微信二维码

    AlgorithmDog 微信二维码