Skip to content

Latest commit

 

History

History
108 lines (82 loc) · 3.22 KB

match_core.md

File metadata and controls

108 lines (82 loc) · 3.22 KB

match_core.py

外部接口:

  • match(name1, func1, name2, func2, k=9, h=15)
  • match_with_log(name1, func1, name2, func2, k=9, h=15)

用法:

from match_core import match
match_result = match('noob', noob_ai, 'master', master_ai, k=25, h=49) # noob VS master in 50*49 field match_result['log'] # each step including endgame

from match_core import match_with_log
match_with_log('noob', noob_ai, 'master', master_ai, max_turn=5, max_time=1) # output to 'noob-VS-master' shelf

  • match函数

    进行一次比赛

    参数:

    • name1 - 玩家1名称 (str)
    • func1 - 玩家1控制函数
      • 接收游戏数据字典
        包含纸片场地、纸带场地、玩家位置、玩家朝向等参数
      • 返回操作符(left,right,None)
      • 详见 “游戏数据” 部分
    • name2 - 玩家2名称
    • func2 - 玩家2控制函数
    • k - 场地半宽(奇数)
    • h - 场地高(奇数)
    • max_turn - 总回合数(双方各行动一次为一回合)
    • max_time - 总思考时间(秒)

    返回值:

    • 字典,详见 “对局记录” 部分
  • match_with_log函数

    同上,但没有返回值

    将对局记录输出为形如"{name1}-VS-{name2}.pkl"文件名格式保存

  • 游戏数据字典

    由内部 get_params 辅助函数生成,包含对局一个回合的必要决策信息

    内容:

    • turnleft : 剩余回合数
    • timeleft : 双方剩余思考时间
    • fields : 纸片场地二维列表
    • bands : 纸带场地二维列表
    • players : 玩家信息列表,包含先后手玩家信息,详见 “玩家信息” 部分

    (返回给玩家)

    • me : 该玩家信息
    • enemy : 对手玩家信息

    (返回给总对局记录)

    • band_route : 双方纸带行进方向
  • 玩家信息字典

    由内部 player.get_info 类函数生成,包含玩家当前信息

    内容:

    • id : 玩家标记

      1 - 先手
      2 - 后手

    • x, y : 横纵坐标(场地数组下标1)

      先x后y访问场地列表

    • direction : 当前方向

      0 - 向东
      1 - 向南
      2 - 向西
      3 - 向北

  • 对局记录字典

    match 函数生成,包含一次对局信息

    内容:

    • players : 参赛玩家名称
    • size : 该局比赛场地大小
    • maxturn : 最大回合数
    • maxtime : 最大思考时间
    • log : 对局记录列表
      保存由初始状态(不包含)至终局(包含)每回合游戏数据
    • result : 对局结果,详见 “对局结果” 部分
  • 对局结果元组

    由内部 parse_match 函数生成,经 match 函数修饰
    记录对局结果信息

    内容:

    1. 胜利玩家编号

      0 - 先手玩家
      1 - 后手玩家

    2. 终局原因

      0 - 撞墙
      1 - 纸带碰撞
      2 - 侧碰
      3 - 正碰,结算得分
      -1 - AI函数报错
      -2 - 超时
      -3 - 回合数耗尽,结算得分

    3. 额外信息