比赛场次 286
比赛名称 20120722
比赛状态 已结束比赛成绩
开始时间 2016-02-19 08:00:00
结束时间 2016-02-19 12:00:00
开放分组 全部用户
注释介绍
题目名称 杀手游戏
输入输出 bang.in/out
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分
Gravatar冥焱 AWWWWWWWWW 0.023 s 0.26 MiB 10
GravatarKZNS AWWWWWWWTT 2.034 s 0.28 MiB 10

杀手游戏

★   输入文件:bang.in   输出文件:bang.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述

在这个题目里,你将要模拟一个著名的疯狂西部主题纸牌游戏,它的名字叫“BANG”。这个游戏适合4到7个人围在一起玩,它之所以出名,部分原因是因为太复杂。不过别担心,你要模拟的只是它的简化版。
在我们这个版本的游戏里只有两个玩家,假定他们的名字是Iamcs和Peipei,开始时每人的生命值都是4。有一堆洗好的牌面朝下放在桌上,两个玩家从上往下摸牌,每人摸牌的张数跟自己的生命值相同(比如,Iamcs摸到最上面的4张牌,而Peipei摸走了接下来的4张牌),然后游戏开始,两个人轮流进行,Iamcs先来,轮到某个玩家时,他要进行如下三步:
(1)从牌堆最上面摸两张牌;
(2)打出去一些牌;
(3)丢弃一些牌,使得自己手里的牌数不超过自己的生命值。
在“BANG”纸牌游戏中,对于打出去或丢弃的任一张牌,不外乎下面几种类型,每一种都有它们自己的功能,详细如下:
Bang:你(出牌的人)向对手射击,如果对手未能成功防御(即刻打出Miss牌),则会被子弹击中,丢掉一分。每次轮到你时,最多只能出一张这种牌。
Grenade:你的对手必须立即出一张Miss牌,否则他将丢一分。
Ghost:你的对手必须立即丢弃一张Bang牌,否则他将丢一分。
Knife:你的对手立即丢掉一分。
Miss:当轮到你出牌时,不能出这种牌,它唯一的用途是来防御,避免中弹。
Parry:当轮到你出牌时,不能出这种牌,但是当你不得不出一张Miss牌时,你也可以同时出一张这种牌用做防御,每出一次这种牌,你必须立即从牌堆最上面摸一张牌来。
当某个玩家丢掉了所有的生命值就算输,整个游戏过程中,每一个玩家都必须遵守下面的策略:
a)轮到某个玩家时,他必须尽可能多地出牌;
b)当对手出了一张Bang或Ghost或Grenade牌时,只要他手里有,他必须出特定的那种牌;
c)Ghost牌要优先于其它牌出;
d)Parry牌要优先于Miss牌出;
e)如果必须要丢弃一些牌,则优先丢掉Bang牌,其次是Miss,最后是Parry牌。

【输入格式】

输入文件包含至少40组测试数据,每个数据有多行组成,表示这堆牌中的每一张,从上到下排列,每个测试数据以一行"==="(3个等号)表示结束,整个输入文件以一行单独的一个句点(.)表示结束。
输入数据保证有足够的牌使得游戏结束。

【输出格式】

  对于每个测试数据,如果第一个摸牌的人(比如Iamcs)赢了或者输了,则相应地在一行输出"WIN"或"LOSE"。

【样例】

bang.in
Bang
Bang
Bang
Bang
Parry
Bang
Ghost
Knife
Bang
Bang
Grenade
Miss
Grenade
===
.

bang.out
LOSE