leobloode2023年07月16日
862阅读
所属分类游戏
作品源文件
rar格式 18.11 MB ,下载:1次
¥99.00

作品详情

六子棋是二人对弈的战术棋盘游戏。在本题中,你的任务是编写六
子棋 AI 程序,即让程序自动下棋,并在北京大学 Botzone 平台(https://www.botzone.org.cn/)
与其他人对战;每步走棋限时 1 秒,内存限定 256MB。任何非法操作会被立即判负,如程序崩溃、超时、
坐标越界、格式错误等。
大家无需掌握图形界面编程技术,只需将核心代码上传至北京大学Botzone对战平台
(https://www.botzone.org.cn/),对战平台将负责在线对战和图形界面展示,并给出排名。本题
编程语言为C/C++语言,允许使用C++ STL。基于当前棋局,输出本回合的决策结果。你的程序(在botzone网站里也称
为bot)的生命周期仅为一次决策:读入当前棋盘状态,输出本回合你的下棋(落子)位置。在
整个对弈过程中,对战平台会多次调用你的程序(每下一步棋调用你一次,直至对弈结束)。
了解下面标注黄色高亮的内容有助于理解程序的运行原理和流程。若不想或无法理解下
面内容,可跳过而直接看(2)节,对完成本题没有影响。
对战平台每次调用你的程序时:首先将之前对方和本方落子的位置作为输入,传送给你的
程序,从而建立起棋盘信息gridInfo数组,然后你的程序根据棋盘信息进行决策,并向对战平台
输出你的决策结果,即本方的落子位置。
若本方先手,则第一回合收到对方落子位置为-1。
你的bot与对战平台有两种交互方式:简单交互和JSON交互(初学者建议选择简单交互)。
使用这种交互方式,你的程序通过一系列数字与对战平台进行交互。下面以六子棋为例,
输入格式形如下表左侧所示。而你的程序就是要读取这些数字,建立棋盘信息,并基于棋盘信
息做决策,最后输出第k回合本方落子位置。详见示例程序。例图1的棋盘状态对应下表右侧的
输入。在本地编译运行程序,本地调试时可采用“简单交互”方式,并结合输入输出重定向,
以数字形式作为输入,并观察程序输出结果。
游戏规则
棋盘:由N*N的方格组成,黑方在棋盘上方,白方在棋盘下方(坐标从0开始,先x后y, 原点在左上角,本游戏N=15),1.每局比赛由黑方先手;黑方第一手落一子,之后黑白双方轮流每次各下两子
3.直的、横的、斜的连成6子(或以上)者获胜
5.没有禁手(暂定),禁止空手
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论