少年!战吧!大模拟! |
好吧,如题目所示,这就是一道大模拟!sailspark的目标就是拖住神牛AK的步伐!所以,战吧!少年!接近完整规则的国际象棋大模拟! |
考虑到大家可能不会下国际象棋,所以以下是本题所要用到的国际象棋的所有规则。
1.棋子的布局 如图: 2.走棋规则 下面介绍各个棋子的走棋规则: ● 王 ● 后 ● 象 ● 马 ● 车 ● 兵 ● 兵的升变 任何一个兵直进达到对方底线时,玩家必须把该兵升变为车、马、象或后之中的一枚棋子。 6.吃子规则 玩家棋子移动到的位置如果有对方的棋子,则吃掉对方的这个棋子,并占据该格。 特殊: 7.攻击和将军 如果一个棋子能够根据移动和吃子规则在下一步吃掉对方的某个棋子,则称为攻击对方的这个棋子。 一方的王受到对方棋子攻击时,称为王被照将,攻击方称为“将军”。 此时被攻击方的下一步走子必须立即“应将”,如果无论怎样走子都无法避开被照将的情况,王即被将死。 |
现在我们给出一个国际象棋的残局,轮到白方走棋,判断白方能否一步杀,即白方是否可能在移动某个棋子之后,使得黑方的王被将死。
本题中白方棋子用大写字母表示,黑方棋子用小写字母。同时K(k)为王,Q(q)为后,B(b)为象,N(n)为马,R(r)为车,P(p)为兵,棋盘左上角为(0,0),右下角(7,7),左下角(7,0)。
:多组数据,每组数据第一行是数字t,表示双方棋子总个数,然后是t行,每行以type x y的形式给出,type为棋子类型,x y分别是坐标。
如果白方能达成一步杀则输出"Yes"否则输出"No"。
5
r 0 5
k 0 6
P 2 6
Q 4 7
K 6 6
Yes
这是样例1的示意图,其中后走到(1,7)即图中7h位置可达成一步杀。