双扣牌型包括:
单张:任意一张单牌
顺子:任意五张或者五张以上点数相连的牌,2和王不能出现在顺子中
对子:任意两张点数相同的牌
连对:三对或三对以上点数相连的牌,如:556677。2和王不能出现在连对中
三张:任意三张点数相同的牌
连三张:三个或三个以上点数相连的三张牌,如:555666777。2和王不能出现在连对中。
炸d:四张或四张以上点数相同的牌,如:66666。
天王炸d:四张王牌
3、双扣游戏怎么玩
在同城游双扣游戏中,玩双扣需要有全局观,手上的牌理好的时候对本局的出牌就应该有策略。如果牌不好,不太可能很快跑牌,目标最好更换为牺牲自己,帮助队友尽快出完牌。
自己出牌时,要出对家想要的牌;压制火力较大的对手,给对家争取更多出牌机会;顶上家,卡下家,就是不让上家连续出牌,也不让下家逃牌。如果自己的牌比较好,尽量将敌方的大牌引出来消灭掉,替自己的对家减轻负担。
首先规定a为12升水桶,b为8升水桶,c为5升水桶,倒水只能按照a-b,b-c,c-a的顺序,且保证每次倒水都要让水倒满,有了以上规定,问题可以这样来想,因为最终水的分布是a=6,b=6,c=0,b中6升的水只能是通过b向c中倒水来实现的(因为b的容量是8所以在保证每次都要让水倒满的情况下a向b中倒水只能倒满8升,可见b中的6升水是通过b向c倒水实现的,这句话是算法的关键,起始就是考虑什么时候要把b中的水倒掉什么时候需要给b加水)具体的过程就变为判断b的情况,如果b为0时那么从a中取水,如果b不为0也不是6则要将水倒给c ,如果b中是6那么还需要判断c中是否为一
下面给出伪代码,思路就是如此,程序按照这个思路完成即可:
int cup[3]={12,0,0}//用数组来代替12L的a,8L的b和5L的c
while(1){
if(cup[1]=0){//如果b中没有水则需要加水
cup[0] to cup[1]//把水从a倒到b
printf("a=%d,b=%d,c=%d",cup[0],cup[1],cup[2])
}
else if(cup[1]!=0&&cup[1]!=6){/*如果b中有水并且不是6L则需要将b中的水倒掉,之后c中的水也要倒掉*/
cup[1] to cup[2]//把b中的水倒给c
cup[2] to cup[0]//给b加水
printf("a=%d,b=%d,c=%d",cup[0],cup[1],cup[2])
}
else if(cup[1]==6&&cup[2]!=0){
cup[2] to cup[0]//如果c中有水 则要把c中的水倒给a
printf("a=%d,b=%d,c=%d",cup[0],cup[1],cup[2])
}
else if(cup[1]=6&&cup[2]=0){
printf("a=%d,b=%d,c=%d",cup[0],cup[1],cup[2])
break//满足条件后则退出while循环
}
}
问题其实可以理解为我们在什么时候要把b中的水倒掉,在什么时候给b中加水
当然这只是一种算法,算法还可以有许多,关键看怎么理解了 希望能帮的上你忙。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)