FZU2230
发布日期:2021-06-29 10:50:30 浏览次数:2 分类:技术文章

本文共 1342 字,大约阅读时间需要 4 分钟。

 Problem 2230 翻翻棋

Accept: 217    Submit: 453
Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

象棋翻翻棋(暗棋)中双方在4*8的格子中交战,有时候最后会只剩下帅和将。根据暗棋的规则,棋子只能上下左右移动,且相同的级别下,主动移动到地方棋子方将吃掉对方的棋子。将和帅为同一级别。然而胜负在只剩下帅和将的时候已定。

 Input

第一行T,表示T组数据。

每组数据共有四行字符串,每行字符串共八个字符

’#’表示空格

’*’表示红方帅

’.’表示黑方将

此时红方先走

每组输入之间没有空行。

 Output

每组数据输出一行。若为红方赢输出Red win,否则输出 Black win

 Sample Input

1
######.#
#####*##
########
########

 Sample Output

Black win

 Source

福州大学第十三届程序设计竞赛
      
解题思路:由于红方先走,红方先走一步后,若两者之间的距离为偶数步,则黑方会赢,也就是说两者之间的距离为奇数步,则黑方赢,否则红方赢。
AC代码:
#include 
#include
using namespace std;int t,x,y,xx,yy,sum;char a[5][9];int abs(int c){ if(c<0) return -c; else return c;}int main(){ scanf("%d",&t); getchar(); while(t--) { for(int i=0;i<4;i++) { for(int j=0;j<8;j++) { scanf("%c",&a[i][j]); if(a[i][j]=='.') { x=i; y=j; } if(a[i][j]=='*') { xx=i; yy=j; } } getchar();//接收换行符 } sum=abs(x-xx)+abs(y-yy); if(sum%2==0) printf("Black win\n"); else printf("Red win\n"); } return 0;}
若有其他问题欢迎在评论区讨论!

转载地址:https://blog.csdn.net/ZP_nanfangguniang/article/details/52242115 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:csu1041
下一篇:fzu1082

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月26日 15时59分03秒