QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 1024 MB Points totaux : 100 Hackable ✓

#17691. 柶戏

Statistiques

柶戏(Yut Nori)是使用柶(Yut)的最著名的棋盘游戏之一。柶戏由 4 个柶、一个柶戏棋盘和 8 个棋子组成:每个队伍 4 个棋子。柶戏棋盘有 29 个点(stations)。每个点都有自己的名字。(图 1)

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

图 2:四种可能的路线。

游戏的目标是从 cham-meoki 出发,在棋盘上移动,最后返回 cham-meoki 并离开棋盘。

在每个回合开始时,一名玩家:

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

每个柶都有正面和背面。投掷柶时,会显示其正面或背面。前进的步数等于正面向上的柶的数量;特别地,如果所有柶都是背面向上,则步数为 5。

每个棋子都从 cham-meoki 开始(它实际上并未放置在棋盘上,但假设棋子放置在那里),并沿着柶路(Yut-gil,即路线)移动。

基本上,棋子沿着第四种路线移动(图 2)。例如,如果一个棋子从 yut 移动两步,它将到达 duet-do。但在特殊情况下,它们会经过第一、第二或第三种路线。如果一个棋子从角落(moduet-mobangchi-mocham-meoki)出发,它会选择通往 cham-meoki 的较快路径。

更具体地说,如果一个棋子在 mo 开始移动,路线将切换为第三种。例如,如果它从 mo 移动一步,它会到达 mo-do;从 mo 移动两步,它会到达 mo-gae。如果它从 yut 分两次各移动一步,它会到达 mo-do,但如果你在一次移动中从 yut 移动两步,它会到达 duet-do

同样,如果它从 duet-mo 开始移动,它会遵循第二种路线,因此移动一步会到达 duet-modo,而移动两步会到达 duet-mogae

此外,如果遵循第三种路线的棋子从 bang 开始移动,那么它将开始遵循第一种路线。移动一步会到达 saryeo;移动两步会到达 anchi

沿着这些路线移动,棋子在返回 cham-meoki 后再移动一步即可离开棋盘。这不需要额外的回合。例如,如果你从 nal-yut 移动两步,它会到达 cham-meoki 然后离开棋盘。类似地,从 nal-geol 移动 3、4 或 5 步也算作离开棋盘。

到目前为止,这只是一个关于投掷柶以离开棋盘的游戏。为了让游戏更有趣,还有另外两条规则。

第一条规则是同动(搭子)。如果同一名玩家的两个或多个棋子位于同一个点上,那么只需移动其中一个棋子,就会使所有其他棋子一起移动。

第二条规则是吃子。如果对手的棋子位于你棋子的下一个目的地,那么该点上的所有对手棋子都将回到初始状态。

你的任务是开发这个柶戏游戏。给定一系列回合,输出棋盘的最终状态。

输入格式

输入的第一行包含一个整数 $N$,表示回合数。($1 \le N \le 100$)

在接下来的 $N$ 行中,第 $i$ 行包含第 $i$ 个回合的信息。它由一个棋子和柶的投掷结果表示。

棋子的信息由一个字符给出,为 ABCDabcd 中的一个。柶的信息由一个长度为 4 的字符串给出,其中每个字符为 B(表示背面)或 F(表示正面)。这两部分信息用空格分隔。

大写字母代表一个队伍的棋子;小写字母代表另一个队伍的棋子。

每次移动都是合法的;已离开棋盘的棋子不会再次出现在棋盘上。

输出格式

基础的柶戏棋盘由以下 $32 \times 32$ 的字符串给出。由于技术上的困难,它作为一个附件与样例输入/输出一起发布。(如果您有更好的想法,请告诉我们。)

该字符串由 /\.|、空格和换行符组成(不包含引号)。该字符串表示柶戏棋盘,每个点由 $2 \times 2$ 的 . 字符表示。按行优先顺序,从左上角的字符开始,这些点依次为:duet-moduet-yutduet-geolduet-gaeduet-domoduet-modomo-dochi-doyutduet-mogaemo-gaechi-gaegeolbangchi-geolgaesok-yutsaryeochi-yutdosok-moanchichi-monal-donal-gaenal-geolnalyutcham-meoki

你应该标明每个棋子的位置。用该点中的棋子字符替换其中一个 . 字符。

对于每个点,Aa 应该替换左上角的 .Bb 应该替换右上角的 .Cc 应该替换左下角的 .Dd 应该替换右下角的 .

文件 URL:http://run.kaist.ac.kr/contest18s/Y.zip

基础棋盘文件:yut_board.txt

样例输入 1:samp1.insamp1.out

样例输入 2:samp2.insamp2.out

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.