XTU1176:I Love Military Chess

陆军棋,又称陆战棋,简称军棋,是中国近代的一种两人棋类,设计根据军队中的军阶。每一方有25枚棋子,先夺得对方军旗者为胜。

棋子

每一方的棋子为25枚,包括:

军阶高低 棋子名称 各方枚数 特殊能力
1 司令 1
2 军长 1
3 师长 2
4 旅长 2
5 团长 2
6 营长 2
7 连长 3
8 排长 3
9 工兵 3 铁路上格数不限并可转弯,攻击胜过地雷
M 地雷 3 不能移动,胜过其他一切攻击棋子,工兵/炸弹除外
B 炸弹 2 遇到敌方棋子皆同归于尽,军旗也不例外
F 军旗 1 不能移动,被攻击则拥有者输掉游戏

胜负一览

司令 > 军长 > 师长 > 旅长 > 团长 > 营长 > 连长 > 排长 > 工兵

炸弹与任何棋子相遇时,双方都消失

工兵 > 地雷

地雷 > 除炸弹和工兵以外的任何子粒

题目要求

请你帮忙判断两个棋子相碰时,谁出局。

输入

多组测试数据,每组数据占一行

每行有两个数字或字母,之间用空格隔开,表示前者经过移动,与后者相碰。

1 表示司令
2 表示军长
3 表示师长
4 表示旅长
5 表示团长
6 表示营长
7 表示连长
8 表示排长
9 表示工兵
M 表示地雷
B 表示炸弹
F 表示军旗

输出

对于每组数据输出一行,为两人的官阶比较结果

1 表示前者官阶比后者大

-1 表示前者官阶比后者小

0 表示两人同归于尽

Error 表示出错(军旗和地雷不能主动移动)

Bingo 表示前者获得胜利(扛取对方军旗)

样例输入

1 2
B M
9 1
B F
1 F
M 1
F 1

样例输出

1
0
-1
Bingo
Bingo
Error
Error




#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;

int main()
{
    char s1[3],s2[3];
    while(~scanf("%s%s",s1,s2))
    {
        if(s1[0] == 'F' || s1[0] == 'M')
        {
            printf("Error\n");
            continue;
        }
        if(s2[0] == 'F')
        {
            printf("Bingo\n");
            continue;
        }
        if(s1[0] == 'B' || s2[0] == 'B')
        {
            printf("0\n");
            continue;
        }
        if(s2[0] == 'M')
        {
            if(s1[0]!='9')
                printf("-1\n");
            else
                printf("1\n");
            continue;
        }
        if(s1[0] == s2[0])
        {
            printf("0\n");
            continue;
        }
        if(s1[0] < s2[0])
        {
            printf("1\n");
            continue;
        }
        else
            printf("-1\n");
    }

    return 0;
}

XTU1176:I Love Military Chess,布布扣,bubuko.com

时间: 2024-10-07 06:13:16

XTU1176:I Love Military Chess的相关文章

XTUOJ 1176 I Love Military Chess(模拟)

 I Love Military Chess Accepted : 45   Submit : 141 Time Limit : 1000 MS   Memory Limit : 65536 KB 题目描述 陆军棋,又称陆战棋,简称军棋,是中国近代的一种两人棋类,设计根据军队中的军阶.每一方有25枚棋子,先夺得对方军旗者为胜. 棋子 每一方的棋子为25枚,包括: 军阶高低 棋子名称 各方枚数 特殊能力 1 司令 1 无 2 军长 1 无 3 师长 2 无 4 旅长 2 无 5 团长 2 无

中国象棋游戏Chess(2) - 走棋

之前的文章请看:中国象棋游戏Chess(1) - 棋盘绘制以及棋子的绘制 现在实现走棋的功能. 首先需要获取点击到的棋子,用QWidget中的函数 mouseReleaseEvent 实现函数: void Board::mouseReleaseEvent(QMouseEvent *ev) { // 首先要获取鼠标点击的位置 QPoint pt = ev->pos(); // 看有没有点中象棋 // 将pt转化成象棋的行列值 // 判断这个行列值上面有没有棋子 int row, col; bool

中国象棋游戏Chess(3) - 实现走棋规则

棋盘的绘制和走棋参看博文:中国象棋游戏Chess(1) - 棋盘绘制以及棋子的绘制,中国象棋游戏Chess(2) - 走棋 现在重新整理之前写的代码,并且对于每个棋子的走棋规则都进行了限制,不像之前那样每个棋子都可以走到任意位置. 也实现了红先黑后,并且每一方走一步,交替走棋的功能. 直接看代码: // Board.h // Board类实现了棋盘的绘制以及显示 // #ifndef BOARD_H #define BOARD_H #include <QFrame> #include &quo

跟我学ASP.NET MVC之七:SportsStrore购物车

摘要: SportsStore应用程序进展很顺利,但是我不能销售产品直到设计了一个购物车.在这篇文章里,我就将创建一个购物车. 在目录下的每个产品旁边添加一个添加到购物车按钮.点击这个按钮将显示客户到目前为止选择的产品摘要,包含总价格.这时候,用户可以点击继续购物按钮返回产品目录,或者点击现在下单按钮完成订单结束购物过程. 定义Cart实体类 在SportsStore.Domain工程的Entities文件夹下,创建代码文件Cart.cs. 1 using System.Collections.

2013湘潭赛

XTU1168 Alice and Bob 因为数据只有10000范围,直接递推就可以了 #include<stdio.h> #include<string.h> #include<vector> #include<list> #include<deque> #include<queue> #include<stack> #include<map> #include<set> #include<

SDKD 2017 Summer Single Training #03

今天的题目有 6 个. 第一题: CodeForces - 400D  Dima and Bacteria 这个题实际是不难的,难的可能在题意的理解上还有题干有点长,这个题很考察题意上面,知识点很熟悉,并查集和Floyd. 具体题解地址:http://www.cnblogs.com/dwtfukgv/p/7126059.html 第二题:CodeForces - 384E  Propagating tree 这个题确实是有难度的,当然主要是在时间上面,其实这个我是防AK的,然后这个题很容易理解,

HTML5+JS 《五子飞》游戏实现(四)夹一个和挑一对

在第一章我们已经说了怎么才能“夹一个”以及怎样才能挑一对,但那毕竟只是书面上的,对码农来讲,我们还是用代码讲解起来会更容易了解. 为了更容易对照分析,我们先把路线再次贴出来: // 可走的路线 this.lines = [ [ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24], [ 0, 5, 10, 15, 20], [ 1, 6, 11, 16,

简单概率DP——hdu4405

题目描述: Hzz loves aeroplane chess very much. The chess map contains N+1 grids labeled from 0 to N. Hzz starts at grid 0. For each step he throws a dice(a dice have six faces with equal probability to face up and the numbers on the faces are 1,2,3,4,5,6

Codeforces Round #281 (Div. 2) (A、B、C、D题)

昨天这场CF打的还挺爽的,不过就是没咋涨Rating,没把握好涨Rating的机会.. 本来可以过四题的,,但是很失败,重评后跪了两道..唉:-( A. Vasya and Football 思路:给每个人计数,黄牌+1,红牌+2. 当数字第一次超过2时输出. 题目链接:A. Vasya and Football AC代码: #include <cstdio> #include <cstring> #include <iostream> #include <alg