1038 : Ares的围棋AI
时间限制:1 Sec 内存限制:256 MiB 提交:19 正确:5
题目描述
基于深度学习的AlphaGo战胜了人类世界冠军李世石和柯洁,Ares受此鼓舞,也想写出自己的围棋AI,你能帮帮她么?围棋棋盘可以看做是19×19的点阵,每个点有三种状态:黑子,白子或者空点.棋盘上,一个棋子周围紧邻(四联通)的空点是这个棋子的“气”,如果紧邻的点有同色棋子存在,则它们组成一块不可分割的整体,“气”也一并计算。如果一个或一块棋子的“气”为0,那它们将被吃掉。1. 一个棋子的情况,如下左图,白A右侧还有一个空点,此时白棋A气为1,不会被吃掉.。当黑棋在此空点下棋后,白棋A气为0,将被吃掉,从棋盘上拿走。2. 一片棋子的情况,如下图,一整块白棋旁边有一个空点,整块白棋气为1,不会被吃掉。当黑棋在该空点下棋后,白棋气为0,将被吃掉。3. 当下棋造成双方棋子都没有气时,只有对方的棋子被吃掉。如下左图处,黑棋A位落子后,A位的黑棋和中圈的白棋都没有气,但只有白棋被吃掉。除此之外,落子导致本方棋子没有气是不合法的,如下右图,黑棋A位落子后,自己没有气,而白棋在B位还有一口气,不会被吃掉,因此,黑棋下在A位是不合法的。(本题只有这一种不合法的情况)每一局棋都是黑先白后,一人一手轮流着子,不会出现一方连下多手的情况。
输入描述
第一行一个整数n(0<=n<=300),表示这一局棋的总手数。
之后n行,每行两个正整数x,y(1<=x,y<=19)表示落子位置的行数和列数.(行数从上往下,列数从左到右)
输出描述
如果某一手棋不合法,输出"The move x is valid."(不包括引号,x是从1开始计数的落子手数)
如果所有着子均合法,输出一个19×19的矩阵,表示棋盘终局时的状态,黑子用"B"表示,白子用"W"表示,空点"."用表示。
样例输入
9 10 10 9 10 4 4 10 11 4 16 11 10 16 4 10 9 16 16
样例输出
................... ................... ................... ...B...........B... ................... ................... ................... ................... .........W......... ........W.W........ .........W......... ................... ................... ................... ................... ...B...........B... ................... ................... ...................
来源
风竹曦