题目名称 949. 杀手游戏
输入输出 bang.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarcqw 于2012-07-22加入
开放分组 全部用户
提交状态
分类标签
模拟
分享题解
通过:31, 提交:78, 通过率:39.74%
Gravatar斯内普和骑士 100 0.000 s 0.00 MiB C++
Gravatar了反取字名我擦 100 0.004 s 0.32 MiB C++
Gravatar了反取字名我擦 100 0.004 s 0.32 MiB C++
Gravatar了反取字名我擦 100 0.004 s 0.32 MiB C++
GravatarSPA 100 0.005 s 0.32 MiB C++
Gravatar了反取字名我擦 100 0.006 s 3.26 MiB C++
GravatarMakazeu 100 0.007 s 0.31 MiB C++
Gravatar苏轼 100 0.007 s 0.32 MiB C++
Gravatar半汪 100 0.007 s 0.32 MiB C++
GravatarL_in 100 0.008 s 0.31 MiB C++
本题关联比赛
20120722
20120722
关于 杀手游戏 的近10条评论(全部评论)
题目描述感觉不太对啊...........
Gravatar斯内普和骑士
2021-07-16 18:42 10楼
假一黑
Gravatar斯内普和骑士
2021-07-16 16:14 9楼
回复 @小e :
http://cogs.pro:8080/cogs/images/bgm/13.gif
Gravatar天网
2018-03-26 21:54 8楼
用vector想装逼, 结果各种炸, 而且代码又丑又长, 你们拿走算了
Gravatar小e
2016-11-11 21:26 7楼
Gravatar哒哒哒哒哒!
2016-02-20 10:15 6楼
回复 @杨铭宇黄焖鸡饭 :
这就是三国杀
Gravatar森林
2016-02-19 21:29 5楼
题目描述有矛盾P牌与M牌的使用方法模糊不清
GravatarSky_miner
2016-02-19 15:07 4楼
这不是三国杀吗?太像了!
GravatarGaoErFu
2016-02-19 12:05 3楼
回复 @杨铭宇黄焖鸡饭 :
英雄所见略同
Gravatarrvalue
2016-02-19 09:29 2楼
Gravatarforever
2015-08-14 06:16 1楼

949. 杀手游戏

★   输入文件: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