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