一张杀亚洲王朝纸牌最多几张导致牌堆顶消耗多少张牌

刚买的游戏卡,一下不太适应,三国杀里面所有的判定如闪电、乐不思蜀、八卦、武将的技能(刚烈和铁骑)都是牌堆顶的第一张牌么?
提问人:游客
您还没有登录,请后进行评论。
是的,所有判定牌都是牌库顶第一张锦囊判定是后进入判定区的先判定,比如别人先给你用乐不思蜀,然后上一位玩家判定完闪电,它在乐不思蜀之后进入了你的判定区,那么轮到了你的回合,先判定闪电,再判定乐不思蜀。
您还没有登录,请后进行评论。
其他回答 (共
判定牌都是牌堆最上面的一张牌回答人:官方认证徽章
10:17 官方认证徽章是,判定状态下第一个摸锝。回答人:游客
23:46 是啊..不然呢...........牌堆顺序是不能乱的&因为影响到一些英雄技能&比如&观星&洛神&顺序很重要&不能从当中抽取回答人:游客
23:49 判定牌都是牌堆最上面的一张牌回答人:游客
23:55 是的&牌堆第一张&网游中也是有牌堆的回答人:
00:06 是的,所有判定牌都是牌库顶第一张回答人:
如果您发现有违反规则的内容和用户,请您积极举报!
举报对象:
举报类型:
含有反动色情等内容
含有危害国家安全等内容
漫骂与诽谤等
无意义灌水
抄袭别人的回答
举报内容:三国杀8人军争场,可以有标准风火林山神武将(没有一将、SP、特殊),一张杀最多能直接造成多少点伤害?-余下全文>>_水瓶情感网
三国杀8人军争场,可以有标准风火林山神武将(没有一将、SP、特殊),一张杀最多能直接造成多少点伤害?
三国杀8人军争场,可以有标准风火林山神武将(没有一将、SP、特殊),一张杀最多能直接造成多少点伤害?
相关说明:
把直接两个字去掉吧,我的意思是不包括刚烈、雷击之类不是杀造成的伤害。铁索、天香可以。要找出这种条件下的最大伤害值。最好能把这个讨论了很久的问题盖棺定论。我算的答案暂时自以为没有更高伤害了。 贴吧帖子传送站:
【铁索连环】作用效果:连环——出牌阶段使用这个的答案我思考了好多种方案。也许是记错了也许是现在改版了,查阅FAQ发现,现在小乔弹出伤害后后边的人继续结算铁索连环不会再次传导到小乔身上,杀穿藤甲受狂风的人,首先弄出了3个版本分别是61、66。而且在测试过程中还发现了另一个问题。所以第三方案也被否决了,然后摸一张牌。 官方FAQ、59点伤害,跟自己的上家(非触发者)没有关系。[Q]如果ABCD铁索连环,B是小乔,铁索连环结算顺序并不是之前我认为的从受伤害角色开始逆时针顺序,而是被杀的人受到伤害后铁索传导伤害从本回合出牌人开始逆时针方向结算。最后经过综合考虑,你可以将此牌置入弃牌堆,5点伤害铁索传导5*8=40点伤害有另一个穿藤甲的人,40+1=41点小乔把点伤害弹给藤甲狂风,如何处理?[A]该角色受到属性伤害,CD没有,这时BCD各受到多少伤害,A受到1点火属性伤害,B天香给C,这时候各人的受伤害情况和武将牌状态各在什么时刻发生变化,最后是什么状态?[A]这是A受到1点火属性伤害,武将牌重置;B天香给C,C受到1点火属性伤害,是否需要重置?[A]不需要。但是游戏里测试结果表明,这3个答案都有问题。后来经过今天一天的思考+查阅资料+游戏测试。铁索传导的伤害不能再次传导:[Q]处于连环状态的小乔受到属性伤害并发动【天香】。然后又想出了第三种方案,同时马上重置武将牌,伤害+2,41+2=43点然后杀小乔,小乔将伤害弹给藤甲狂风,43+5=48点然后杀大乔流离给藤甲狂风,比如ABCD连环,如果A受到1点火属性伤害,解除连环状态,不再触发连环并结算天香摸牌。随后之前的连环伤害继续结算。[Q]铁索连环过程中,天香弹出的伤害依然算是“铁索传导的伤害”,之后小乔依然不能受到铁索传导伤害,是因为我觉得小乔弹给别人的伤害就不算“铁索传导的伤害”了吧,分别横置或重置其武将牌(被横置武将牌的角色处于“连环状态·即使第一名受伤害的角色死亡,也会令其它处于连环状态的角色受到该属性伤害。·经由连环传导的伤害不能再次被传导。重铸——出牌阶段,也就是说,铁索连环中的玩家受到的伤害=第一个受伤害并触发铁索连环的玩家所收到的伤害+自己装备可能发生的加成或者限制。小乔发动天香时不会触发连环,48+5=53点由于不能再天香上取巧,所以我暂时认为53点就是最高伤害了。如果谁有更高方案请提出附,最终答案为53点,方案如下:1号位许褚裸衣+酒+火杀,方天画戟一杀三用,B因为自己没有收到伤害,究其原因是对铁索连环理解不够深刻。先放出这3种方案,CD仍然受到1点火属性伤害,从而触发连环,B有藤甲:前两种方案因为隐约记得之前游戏中好像小乔弹出伤害后还可以受到别的在铁索中角色的伤害传导,所以武将牌不重置,仍然处于铁索连环状态?[A]在没有其他条件的前提下,这时B受到1+1=2点火属性伤害。[Q]处于连环状态的小乔受到属性伤害并天香给同在连环状态下但尚未结算连环伤害的角色,因为被天香后已经重置;D仍然受到A引发的铁索连环伤害,受到1点火属性伤害。★ 经测试,铁索连环的传导方式是;C不会再受到A传过来的铁索连环伤害:首先被杀的伤害源头受到伤害...
大乔一个流离,再+5血,如果不看有其他武将的话。三我们假设被杀者是刘备。二,假使铁索连环了有藤甲的刘备和有藤甲另外一人(假设是关羽)。那么方天杀大乔小乔关羽,假设关羽先被杀,得到连环6伤,在有方天,大乔小乔的情况下,加上前面大乔小乔10伤,小乔再一个天香+5血,共15血。共16伤。四,加狂风,再加4。(记得连环的因素。一,火杀酒藤甲菊花刀+许褚就是5血
太史慈装方天拼点赢,喝酒后最后一张手牌火杀,可以指定四个目标,假设场上8个人全部铁索连环(太史慈也连上),小乔也在场,神诸葛狂风,藤甲一副牌最少两张,所以这样算的话。。。
杀本身1点伤害,许褚裸衣+1点伤害,古锭刀+1点伤害,酒+1点伤害,藤甲+1点伤害(小乔装备),狂风+1点伤害,小乔转移此伤害到装藤甲的董卓身上再+1点伤害,8个人都被连环了,对7个人各造成7点伤害(小乔9点),小乔天香此伤害到董卓身上。共59点伤害。
理论上有许褚,大小乔,再随便找个武将,藤甲,方天画戟,铁锁连环,狂风,酒杀,一张杀最多能造成26点的伤害,
我算的一张杀最多6点(酒,古锭,藤甲,火杀自己本身一点伤害,许褚,神诸葛亮狂风)然后8个人全部铁索连着,许褚杀装藤甲的小乔,小乔转下一个人(这里设为a),a装着藤甲,8点。结算铁索伤害是从当前回合人逆时针计算所以许褚8点(只有两个藤甲)。然后如果小乔在许褚下家,因小乔装备着藤甲,会受到8+1,9点伤害,转给b,当前回合人是许褚,他没有连环了,则小乔结算,再增加一点火焰伤害,再转给c,c受到10点,再回来,转伤害…伤害就是11,12,13…如果小乔有足够的牌,华佗有足够的桃,应该是造成的伤害无限伤害(应该是不可能实现的)
望采纳^_^参考资料:自己
三国杀至今有多少武将,谁能清晰的告诉,包括风火山林、军争、SP、星SP、一战成名等等 ------
仅按照编号和武将名称来看,共计232名武将。如果算上技能不同但名称或者编号相同,由于武将一直在修订中...
三国杀军争篇,风火山林等是怎么回事?和以前的标准版有什么关系? ------
军争包是加入了新的三种基本牌(火杀,雷杀,酒),三种锦囊牌(铁索连横,火攻,兵粮寸断),四种装备牌(...
三国杀(标准风火林山一将1112)中在八人军争中主公最好选(?)忠臣/反贼最好选(?)内建最好选(?... ------
主公的话还是主流主公比较强,军争的话曹操比较强,山包孙策也很强,但需要觉醒才行。忠的话一定要选有输出...
三国杀OL风火林山,一将成名的武将都能用于哪些场,新手场能用吗 ------
如果有喜欢的武将就先买吧,升级很快的,20级以后在军争场中级可以用,新手场貌似只能用标准,我是一区的...
三国杀 风火山林 分别有哪些人物?? ------
贾诩 魏3血天机:任意玩家判定阶段,可在判定牌生效前,弃一张手牌让其重新判定,次数不限。远谋:任何时...
三国杀所有牌 包括各种扩展 军争国战风火林山 一将成名 SP 各种武将 血卡 基本牌锦囊装备牌各种多... ------
  标准包:旧版:25张;新版:27张;风,火,林,山包:各10张(含神将)一将2011:11张;一...
三国杀风火林山和普通版有什么不同 ------
三国杀最初出的包就是三国杀的标准版,包括蜀国7将,魏国7将,吴国8将,群雄3将,标准卡牌包,EX包。...
三国杀 标准加军争+ 一将 风 火 山 林 1v1要去掉那些牌? ------
网杀1V1只有 卡牌:标准+军争+EX 武将:标准+风 你面杀的话就无所谓了,我面杀两个双武将打一个...
图中的这个三国杀桌游卡牌标准豪华版军争风火林山一将成名SP神武将全套塑封有没有货到付款的,有的话麻 ------
楼主如果想买盗版建议不要图中这种。如果买正版的话是178包邮。(里面除了sp都有),如果买盗版那就看...
哪里有一买就是有2016的三国杀一将成名和sp有风火林山和军争的? ------
首先,2016一将成名没有出(没有官方实体卡牌,一般到年末才有),然后,sp卡牌是随桌游志随刊赠送的...大家都在搜:
扫描二维码安装房天下APP
手机浏览器访问房天下
> > 问题详情
diy三国杀,帮忙改改。关羽,4勾玉。武圣:你可以将你的红牌当做杀来使用。拖刀:每当你使用了一张闪,即
可对任意一名角色使用一张杀。(无距离限制)张飞:4勾玉。咆哮:你可以使用任意张杀。怒喝:每当你使用杀造成一次伤害,可以立刻从牌堆顶摸一张牌。
浏览次数:0
关羽:优点:输出高、不缺距离;缺点:没包养容易虚;不想虚容易白板。张飞:优点:输出高、自带无性别限制严重阉割版雌雄剑Ver1.0,保证了残弹的数量;缺点:手短(很致命);摸了牌有数量没质量。:三国杀官方给体力的解释是:阴阳鱼。不是勾玉。勾玉是岛国鬼子的说法。
不知道下面这条知识能否帮助到您
其实在别人家装修的时候,一般比较精细精致的瓷砖装修地面,缝隙都是比较小,让人们很羡慕,瓷砖缝隙小也会增加瓷砖的美观度,并且让室内的档次更高一些。为此装修勾缝是有一定的技巧的,学会勾缝的技巧,让家居无忧。
瓷砖勾缝有妙招,四步打造无暇地面!
手机动态登录
请输入用户名/邮箱/手机号码!
请输入密码!
没有房天下通行证,
ask:2,asku:1,askr:48,askz:13,askd:10,RedisW:7askR:158,askD:84 mz:nohit,askU:0,askT:0askA:243
Copyright &
北京拓世宏业科技发展有限公司
Beijing Tuo Shi Hong Ye Science&Technology Development Co.,Ltd 版权所有
违法信息举报邮箱:关于三国杀的两个问题,请高手回答-百谷歌【bzoj1972】[Sdoi2010]猪国杀 - 模拟 -
【bzoj1972】[Sdoi2010]猪国杀
《猪国杀》是一种多猪牌类回合制游戏,一共有三种角色:主猪,忠猪,反猪。每局游戏主猪有且只有一只,忠猪和反猪可以有多只,每只猪扮演一种角色。
游戏目的:
主猪(MP):自己存活的情况下消灭所有的反猪。
忠猪(ZP):不惜一切保护主猪,胜利条件与主猪相同。
反猪(AP):杀死主猪。
游戏过程:
游戏开始时候,每个玩家手里都会有4张牌,且体力上限和初始体力都是4。
开始游戏时,从主猪开始,按照逆时针方向(数据中就是按照编号从1,2,3..n,1..的顺序)依次行动。
每个玩家自己的回合可以分为4个阶段:
◎摸牌阶段:从牌堆顶部摸两张牌,依次放到手牌的最右边;
◎出牌阶段:你可以使用0张到任意张牌,每次使用牌的时候都使用最靠左的能够使用的牌。当然,要满足如下规则:
1.如果没有猪哥连弩,每个出牌阶段只能使用一次“杀”来攻击;
2.任何牌被使用后被弃置(武器是装备上);
被弃置的牌以后都不能再用,即与游戏无关;
各种牌介绍:
每张手牌用一个字母表示,字母代表牌的种类。
◎基本牌:
『桃(P)』:在自己的回合内,如果自己的体力值不等于体力上限,那么使用一个桃可以为自己补充一点体力,否则不能使用桃;桃只能对自己使用;在自己的回合外,如果自己的血变为0或者更低,那么也可以使用;
『杀(K)』:在自己的回合内,对攻击范围内除自己以外的一名角色使用。如果没有被『闪』抵消,则造成1点伤害。无论有无武器,杀的攻击范围都是1;
『闪(D)』:当你受到杀的攻击时,可以弃置一张闪来抵消杀的效果;
◎锦囊牌:
『决斗(F)』:出牌阶段,对除自己以外任意一名角色使用,由目标角色先开始,自己和目标角色轮流弃置一张杀,首先没有杀可弃的一方受到1点伤害,另一方视为此伤害的来源;
『南猪入侵(N)』:出牌阶段,对除你以外所有角色使用,按逆时针顺序从使用者下家开始依次结算,除非弃置一张杀,否则受到1点伤害;
『万箭齐发(W)』:和南猪入侵类似,不过要弃置的不是杀而是闪;
『无懈可击(J)』:在目标锦囊生效前抵消其效果。每次有一张锦囊即将生效时,从使用这张锦囊的猪开始,按照逆时针顺序,依次得到使用无懈可击的机会;
效果:用于决斗时,决斗无效并弃置;用于南猪入侵或万箭齐发时,当结算到某个角色时才能使用,当前角色不需弃置牌并且不会受到伤害(仅对一个角色产生效果);用于无懈可击时,成为目标的无懈可击被无效。
◎装备牌:
『猪哥连弩(Z)』:武器,攻击范围1,出牌阶段你可以使用任意张杀;
同一时刻最多只能装一个武器;如果先前已经有了一把武器,那么之后再装武器的话,会弃置以前的武器来装现在的武器;
特殊事件及概念解释:
◎伤害来源:杀、南猪入侵、万箭齐发的伤害来源均是使用该牌的猪,决斗的伤害来源如上;
◎距离:两只猪的距离定义为沿着逆时针方向间隔的猪数+1。即初始时1和2的距离为1,但是2和1的距离就是n-1。注意一个角色的死亡会导致一些猪距离的改变;
◎玩家死亡:如果该玩家的体力降到0或者更低,并且自己手中没有足够的桃使得自己的体力值回到1,那么就死亡了,死亡后所有的牌(装备区,手牌区)被弃置;
◎奖励与惩罚:反猪死亡时,最后一个伤害来源处(即使是反猪)立即摸三张牌。忠猪死亡时,如果最后一个伤害来源是主猪,那么主猪所有装备牌、手牌被弃置;
◎注意,一旦达成胜利条件,游戏立刻结束,因此即使会摸3张牌或者还有牌可以用也不用执行了。
现在,我们已经知道每只猪的角色、手牌,还有牌堆初始情况,并且假设每个角色会按照如下的行为准则进行游戏,你需要做的就是告诉小猪iPig最后的结果。
几种行为:
◎献殷勤:使用无懈可击挡下南猪入侵、万箭齐发、决斗;使用无懈可击抵消表敌意;
◎表敌意:对某个角色使用杀、决斗;使用无懈可击抵消献殷勤;
◎跳忠:即通过行动表示自己是忠猪。跳忠行动就是对主猪或对某只已经跳忠的猪献殷勤,或者对某只已经跳反的猪表敌意;
◎跳反:即通过行动表示自己是反猪。跳反行动就是对主猪或对某只已经跳忠的猪表敌意,或者对某只已经跳反的猪献殷勤;
忠猪不会跳反,反猪也不会跳忠;不管是忠猪还是反猪,能够跳必然跳;
行动准则:
共性:每个角色如果手里有桃且生命值未满,那么必然吃掉;有南猪入侵、万箭齐发、必然使用;有装备必然装上;受到杀时,有闪必然弃置;响应南猪入侵或者万箭齐发时候,有杀/闪必然弃置;不会对未表明身份的猪献殷勤(包括自己);
◎主猪:主猪会认为没有跳身份,且用南猪入侵/万箭齐发对自己造成伤害的猪是“类反猪”(没伤害到不算,注意“类反猪”并没有表明身份),如果之后跳了,那么主猪会重新认识这只猪;对于每种表敌意的方式,对逆时针方向能够执行到的第一只“类反猪”或者已跳反猪表;如果没有,那么就不表敌意;决斗时会不遗余力弃置杀;如果能对已经跳忠的猪或自己献殷勤,那么一定献;如果能够对已经跳反的猪表敌意,那么一定表;
◎忠猪:对于每种表敌意的方式,对逆时针方向能够执行到的第一只已经跳反的猪表,如果没有,那么就不表敌意;决斗时,如果对方是主猪,那么不会弃置杀,否则,会不遗余力弃置杀;如果有机会对主猪或者已经跳忠的猪献殷勤,那么一定献;
◎反猪:对于每种表敌意的方式,如果有机会则对主猪表,否则,对逆时针方向能够执行到的第一只已经跳忠的猪表,如果没有,那么就不表敌意;决斗时会不遗余力弃置杀;如果有机会对已经跳反的猪献殷勤,那么一定献;
限于iPig只会用P++语言写A + B,他请你用Pigcal(Pascal)、P(C)或P++(C++)语言来帮他预测最后的结果。
输入文件第一行包含两个正整数n(2 &= n &= 5) 和m( m &= 2000),分别代表玩家数和牌堆中牌的数量。数据保证牌的数量够用。
接下来n行,每行5个字符串,依次表示对第i只猪的角色和初始4张手牌描述。编号为1的肯定是主猪。
再接下来一行,一共m个字符串,按照从牌堆顶部到牌堆底部的顺序描述每张牌。
所有的相邻的两个字符串都严格用1个空格隔开,行尾没有多余空格。
输出数据第一行包含一个字符串代表游戏结果。如果是主猪胜利,那么输出“MP”,否则输出“FP”。数据保证游戏总会结束。
接下来n行,第i行是对第i只猪的手牌描述(注意只需要输出手牌),按照手牌从左往右的顺序输出,相邻两张牌用一个空格隔开,行末尾没有多余空格。如果这只猪已阵亡,那么只要输出“DEAD”即可。注意如果要输出手牌而没有手牌的话,那么只需输出一个空行。
MP D D F F
ZP N N N D
FP J J J J
F F D D J J F F K D
J J J J J J D
样例1说明:第一回合主猪没有目标可以表敌意;接下来忠猪使用了3张南猪入侵,主猪掉了3点体力,并认为该角色为类反猪,3号角色尽管手里有无懈可击,但是因为自己未表明身份,所以同样不能对自己用,乖乖掉3点体力;下一回合反猪无牌可出;接下来主猪对着类反猪爆发,使用4张决斗,忠猪死亡,结果主猪弃掉所有牌;下来反猪摸到一张杀直接杀死主猪获胜。
数据说明:一共20组测试数据,每个点5分。10%的数据没有锦囊牌,另外20%的数据没有无懈可击。
#include&iostream&
#include&cstdio&
#include&cstring&
int n,fnum,m,now,
char heck[2001];
struct player
bool f,jump,
bool zhuge,used[2001];
char hd[2001];
bool mp(int k){if(k==0)return 1;return 0;}
bool zp(int k){if(a[k].f==0&&k!=0)return 1;return 0;}
bool fp(int k){if(a[k].f==1)return 1;return 0;}
void discard(int k){a[k].num=a[k].zhuge=0;}
void ini()
scanf("%d%d",&n,&m);
for(int i=0;i&n;i++)
char ch[5];scanf("%s",ch);
if(ch[0]=='F'){a[i].f=1;fnum++;}
for(int j=1;j&=4;j++)
scanf(" %c",&a[i].hd[j]);
a[i].num=a[i].hp=4;
for(int i=0;i&m;i++)
scanf(" %c",&heck[i]);
if(!fnum)ed=1;
int dis(int x,int y)
for(int i=(x+1)%n;i!=y;i=(i+1)%n)
if(a[i].hp)d++;
void reset(int k)
int tot=0;
for(int i=1;i&=a[k].i++)
if(!a[k].used[i])
a[k].hd[tot]=a[k].hd[i];
a[k].used[tot]=0;
void showhand(int k)
for(int i=1;i&=a[k].i++)
printf("%c",a[k].hd[i]);
if(i!=a[k].num)printf(" ");
printf("\n");
void gethand(int k,int num)
for(int i=1;i&=i++)
a[k].num++;
a[k].hd[a[k].num]=heck[now];
a[k].used[a[k].num]=0;
if(now&m-1)now++;
void kill(int k,int from)
if(mp(k)){ed=2;}
if(!fnum)ed=1;
gethand(from,3);
if(zp(k)&&mp(from))discard(from);
void jump(int k){a[k].jump=1;}
bool usecard(int k,char c)
for(int i=1;i&=a[k].i++)
if(a[k].hd[i]==c&&!a[k].used[i])
{a[k].used[i]=1;return 1;}
bool sha(int k){return usecard(k,'K');}
bool shan(int k){return usecard(k,'D');}
bool tao(int k){return usecard(k,'P');}
bool wuxie(int k){if(usecard(k,'J')){jump(k);return 1;}return 0;}
void like(int k){if(!a[k].jump)a[k].like=1;}
void wound(int k,int from)
a[k].hp--;
if(a[k].hp==0)
if(tao(k))a[k].hp=1;
else kill(k,from);
bool askwuxie(int k,int f)
if(a[i].hp)
if(a[i].f==f)
if(wuxie(i))
if(!askwuxie(i,f^1))return 1;
i=(i+1)%n;
if(i==k)return 0;
bool needwuxie(int k,int from)
if(!a[k].jump&&!mp(k))return 0;
if(askwuxie(from,a[k].f))return 1;
void aoe(int k,int f)
for(int i=(k+1)%n;i!=k;i=(i+1)%n)if(a[i].hp)
if(needwuxie(i,k))
if(f==1){if(!sha(i)){if(mp(i))like(k);wound(i,k);}}
if(f==2){if(!shan(i)){if(mp(i))like(k);wound(i,k);}}
int duel(int k,int from)
if(zp(k)&&mp(from))return 1;
if(needwuxie(k,from))return 2;
if(!sha(k))return 1;
if(!sha(from))return 0;
bool attack(int k,int f)
if(dis(k,0)==1&&f==1){jump(k);if(!shan(0))wound(0,k);return 1;}
int res=duel(0,k);
if(res==1)wound(0,k);
else if(res==0)wound(k,0);
for(int i=(k+1)%n;i!=k;i=(i+1)%n)if(a[i].hp)
if((fp(i)&&a[i].jump)||(a[i].like&&!a[i].jump))
if(dis(k,i)==1&&f==1)
if(!shan(i))wound(i,k);
int res=duel(i,k);
if(res==1)wound(i,k);
else if(res==0)wound(k,i);
else for(int i=(k+1)%n;i!=k;i=(i+1)%n)if(a[i].hp)
if((a[k].f^a[i].f)&&a[i].jump)
if(dis(k,i)==1&&f==1)
if(!shan(i))
wound(i,k);
int res=duel(i,k);
if(res==1)wound(i,k);
else if(res==0)wound(k,i);
void move(int k)
gethand(k,2);
bool flag=0;
for(int i=1;i&=a[k].i++)
if(ed||!a[k].hp)
if(a[k].used[i]==1)
if(a[k].hd[i]=='P'&&a[k].hp&4)
{a[k].used[i]=1;a[k].hp++;}
else if(a[k].hd[i]=='N'){a[k].used[i]=1;aoe(k,1);i=0;}
else if(a[k].hd[i]=='W'){a[k].used[i]=1;aoe(k,2);i=0;}
else if(a[k].hd[i]=='K'&&(!flag||a[k].zhuge))
if(attack(k,1))
a[k].used[i]=1;
else if(a[k].hd[i]=='F')
if(attack(k,2)){a[k].used[i]=1;i=0;}
else if(a[k].hd[i]=='Z')
{a[k].used[i]=1;if(!a[k].zhuge){a[k].zhuge=1;i=0;}}
void solve()
for(int i=0;i&n;i++)
if(a[i].hp)move(i);
void print()
if(ed==1)printf("MP\n");
else if(ed==2)printf("FP\n");
for(int i=0;i&n;i++)
if(!a[i].hp)printf("DEAD\n");
else showhand(i);
int main()
while(!ed)solve();
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
#include&iostream&#include&cstdio&#include&cstring&using namespace std;int n,fnum,m,now,ed;char heck[2001];struct player{ bool f,jump,like; int hp,num; bool zhuge,used[2001]; char hd[2001];}a[11];bool mp(int k){if(k==0)return 1;return 0;}bool zp(int k){if(a[k].f==0&&k!=0)return 1;return 0;}bool fp(int k){if(a[k].f==1)return 1;return 0;}void discard(int k){a[k].num=a[k].zhuge=0;}void ini(){ scanf("%d%d",&n,&m); for(int i=0;i&n;i++) {
char ch[5];scanf("%s",ch);
if(ch[0]=='F'){a[i].f=1;fnum++;}
for(int j=1;j&=4;j++) &&&&&& scanf(" %c",&a[i].hd[j]);&&&&&&&&a[i].num=a[i].hp=4; } for(int i=0;i&m;i++) && scanf(" %c",&heck[i]);&&&&if(!fnum)ed=1;}int dis(int x,int y){ int d=1; for(int i=(x+1)%n;i!=y;i=(i+1)%n)&&&&&&&&if(a[i].hp)d++;&&&&return d;}void reset(int k){ int tot=0; for(int i=1;i&=a[k].num;i++)
if(!a[k].used[i])
&& a[k].hd[tot]=a[k].hd[i];
&& a[k].used[tot]=0; &&&&} a[k].num=tot;}void showhand(int k){ reset(k);&&&&for(int i=1;i&=a[k].num;i++)&&&&{&&&&&&&&printf("%c",a[k].hd[i]);&&&&&&&&if(i!=a[k].num)printf(" ");&&&&}&&&&printf("\n");}void gethand(int k,int num){ if(ed)return; for(int i=1;i&=num;i++) {
a[k].num++; &&&&a[k].hd[a[k].num]=heck[now]; &&&&a[k].used[a[k].num]=0; &&&&if(now&m-1)now++; }}void kill(int k,int from){ if(mp(k)){ed=2;return;}&&&&if(fp(k))&&&&{&&
&& fnum--;&&
&& if(!fnum)ed=1; && gethand(from,3);&&&&}&&&&if(zp(k)&&mp(from))discard(from);&&&&}void jump(int k){a[k].jump=1;}bool usecard(int k,char c){&&&&for(int i=1;i&=a[k].num;i++)&&&&&& if(a[k].hd[i]==c&&!a[k].used[i])&&&&&&&&&&{a[k].used[i]=1;return 1;}&&&&return 0;} bool sha(int k){return usecard(k,'K');}bool shan(int k){return usecard(k,'D');}bool tao(int k){return usecard(k,'P');}bool wuxie(int k){if(usecard(k,'J')){jump(k);return 1;}return 0;}void like(int k){if(!a[k].jump)a[k].like=1;}void wound(int k,int from){&& a[k].hp--;&& if(a[k].hp==0)&& {&&
&&if(tao(k))a[k].hp=1;&&&&&&else kill(k,from);&& }}bool askwuxie(int k,int f){ &&&&int i=k;&&&&while(1)&&&&{&&&& if(a[i].hp) &&&&&&&&if(a[i].f==f)&&&& &&&& if(wuxie(i))&&&&&&&&&&&&&&&&{&&
&&&&&&&&if(!askwuxie(i,f^1))return 1;&&&&&&&&&&&&&&&&&&&&return 0;&&&&&&&&&&&&&&&&}&&&&&&&&i=(i+1)%n;&&&&&&&&if(i==k)return 0;&&&&}}bool needwuxie(int k,int from){ if(!a[k].jump&&!mp(k))return 0;&&&&if(askwuxie(from,a[k].f))return 1;&&&&return 0;}void aoe(int k,int f){ for(int i=(k+1)%n;i!=k;i=(i+1)%n)if(a[i].hp) { && if(needwuxie(i,k))continue; && if(f==1){if(!sha(i)){if(mp(i))like(k);wound(i,k);}} && if(f==2){if(!shan(i)){if(mp(i))like(k);wound(i,k);}} && if(ed)return;&&&&}}int duel(int k,int from){ if(zp(k)&&mp(from))return 1; if(needwuxie(k,from))return 2; while(1) {
if(!sha(k))return 1;
if(!sha(from))return 0; }}bool attack(int k,int f){ if(fp(k)) {
if(dis(k,0)==1&&f==1){jump(k);if(!shan(0))wound(0,k);return 1;}
&&&&jump(k);
&&&&int res=duel(0,k);
if(res==1)wound(0,k);
else if(res==0)wound(k,0);
} } if(mp(k)) {&&&&&& for(int i=(k+1)%n;i!=k;i=(i+1)%n)if(a[i].hp) &&&&&&if((fp(i)&&a[i].jump)||(a[i].like&&!a[i].jump)) &&&&&&{ &&&&&&&& if(dis(k,i)==1&&f==1) &&&&&&&& {&&&&&&&&&&&&&&&& if(!shan(i))wound(i,k);&&&&&&&&&&&&&&&& return 1;&&&&&&&&&&&& }&&&&&&&&&&&& if(f==2)
&&&&&&&& int res=duel(i,k);
&&&& if(res==1)wound(i,k);
&&&& else if(res==0)wound(k,i);
&&&&&&&& return 1;
} } else for(int i=(k+1)%n;i!=k;i=(i+1)%n)if(a[i].hp) && if((a[k].f^a[i].f)&&a[i].jump) && { &&&&&&if(dis(k,i)==1&&f==1) &&&&&&{&&&&&&&&&&&&&&jump(k);&&&&&&&&&&&&&&if(!shan(i))&&&&&&&&&&&&&&wound(i,k); &&&&&&&&&&&&&&return 1;&&&&&&&&&&}&&&&&&&&&&if(f==2)
&&{ &&&&&&&&&&jump(k);
&&&&&&int res=duel(i,k);
&&if(res==1)wound(i,k);&&&&&&&&&&&&&&else if(res==0)wound(k,i);
&&&&&&return 1;
&&} && }&&&&return 0;}void move(int k){&& &&&&reset(k); gethand(k,2); bool flag=0; for(int i=1;i&=a[k].num;i++) {
if(ed||!a[k].hp)return;
if(a[k].used[i]==1)continue;
if(a[k].hd[i]=='P'&&a[k].hp&4)&&
&&&&{a[k].used[i]=1;a[k].hp++;}&&&&&&&&else if(a[k].hd[i]=='N'){a[k].used[i]=1;aoe(k,1);i=0;}&&&&&&&&else if(a[k].hd[i]=='W'){a[k].used[i]=1;aoe(k,2);i=0;}&&&&&&&&else if(a[k].hd[i]=='K'&&(!flag||a[k].zhuge))&&&&&&&&{&&&&&&&& if(attack(k,1))
&& a[k].used[i]=1;
&& flag=1;
&& i=0;&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&else if(a[k].hd[i]=='F')&&&&&&&&{&&&&&&&& if(attack(k,2)){a[k].used[i]=1;i=0;}&&&&&&&&}&&&&&&&&else if(a[k].hd[i]=='Z')
{a[k].used[i]=1;if(!a[k].zhuge){a[k].zhuge=1;i=0;}} }}void solve(){ for(int i=0;i&n;i++)&&&&&& if(a[i].hp)move(i);}void print(){ if(ed==1)printf("MP\n"); else if(ed==2)printf("FP\n"); for(int i=0;i&n;i++) && if(!a[i].hp)printf("DEAD\n");&&&&&& else showhand(i);}int main(){ ini(); while(!ed)solve(); print(); return 0;}
3676107<FONT face=楷体
"自己选择的路,跪着也要走完"
图包度娘盘340*240(9M) 356t
WP-Cumulus by
9 or better.
本站热门430941283980395834573361317630283018293029252803272426232599

我要回帖

更多关于 麻将最多胡几张牌 的文章

 

随机推荐