南主打4S,注意一个叫牌过程,西家叫过加倍,东家应叫过2D. 西连打红桃K.A,然后再打红桃J让东家将吃.东家上手后,回小方块.此时庄家已经失了3墩了,如何完成这个4S? 庄家必须拿到所有剩下的牌墩.唯一可能的失墩在梅花Q上,从西家的加倍来看,他有些点力,红桃AKJ是8点,方块K看来也在西家(另外东家回小方块也说明东不太可能拿K),这样就西家就有了11点.如果西家同时拿方块K和梅花Q,那么他还会受到挤牌的压力,来看南家清完将后打出红桃Q时的情形. 西肯定不会把方块K垫了,所以他垫小梅花8,明手的…
Level 3 A A34-到处都是希望 B B14 防将牌失控 B26 探索式打法 C C1 绝不能让东家上手 C5 4-1分布该怎么办? C10 保持将牌控制 C27 多一个成功机会 D D1 注意进手 D2 红桃的分布? D9 D10 D17 D20 D21 Level 4 A A1-让敌方的QJTx只拿一墩 A2-防止阻塞 A3-差1墩还是差2墩? A4-剥光投入,小心阻塞 A5-3个失张 A9-首攻分析 A10-飞张? A11-缩短自己的将牌 A13-探查牌型分布 A16-输张垫输张…
<Algorithms算法>笔记:元素排序(3)——洗牌算法 Algorithms算法笔记元素排序3洗牌算法 洗牌算法 排序洗牌 Knuth洗牌 Knuth洗牌代码 洗牌算法 洗牌的思想很简单,就是像洗扑克牌一样,对一组数据进行随机打乱,这个算法在很多应用里都非常有用,特别是对于后面需要介绍的快排来说,这个算法直接影响了快排的效率. 洗牌的算法这里提了2种 排序洗牌 思想很简单,先对每个元素生成一个随机数,然后对这些随机数进行排序 排序前 排序后 Knuth洗牌 一个更简单的算法,不用sort…
南主打5H. 看来问题不大,但要小心南的方块AK会阻塞桥路. 如果方块3-2分布,并且将牌也3-2分布,就很容易. 如果红桃4-1分布,那是死定了. 如果方块4-1分布,还有希望完成的! 为了防止东家上手打穿梅花,第一墩要让过.这样可以在黑桃A上垫掉一张方块K,从而方块只需拔一轮,不会被将吃.以后只要清完将,最后止于明手的红桃K,定约正好完成.…
南主打5C. 此牌的难点在于:如果黑桃4-2分布时,有没有打成的希望?看来黑桃.红桃.方块各1个失张无法避免? 但希望还是有的,那就是东家拿2张黑桃,并且有3张将牌. 这时庄家可以清2轮将牌,拔2轮黑桃大张,用红桃K回明手,然后小心地从明手引黑桃5: 此时如果东将吃,庄家垫小,则防守方没有额外的将牌了,北家还剩余一张将牌.庄家用黑桃可以垫掉北的小红桃,这样可以吃掉庄家的一张小红桃输张. 如果东不将吃,庄家则拿住,再出黑桃2,让明手吃掉就OK了.…
西拿黑桃K.A后,转攻小方块. 看来只有一个小红桃失张了.飞方块没有必要冒险.但将牌分布4-0时会有点麻烦.…
1. 模拟斗地主洗牌和发牌并对牌进行排序的原理图解: 2. 代码实现: 思路: • 创建一个HashMap集合 • 创建一个ArrayList集合 • 创建花色数组和点数数组 • 从0开始往HashMap里面存储编号,并存储对应的牌 同时往ArrayList里面存储编号即可. • 洗牌(洗的是编号) • 发牌(发的也是编号,为了保证编号是排序的,就创建TreeSet集合接收) • 看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌) package cn.itcast_04;…
1. 模拟斗地主洗牌和发牌 分析:     A:创建一个牌盒     B:装牌     C:洗牌     D:发牌     E:看牌 2. 代码实现: package cn.itcast_03; import java.util.ArrayList; import java.util.Collections; /* * 模拟斗地主洗牌和发牌 * * 分析: * A:创建一个牌盒 * B:装牌 * C:洗牌 * D:发牌 * E:看牌 */ public class PokerDemo { pub…
南打3NT. 西的首攻会有3墩黑桃.3墩方块.2付梅花,共8墩到手.看来方块如果3-2分布的话,非常容易就能超一完成. 所以要想着4-1分布的安全打法. 第一墩庄家拿了黑桃J后,明手的黑桃A会阻塞,庄家的上手张只有方块A和Q,如果提前打完了,黑桃K会兑现不了. 所 以 正 确 的 打 法 是 : 第二墩出小方块2,明手也出小放过! 这样稳拿9墩.…
前面学了一个星期的C++,以前阅读C++代码有些困难,现在好一些了.做了一些NOI的题目,这也是一个长期的目标中的一环.做到动态规划的相关题目时发现很多问题思考不通透,所以开始系统学习.学习的第一本是<数据结构与算法C++描述>第三版,边学边做一些笔记.所以这些笔记中的代码有很多将会非常简单,甚至可能只有一个记录或者结论. 辗转相除法用来求两个整数的最大公约数,即能同时整除两个数的最大整数.程序如下: int gdc(int m,int n){ int rem; ){ //0之前的那个数就是最…