残局斗地主91关求解6月份残局求解

相信大家都玩过斗地主,规则就不再介绍了。
直接上一张朋友圈看到的残局图:
这道题我刚看到时,曾尝试用手工来破解,每次都以为找到了农民的必胜策略时,最后都发现其实农民跑不掉。由于手工破解无法穷尽所有可能性,所以这道题究竟农民有没有妙手跑掉呢,只能通过代码来帮助我们运算了。
本文将简要讲述怎么通过代码来求解此类问题,在最后会公布残局的最后结果,并开源代码以供大家吐槽。
代码的核心思想是minimax。minimax可以拆解为两部分,mini和max,分别是最小和最大的意思。
直观的理解是什么呢?就有点像A、B两个人下棋。A现在可以在N个点走棋,假设A在某个点走棋了,使得A的这一步的盘面评估分数最高;但是轮到B下的时候,就一定会朝着让A最不利的方向走,使得A的下一步必然按照B设定的轨迹来,而没法达到A在第一步时估算到这一步的最高盘面评分。
在牌局中是一样的,如果农民的一手牌,让地主无论如何应对都不能赢的话,那么可以说农民有必胜策略;否则,农民必输。
我们可以用一个函数hand_out来模拟一个人的出牌过程。在现实生活中,一个人想要出牌的话,必然需要知道自己手上的所有牌:me_pokers,也需要知道上一手的出的牌:last_hand。如果我们要用这个函数来模拟两个人的出牌,则还需要知道对手当前的所有牌:enemy_pokers。
这个函数的返回值,是轮到我me_pokers出牌时,是否能够必赢牌。如果能赢则返回真,否则返回假。
def hand_out(me_pokers, enemy_pokers, last_hand)
假设轮到我出牌时,如果我手上的牌都出完了,那么我将立刻知道我赢了;反之如果对手的牌都出完了,而我没有,则我失败了。
因为现在轮到我出牌,所以我首先需要知道我现在能出的所有手牌组合。注意:这个组合中,包括过牌(即不出牌)的策略。
all_hands = get_all_hands(me_pokers)
现在我们要对所有可能的手牌组合进行遍历。
首先我需要知道,上一手对方出的牌是什么。
如果对方上一手选择过牌,或者没有上一手牌,那么我这一轮必须不能过牌,但是我可以出任意的牌
如果对手上一手出了牌,则我必须要出一个比它更大的牌或者选择这一轮直接过牌(不出牌)
关键点来了,在出完我的牌或选择过牌后,我们需要用一个递归调用来模拟对手下一步的行为。如果对手的下一次出牌不能获胜的话,则我这一次的出牌必胜;否则,对于我的每一个出牌选择,对手都能获胜的话,则我必败。
全部代码如下:
以上核心逻辑理清楚后,构建破解器将变得十分简单。
首先,我们要用数字来表示牌的大小,这里我们用3表示3,11来表示J,12表示Q,依次类推……
其次,我们需要求出一个手牌的所有出牌组合,这里需要get_all_hands函数,具体实现比较繁琐但是很简单,就不在此赘述。
然后,我们还需要一个牌力判断函数can_comb2_beat_comb1(comb1, comb2),这个函数用于比较两组手牌的牌力,看是否comb2可以击败comb1。唯一需要注意的一点,在斗地主的规则中,除了炸弹外,其他所有牌力均等,只有牌型一样时才能去比较。
最后,我们需要一个模拟出牌函数make_hand(pokers, hand),用于求出在手牌为pokers的情况下打出一手牌hand后,剩下的手牌,实现也非常简单,只需简单的移除掉那些打出的牌即可。
由于一副牌的可能手牌巨大,导致递归的分支数巨大。所以时间开销非常大,为阶乘级O(N!),根据斯特林公式,大约为O(N^N)。
由于可能会有很多重复的牌面出现,导致了很多重复的递归调用。所以加一个缓存能极大提升效率。
即对我方手牌和敌方手牌和上一轮手牌的描述(str(me_pokers)+str(enemy_pokers)+str(last_hand))为键,将求出的结果存进缓存字典中。下一次遇到相同的局面时,即可直接从缓存字典中取出,而无需再次重复计算。时间复杂度优化为指数级O(C^N)。
代码运算出来的结果是,农民没有必胜策略。换言之,只要地主会玩,农民不可能赢。阶级固化已经如斯了么……
阅读(...) 评论()微信斗地主5月残局100关全关卡过关攻略
微信斗地主残局闯关5月的关卡已经更新数日,是不是还有很多玩家没有通关呢?而本次迎来高难度关卡,不少玩家倒在了第1关无法通关,所以小编为大家带来了微信欢乐斗地主5月残局的全关卡过关攻略,我们会用最简单的方法简明扼要的告诉大家过关的方法!下面我们就从1关开始吧!
微信欢乐斗地主5月残局1关一句话攻略
即K-不要-8-小王-AAA3-Q
您可能也感兴趣:
官方微博/微信
每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。
↑扫描二维码
想在手机上看科技资讯和科技八卦吗?想第一时间看独家爆料和深度报道吗?请关注TechWeb官方微信公众帐号:1.用手机扫左侧二维码;2.在添加朋友里,搜索关注TechWeb。
Copyright (C)
All rights reserved. 京ICP证060517号/京ICP备号 京公网安备76号
TechWeb公众号
机情秀公众号微信《欢乐斗地主》残局怎么过 新手破解100关攻略大全
微信欢乐斗地主残局破解大全100关攻略来了,相信很多小伙伴可能还在攻略小程序里面的欢乐斗地主2月残局,很多人在网上搜了攻略,可能会觉得一关一关点进去会很麻烦,所以小编在这里为大家带了简单的一句话攻略,...
欢乐残局大全100关攻略来了,相信很多小伙伴可能还在攻略小程序里面的欢乐斗地主2月残局,很多人在网上搜了攻略,可能会觉得一关一关点进去会很麻烦,所以小编在这里为大家带了简单的一句话攻略,喜欢的小伙伴们可以直接在这个页面和游戏界面来回跳转,按ctrl+f之后输入关卡数即可快速查看答案哦!
如果一句话还是不太了解的话,你还可以点入拥有详细步骤的各关卡攻略大全查看!
》》》》2月残局全100关详细步骤攻略大全——&微信欢乐斗地主2月残局怎么通关? 全100关残局攻略大全
微信欢乐斗地主残局2月破解大全
2:连对起手
4:34567---78910J---4---Q---A
5:对3顺子,k
6: 你下6他7你8他对4你对7他对9你对2
7:3不要不要3带对炸AQ
8:先下8然后在下K然后不出就赢了
9:先对3然后对J然后不出,在王炸就赢了
10:3-6不要,顺子,赢了
11:对7,9,2,顺子,A,3
12:三个6带5,然后对3对Q ,后面的就可以一个一个顺完去了
14关: 9/k/过/444/55/过/J/A/过/1010/66
15:3-9顺子,三带对,等赢
16:4带2对10等赢
17:8-2-33-不出-王炸-77-A
18:9,等对你下对Q.对面剩个三
19:对4 不要 7 然后k 不要 7然后A 接下来自便
20::8,Q,不出,不出,不出,7,10,44...后面应该懂了
21:3个K带5+不出,一直等他对子出完,他出单的你出A,然后你再出顺子,就知道怎么打了
22:3 A 不要 不要 7 Q 剩下随意
23:5,7,j,不要;不要;不要;Q,大王;对3;随意完了
24:出5,出10出A出7出Q出2在出对3
25:先出一个6,在出J,A,对家出2,过,对家,对9,我方过,对家在出一对A我方在过,接下来对家只有6和5,自己看着办
26:打对4吃对7然后不要,接下来吃j一直吃就赢了
27:3,6,10,过,对方对七我对八,对方对J我对K,对四,剩下自己搞定
28:对4。不要。6。9。 j。k。2。9。不要。10。
29:对55不要,炸弹他顺子,对面剩243
30:对7不要,等他最后两张随便打
31:对5-一直不要等他下对,你对2炸弹,3
32:对K他出3你出A后面自己发挥
33: 4-6-Q-2。55-过-过-过-2-77-A等赢
34:开手A.有对出对,出2炸
35:对4-对6-3-10A10K对98
36: ,顺着出就走了
37:4-10-不要他对5你对8,7A鬼随便打
38:7不要,他对6你对K.4带2对Q之后对面剩两散
39:3-6-ps-88-ps-7-ps-10-ps-22-10
40:3.6.9然后不出,出Q后再不出,等着对方拆5,你拆10.对面出2.后面知道怎么打了
41关4-Q-过-10JQKA-过-77-10
42:对3一直对,随便都能赢,剩kJ5
43:先出一个5,然后等对子,最后四代二
44:Q.一直等他对A你对2顺子等赢
45: 66-kk-3-7-9-Q-过-过-10-过-j-2-4
46关:5-1-过-99-过-6-k-过-炸-44-33
47:3 8 j A 不出 6 2,不出 ,kk
48:先出对5对方对Q不要对方对4出对10在出对3继续打单吧
49:6A244顺子
50关:4/9/1/过/过/过/22/3/J/过/k/55/6
51:5/9/A/过/对J/3/K/2/过/过/对Q
52关:4/8/10/K/王/55/过/9/Q
53关:3/6/8/1/过/5/过/99/QQ/22
55:9+过+对Q+3+J+2+对6+对10
56:出个5之后一直不要等他剩最后一个打小王
57:88877,对方王炸。 然后对方出3.直接出9. 然后顺出就赢了
58:77/过/9/2/3/2/4/王/5
59:4+8+J+K+2+不出
60:Q不要等对4收工
61:7起手,对A不要炸,对2再炸
62:10起手,对J炸他
63:4 8 不要 不要 炸
64关对7回对K,农民出单一直不要,打对5回对9
65:7/10/k/等他出JJ 你AA 就行了
66:66-11-过-5-8-10-Q-过-J-99-3
67: AA/7 /9/j/2/3/8/Q
68:4 10 k 2 10 过 过 过 过 A 对5 Q
69:3/8/J/K/2/过/过/7/A
70:5/Q/2/3/K/22
71:4Q2大王6K8不要不要,等他出顺子就会了
72:对3对j不要,一直等他出2炸
73:先出88他出10你出k他出A你出2之后4带2
74:5J不要等他出3你出79K7JA后面你懂得
75:2 不要 对11不要后面自己摸索
76关:1010/过/7/J/K/过/8/Q
77:对5+过+6+8+10+Q+过+8+K
78: 56789对10后面跟上
79:4-7过对10对A对3对J
80:8-不要,不要,对K,不要,对2,对3,对4
81:8,不要,对Q.三带一后面剩个7对面剩3-5
82:5-10-过-99-22-33
83:58过6过7k
84:一开始出对三就知道怎么打了
85:你7 他10 你11 他13 你2 他大王 让他出对4 对6不要他 出对9时 你对11
86:三五带3
87:87关,出个4,一直不要到他出4为止
88:8Q932这样打
89:8-2就可以了
90:7/J/2/过/过/过/JJ/5/8
91:JJ/过/99/7/Q/过/8/9/4
92:48不要Q不要,后面就会了
93:1010-AA-KKK3-5–7-9
94:66/过/99/33
95:4-10-不要等他出对
97:4-k-2-4-王-7-1-9
98:9/J/过/过/过/Q/过/kk
99:10-一直过。等他打KK。炸。6-Q-2
100:8.不要44,不要不要,对K后面就懂了
正在加载,请稍后...
植物大战僵尸1
安卓平台下载
苹果平台下载一个斗地主残局求解,有图
规则如下:楼主是地主,我先出一个4,你们将如何赢我?
这些回帖亮了
你家斗地主就一个农民?
发自手机虎扑 m.hupu.com
出4.农民必须小王接不然直接死. 小王接了 地主大王. 打3个3. 留A跟5.农民不要出5留a 地主赢.农民3个2接了出k.地主a压死出5地主赢.
发自手机虎扑 m.hupu.com
你家斗地主就一个农民?
发自手机虎扑 m.hupu.com
不能三带一?
引用2楼 @ 发表的:
你家斗地主就一个农民?
1v1斗地主。
斗地主可以三带一的,你出4,农民直接出小鬼,你拿头赢。
引用3楼 @ 发表的:
不能三带一?
当然可以,楼主这把根本就是农民必胜的牌。
引用1楼 @ 发表的:都老梗了,地主必胜!没有其他!终结此贴!!
感觉不一定啊…
出4.农民必须小王接不然直接死. 小王接了 地主大王. 打3个3. 留A跟5.农民不要出5留a 地主赢.农民3个2接了出k.地主a压死出5地主赢.
发自手机虎扑 m.hupu.com
只有两个人,那个农民已经走了,农民赢
发自手机虎扑 m.hupu.com
得看规则了 我们这儿是三必须带一 但是网上打法可以不带或者带一对
引用9楼 @ 发表的:
我出4,你出吧!!还不一定。。。。都老梗了,地主必赢!
我出小王 你出
农民必赢,没看头
引用12楼 @ 发表的:
得看规则了 我们这儿是三必须带一 但是网上打法可以不带或者带一对
这才是关键,规则都不讲玩个p啊
如果这么打,地主必胜。
不让3带1,那就地主赢了
不用三带一啊
地主出4,小鬼顶上,地主出大鬼。他出三带一我就顶死他,走单牌我就一只二一只二调戏他
引用6楼 @ 发表的:
当然可以,楼主这把根本就是农民必胜的牌。
人家只出三个三你怎么解?你手里KQ,人家有A
您需要登录后才可以回复,请或者
402人参加团购259.00元&469.00元
995人参加团购299.00元&890.00元
804人参加团购659.00元&1399.00元
1419人参加团购175.00元&395.00元
92人参加团购35.90元&75.00元
127人参加团购189.00元&539.00元
113人参加团购199.00元&829.00元
34人参加团购145.00元&228.00元
152人参加团购39.00元&89.00元
31人参加团购89.00元&299.00元
120人参加团购99.00元&319.00元
20人参加团购109.00元&239.00元更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
按住视频可进行拖动
&正在加载...
举报视频:
举报原因(必填):
请说明举报原因(300字以内):
请输入您的反馈
举报理由需要输入300字以内
感谢您的反馈~
请勿重复举报~
请刷新重试~
收藏成功,可进入查看所有收藏列表
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
用爱奇艺APP或微信扫一扫,在手机上继续观看
当前播放时间:
一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
2017最新斗地主残局 求高手破解 上面先出
正在检测客户端...
您尚未安装客户端,正在为您下载...安装完成后点击按钮即可下载
30秒后自动关闭
2017最新斗地主残局 求高手破解 上面先出">2017最新斗地主残局 求高手破解 上面先出
请选择打赏金额:
热门短视频推荐
Copyright (C) 2018 & All Rights Reserved
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
正在为您下载爱奇艺客户端安装后即可快速下载海量视频
正在为您下载爱奇艺客户端安装后即可免费观看1080P视频
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
后才可以领取积分哦~
每观看视频30分钟
+{{data.viewScore}}分
{{data.viewCount}}/3
{{if data.viewCount && data.viewCount != "0" && data.viewCount != "1" && data.viewCount != "2" }}
访问泡泡首页
+{{data.rewardScore}}分
{{if data.rewardCount && data.rewardCount != 0 && data.getRewardDayCount != 0}}1{{else}}0{{/if}}/1
{{if data.rewardCount && data.rewardCount != 0 && data.getRewardDayCount != 0}}
+{{data.signScore}}分
{{data.signCount}}/1
{{if data.signCount && data.signCount != 0}}
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制}

我要回帖

更多关于 残局斗地主91关求解6月份 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信