CF1557E Assiut Chess

题目描述

这是一个交互题。 ICPC Assiut 社区决定举办一场独特的国际象棋比赛,你被选中来操控皇后,追捕隐藏的国王,而 ICPC Assiut 社区的一名成员则操控这个国王。 你们将在一个 $8\times8$ 的国际象棋棋盘上进行对抗,棋盘的行从上到下编号,列从左到右编号,位于第 $x$ 行第 $y$ 列的格子记作 $(x, y)$。 在你的回合,你可以将皇后移动到同一行、同一列或任意一条对角线上的任意格子。例如,如果皇后在 $(4, 5)$,你可以移动到 $(q_1, 5)$、$(4, q_1)$、$(q_1, 9-q_1)$ 或 $(q_2, q_2+1)$,其中 $1 \le q_1 \le 8$ 且 $q_1 \ne 4$,$1 \le q_2 \le 7$ 且 $q_2 \ne 4$。注意,皇后不能停留在原地。 在国王的回合,国王可以向“右”、“左”、“上”、“下”、“右下”、“左下”、“左上”或“右上”移动,但不能离开棋盘。国王不能移动到与皇后处于同一行、同一列或同一对角线的格子(包括皇后的位置)。例如,如果国王在 $(4, 5)$,他可以移动到 $(4+k_1, 5+k_2)$,其中 $-1 \le k_1, k_2 \le 1$,且 $(k_1, k_2) \ne (0, 0)$。 在游戏开始时,你需要将皇后放在棋盘上的任意位置,这一步每局只进行一次。之后,国王会被秘密放置在除皇后位置外的任意格子,你并不知道国王的位置。然后,国王和皇后轮流行动,国王先走。每次国王移动后,你只会得到国王移动的方向(如“Right”、“Down”、“Up-Left”等)。之后,你需要宣布皇后要移动到的格子。如此往复,直到你获胜或用尽所有移动次数。 如果国王没有可行的移动,你获胜。如果在皇后移动 $130$ 次后国王仍有可行的移动,你失败。

输入格式

第一行包含一个整数 $t$($1 \le t \le 60$)——表示测试用例的数量。

输出格式

对于每个测试用例,你应立即输出皇后的初始位置。如果你将皇后放在了国王的位置,你会立即获胜。 之后,你最多可以进行 $130$ 次移动。每次移动的格式为 $x\ y$,其中 $x$ 和 $y$ 是两个整数($1 \leq x, y \leq 8$),表示皇后新的行和列。你的移动必须是合法的皇后移动。 在初始放置皇后后以及每次移动后,你会收到一个字符串 $s$,表示国王的移动方向。它会是以下之一:“Right”、“Left”、“Up”、“Down”、“Down-Right”、“Down-Left”、“Up-Left”、“Up-Right”,或者如果你获胜则为“Done”。遇到“Done”时,表示该测试用例结束。 每次输出后不要忘记输出换行并刷新输出缓冲区,否则会收到“Idleness limit exceeded”判罚。具体做法如下: - C++:fflush(stdout) 或 cout.flush() - Java:System.out.flush() - Pascal:flush(output) - Python:stdout.flush() - 其它语言请查阅相关文档 如果你在任意时刻进行了非法操作或每个测试用例尝试移动超过 $130$ 次,游戏会立即终止并判为 Wrong Answer。

说明/提示

在示例中,隐藏的国王起始于 $(8, 8)$。游戏过程如下: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1557E/c803112a415698a590e340aaa8aa8d531bf7e5ed.png) ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1557E/a45c792f12bda0c5a15e31a80c55652777a5408c.png) 由 ChatGPT 4.1 翻译