您的位置:首页 > 其它

UVa 220 - Othello

2014-08-13 15:39 218 查看
时间限制:3.000秒

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=833&page=show_problem&problem=156

  一道黑白棋的模拟。

  首先输入一个数字代表样例的数量。

  每组样例中首先输入一个8 x 8的棋盘,“-”代表此处无棋子,“B”代表此处为黑子,“W”代表此处为白子。接下来的一行有一个字母,“W”或"B"代表接下来要落子的一方。

  然后是一些命令,每个命令一行,开头是一个字母:

    “L”:打印当前落子的一方能够进行的所有操作,按照从上向下,从左向右的顺序排列。如果没有合法操作输出“No legal move.”。

    “M”:后跟两个数字r,c,代表落子的位置。如果当前落子的一方没有合法操作,那么换另一方在此位置落子。落子后根据黑白棋的规则对棋盘进行操作。输入保证这个操作是合法的。操作完毕之后输出黑白方的棋子总数。

    “Q”:退出游戏,并打印当前棋盘。

  具体细节参考样例及原题。

  难度上来说不算难,属于比较麻烦的……因为要八个方向去找去操作,没啥好说的,就是模拟。

  之前写过一次,结果凑了一晚上没过。这次特地把函数分得比较细,先搭大框架再实现具体细节,以免上个厕所回来看见一坨长代码不知道怎么下手,总算是A过去了……

  看来以后要注意一下代码的结构问题了……这样才方便看方便改,不然一不对又抓瞎了……

  代码貌似还可以再优化一点……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: