• 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

  • 相关阅读:
    基于MPI计算π值
    依赖倒转原则
    里氏代换原则
    开闭原则
    以太坊入门-solidity环境搭建
    【owner】today,last second day
    105-算法应用【N皇后问题】代码实现
    【Java小工具】节点选举Demo
    【加密算法】MD5、SHA算法加密工具类
    50-数据结构【原码、反码和补码】计算机数表示方法
  • 原文地址:https://www.cnblogs.com/euphoria/p/1401104.html
Copyright © 2020-2023  润新知