#P15704. [2018 KAIST RUN Spring] Yut Nori

[2018 KAIST RUN Spring] Yut Nori

说明

掷柶游戏(Yut Game)是一种使用“柶”来进行的著名游戏。掷柶游戏使用 4 个柶、一个柶棋盘和 8 个棋子,两支队伍各 4 个。柶棋盘有 29 个站点,每个站点都有其名称。(图 1)

:::align{center}

图 1:柶棋盘。每个站点都有名称。 :::

:::align{center}

图 2:可能的四条路线。 :::

游戏的目标是从起点站“站起”(cham-meoki)出发,经过棋盘并返回“站起”站,然后离开棋盘。

每位玩家的回合如下:

  • 投掷 4 个柶。
  • 根据柶的结果确定步数。
  • 选择一个棋子,并使其在棋盘上移动。

柶有正面和反面。当柶被投掷后,会显示正面或反面。步数等于显示正面的柶的数量。但是,如果所有柶都是反面,则步数为 5。

新的棋子从“站起”站开始(实际上并未放置,但假设棋子已放置),并遵循这些“柶路”(路线)。

基本上,棋子沿第四条路线移动(图 2)。例如,如果你从“站起”站走两步,它会到达“站起-道”站。但在特殊情况下,它会走第一、第二或第三条路线。如果从角落站点(“站起-起”、“站起-起-起”、“站起-起-起-起”、“站起-起-起-起-起”或“站起”站)开始移动,它会选择到达“站起”站的最快路径。

更正式地说,如果棋子从“站起-起”站开始移动,路线会切换到第三条路线。例如,如果你从“站起-起”站走一步,它会到达“站起-起-道”站;走两步则到达“站起-起-起”站。如果你从“站起”站连续走两步,它会到达“站起-起-道”站,但如果你从“站起”站一次性走两步,它会到达“站起-道”站。

同样,如果你从“站起-起-起”站开始,棋子会遵循第二条路线,因此走一步会到达“站起-起-起-道”站,而走两步会到达“站起-起-起-起”站。

此外,如果遵循第三条路线的棋子从“站起-起-起-起”站开始,那么棋子会遵循第一条路线。走一步会到达“站起-起-起-起-起”站,走两步会到达“站起-起-起-起-起-起”站。

棋子按此方式移动,在到达“站起”站后离开棋盘。(这不需要额外的步数)例如,如果你从“站起-起-起-起-起-起”站走两步,它会到达“站起”站,再走一步棋子就会离开棋盘。

如果你从“站起-起-起-起-起-起”站一次性走三步或更多步,它也会离开棋盘。

到目前为止,这只是一个投掷柶以离开棋盘的游戏。然而,还有两条规则使游戏更有趣。

第一条规则是,一起移动。如果同一站点上有两个或更多棋子,移动其中一个棋子会使所有棋子一起移动。

第二条规则是,棋子捕获。如果对手的棋子位于你的棋子将要移动到的目标站点,则将对手的所有棋子移回初始状态。

你被分配了一项开发掷柶游戏的任务。你需要复现游戏过程。

输入格式

输入的第一行包含一个整数 NN,表示回合数。

接下来的 NN 行,每行包含第 ii 回合的信息。第 ii 行的信息由棋子和柶的信息组成。

棋子的信息由一个字符给出,是 "ABCDabcd" 中的一个。柶的信息由一个长度为 4 的字符串给出,每个字符是 'B'(反面)或 'F'(正面)。棋子和柶的信息之间用空格分隔。

棋子按大写字母和小写字母分为两队。

输出格式

基本的柶棋盘由以下 32×3232 \times 32 的字符串给出:

..----..----..----..----..----..
..    ..    ..    ..    ..    ..
| \                          / |
|  \                        /  |
|   \                      /   |
|    ..                  ..    |
..   ..                  ..   ..
..     \                /     ..
|       \              /       |
|        \            /        |
|         ..        ..         |
|         ..        ..         |
..          \      /          ..
..           \    /           ..
|             \  /             |
|              ..              |
|              ..              |
|             /  \             |
..           /    \           ..
..          /      \          ..
|         ..        ..         |
|         ..        ..         |
|        /            \        |
|       /              \       |
..     /                \     ..
..   ..                  ..   ..
|    ..                  ..    |
|   /                      \   |
|  /                        \  |
| /                          \ |
..    ..    ..    ..    ..    ..
..----..----..----..----..----..

此字符串由字符 “/\.|”、空格和换行符组成(不包含引号)。该字符串表示柶棋盘,每个站点由 2×22 \times 2 的 '.' 字符表示。从左上角字符开始,站点依次为:duet-mo, duet-yut, duet-geol, duet-gae, duet-do, mo, duet-modo, mo-do, chi-do, yut, duet-mogae, mo-gae, chi-gae, geol, bang, chi-geol, gae, sok-yut, saryeo, chi-yut, do, sok-mo, anchi, chi-mo, nal-do, nal-gae, nal-geol, nalyut, 以及 cham-meoki,按行主序读取。

你需要输出棋子是否在棋盘上。你应该用棋子替换站点中的一个 '.' 字符。

棋子 A 或 a 应替换棋盘站点中左上角的 '.',B 或 b 替换右上角的 '.',C 或 c 替换左下角的 '.',D 或 d 替换右下角的 '.'。

5
A BFBB
B BFFB
C BFFB
D BFFB
b BFFB
..----..----..----..----..----..
..    ..    ..    ..    ..    ..
| \                          / |
|  \                        /  |
|   \                      /   |
|    ..                  ..    |
..   ..                  ..   ..
..     \                /     ..
|       \              /       |
|        \            /        |
|         ..        ..         |
|         ..        ..         |
..          \      /          ..
..           \    /           c.
|             \  /             |
|              ..              |
|              ..              |
|             /  \             |
..           /    \           ..
..          /      \          ..
|         ..        ..         |
|         ..        ..         |
|        /            \        |
|       /              \       |
..     /                \     ..
..   ..                  ..   ..
|    ..                  ..    |
|   /                      \   |
|  /                        \  |
| /                          \ |
..    ..    ..    ..    ..    ..
..----..----..----..----..----..
21
A FFFB
c FBBF
d FBBB
B BBFB
C BFBF
d FFBF
B BFBF
a BBBF
C BBBB
D FBFF
a FFFB
d FBFF
b FFFF
b BBBB
c BFFF
B BBFB
b BBBF
B FFFF
c BBBB
b BBBF
A FFFF
..----..----..----..----..----.B
..    ..    cd    C.    ..    ..
| \                          / |
|  \                        /  |
|   \                      /   |
|    ab                  ..    |
..   ..                  ..   A.
..     \                /     ..
|       \              /       |
|        \            /        |
|         ..        ..         |
|         ..        ..         |
..          \      /          ..
..           \    /           ..
|             \  /             |
|              ..              |
|              ..              |
|             /  \             |
..           /    \           ..
..          /      \          ..
|         ..        ..         |
|         ..        ..         |
|        /            \        |
|       /              \       |
..     /                \     ..
..   ..                  ..   ..
|    ..                  ..    |
|   /                      \   |
|  /                        \  |
| /                          \ |
..    ..    ..    ..    ..    ..
..----..----..----..----..----..

提示

数据范围

  • 1N1001 \leq N \leq 100
  • 每次移动都是合法的;已离开棋盘的棋子不会再出现在棋盘上。

翻译由 DeepSeek V3.2 完成