• Renju 方案(draft)


    Renju,这是一个程序驱动的连珠竞技平台.

    目录

    1.规则

    2.竞技程序格式

    3.竞技程序插件

    4.代码

    1.规则(讨论)

    a.棋盘:19×19

    b.无禁手

    c.无交换

    d.第一子不必落天元

    e.每场比赛进行两次,每次比赛中棋手(程序)轮流执黑.只有两次全胜方可判胜;两次全负则判负.

    f.若其中一竞赛程序落子于非有效位置(比如说棋盘外或此位置已落子),则此程序判负.

    g.(未定)每一步棋限时5000 ms

    h.(未定)和棋判断.(我的方案:其中一方提出和棋请求,另一方同意后则此盘棋判和棋,否则继续).

    i.必须开放源代码.

    2.竞技程序格式

    a.(未定)每一枚竞技程序使用DLL格式,使用类似插件的方式,导出用于参与比赛的C++ Class.此Class由头文件Player.h提供.

    务必使用如下函式,保证signature完全一致.

    extern "C" Player* CreatePlayer(void);

    服务器程序使用MinGW编译,因此目前推荐使用MinGW编译器,Visual C++ 6.0编译生成的DLL可能不兼容(TODO).

    b.(讨论)或,有备选方案:使用socket完成两枚竞赛程序和服务器通讯,优点很多:可移植;编程语言不限C++;

    缺点:我目前感觉竞赛程序可能要写成多线程+写端口select模式,否则竞赛程序可能会浪费时间.这样就会增加竞赛程序额外的复杂程度.

    3.竞技程序插件

    a.提供人机交互对战的DLL配接器(TODO)

    b.提供局域网对战的DLL配接器(TODO)

    4.目前的服务器程序在此:Renju

  • 相关阅读:
    惭愧无法面对的SQL ORDER BY
    JVM参数官方说明
    Java Unsafe 测试代码
    好记性不如烂笔头-Duration与Period中字母含义
    计算机组成原理中源码、反码、补码存在意义
    线程池参数、线程池扩容以及拒绝策略触发时机demo代码
    朴素贝叶斯法
    K近邻法与kd树
    EM算法
    熵、交叉熵、KL散度、JS散度
  • 原文地址:https://www.cnblogs.com/euphoria/p/1401104.html
Copyright © 2020-2023  润新知