问道五子棋攻略优攻快攻

2261人阅读
网络编程(2)
C/C++(6)
软件实践课的一个大作业。
算法4月15号左右就写完了,那时感觉UI两天就能写完,再加上实验室的一些项目,于是就放那了。下周一就结课了,于是趁时赶紧把UI及网络对战实现了。
一、算法部分
这部分分两个模块,一是搜索,另一是估值。
这部分需要用到博弈树理论以及alpha-beta极大极小搜索算法。
博弈树,简化成简单的模型就是:己方每走一步对方便有N种走法,对于对方的N种中的每一步走法自己又有相对应的M种走法,而对于自己的M种走法,对方又有H种走法......如此下去便在逻辑上形成了一颗树,因为每一步我们都想赢,在对方走的基础之上走对自己最有利的一步,这样就形成了博弈,我们称其为博弈树。其有N*M*H*........种走法,呈指数级增长。可见如果我们单纯的BFS或DFS,那将是一件多么&消磨时光&的事,说不定等他跑出来,我们的孩子会在我们的墓碑前含着泪告诉我们结果......因此我们得用一种优化的搜索。极大极小算法解决此类博弈问题的比较流行的一种搜索算法。它的基本思想用一句话概括就是:走 对方走对我们最不利的一步后 局面对我们最有利的一步。如果还是不太理解,
的&口袋的例子&中你可以找到更详尽的描述。光这样,效率还是很低的,于是基于极大极小算法的alpha-beta优化算法诞生了。&口袋的例子&中同样也有对alpha-beta算法思想的精彩的描述。
于是乎,这样成熟的算法就有了一个框架(ACM竞赛的时候记不住的话可以当模板使用吧):
int alphabeta(int depth, int alpha, int beta)
if (棋局结束 || depth &= 0)
return eval();
for (每个合理着法 m)
score = -alphabeta(depth - 1, -beta, -alpha);
if (score &= alpha)
bestmove =
if (alpha &= beta)
基于此算法,我又在寻找&每个合理着法&时使用了贪心算法。其思想是:先搜索一下对方的下一步,如果对方走一步即赢(包括成五连,活四,双活三等),那么我们就要将其堵住。否则寻找对自己最有利的N步(按估值函数判断是否对自己有利),且将其按估值从大到小的顺序排列,搜索时先从估值最大的开始,N是自己定义的有限步(如果是所有可能的都搜索,复杂度仍然很高)。
这样加上一个好的估值函数,一个AI还可以的算法便出来了。
2、估值函数
这个没有太多的技巧,只能老老实实的对棋局进行搜索。大致思想:
从(x , y)开始向左,向右,左上,右下分别搜索,搜索同色且相连的棋子个数,将其标记为已搜索,然后根据活三活四等的特征进行匹配,记录活三活四等的个数,对每一个棋型进行评价,比如一个活三300,两个活三就赢了,给100000。然后将两方的棋型分别相加后,将和相减,返回差。各个棋型可以
二、UI和网络对战
介绍这部分之前,先可悲可笑一下。以前玩别人写的五子棋,是有双人对战,可是那时在同一台电脑上!!你下过后,我在抚摸着你在鼠标上留下的体温接着下......想想都可笑,这尼玛是真正的网络对战么?
UI布局没什么好说的,coding前先将UI界面在纸上大致的画一下,心里有个谱,这样写起代码才快。UI我卡在了两个问题上,充分反映了对QT的某些机制理解的不够透彻。
第一个problem:是关于paintEvent()的。当当前窗口失去焦点之后,之前所有已经绘好的棋子全部消失。看了看文档才知道,当窗口start,chang时均触发paintEvent(),而我重绘时使用的激发函数恰好是repaint(),只重绘了局部(即落棋的地方)。解决办法是:将已下的棋子的位置、颜色信息保存起来。重绘的时候for循环全部重绘。
第二个problem:是关于不同窗口之间信号通信的。在具体一点来说是父窗口与子窗口之间信号通信的。这个难点主要是不知怎么获得父窗口的实例,即connect( childWidget , SIGNAL() , fatherWidget , SLOT() )中的fatherWidget。最后我扒遍了QT文档,想到了两个办法:
&&&&&& 1、是在实例化fatherWidget的.cpp中声明一个QWidget *w = fatherWIdget.window() ,并且声明为全局变量,然后在childWidget所在的.cpp中用extern引用w就行了。
&&&&&& 2、是在fatherWidget中使用connect()函数,因为在childWidget是在fatherWidget中创建的,因此使用时就像这样connect( childWidget , SIGNAL() , this , SLOT() )就行了。
李浩师兄又告诉我说,在初始化子窗口时,传递父窗口的this指针,然后在子窗口里使用。我当时怎么就没想到呢?!!
2、网络对战
我决定用一副自己设计时的的手绘图来说明我的实现流程。
其是按照上面标的序号来实现连接的。
端口是举例用的,仅仅是为了说明问题。上面的框图是下面的子窗口。
序号1:客户端向端口1发送udp广播,发送的内容为 &标记+客户端的HostName&
序号2:服务器端坚挺的端口2接收到内容,判断一下标记,如果是发送的标记,记录客户端的HostName,并显示IP
序号3、4:当服务器端点击已经找到的IP时,向其棋局窗口发送指令,令其开始监听tcp连接
序号5:监听成功时,向子窗口发送监听成功信号
序号6:当接收到父窗口监听成功信号时,向客户端的子窗口发送tcp连接信号
序号7:客户端的子窗口向父窗口发送tcp连接信号
序号8:客户端连接服务器,当连接成功时,向子窗口发送连接成功信号
序号9:告诉服务器端子窗口tcp连接成功,令其关闭
需要说明的是我是先用UDP来探路,看是否能够找到服务器(或客户端连接),然后当点击某一IP时才建立TCP连接
三、一些感悟和一些关于QT的经验
1、必须要有敏锐的观察力,丰富的联想力,以及大胆的尝试
2、文档才是精髓!!
3、如果自己定义的UI类作为另外一个自定义UI类的成员变量时,则有时必须在此类上面声明成员变量类,用&class classN&的形式。
4、有一些莫名其妙的问题有时将build文件整个删掉就莫名其妙的好使了。
5、google才是王道!!
四、最终效果图:
人机对战:
双人对战:
建立主机:
寻找主机:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:96333次
积分:1421
积分:1421
排名:千里之外
原创:43篇
评论:28条
(1)(1)(2)(1)(1)(4)(4)(3)(2)(4)(6)(17)(2)进攻的心得_五子棋吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:33,366贴子:
进攻的心得
有两点,首先要减少对手的棋,不能越攻对手越多。第二点,能摆脱对手的棋形成胜势。这两点不太可能同时达到,但是需要考虑到
2.2版本的时候我通过htt...
外面六个情人,小姐几十...
买了5年了没中过5位数,...
首先自我介绍,本人男,...
缺牙要及时修复,揭秘种植牙如何做到几十年不掉?
当然外势也很重要,外势是取胜的要点之一
说的好像你能做到一样╭(╯^╰)╮
前排留名   --十五个字是检验小尾巴的唯一标准
可以前排吗?
像我这种的,就能走出两点兼得的好进攻w,像天道那种的,就能走出一样的进攻
现场直播?
——当你看到这条小尾巴时,你已经浪费了人生的1s
说得好像你做到了就能从受变成攻一样
我这种菜鸟根本就没有技巧……非要说技巧,那就是穷举,只不过我的算法穷举得比较快而已
贴吧热议榜
使用签名档&&
保存至快速回贴五子棋对弈规则;现代;中一点为天元;对局开始时,先由执黑棋一方将一枚棋子落在天元点上;周围的交叉点上落子;二着棋布在自己河界的一侧,即直止或斜止;在棋盘的横线、纵线或斜线上形成连续五子或五子以上;获胜;连珠五子棋的一个特点是先行的一方优势很大,因此在;限制,以利公平竞争;〖1〗黑先、白后,从天元开始相互顺序落子;;〖2〗最先在棋盘横向、纵向或斜向形成连续的同
五子棋对弈规则
中一点为天元。
五子棋专用棋盘为十五路(15X15),共225个交叉点。棋盘正
对局开始时,先由执黑棋一方将一枚棋子落在天元点上,然后由执白棋一方在黑棋
周围的交叉点上落子。但是,为了尊重对方和礼貌起见,持白棋的一方通常将盘面的第
二着棋布在自己河界的一侧,即直止或斜止。此后黑白双方轮流落子,直到某一方首先
在棋盘的横线、纵线或斜线上形成连续五子或五子以上〔仅对白棋而言〕,则该方就算
连珠五子棋的一个特点是先行的一方优势很大,因此在职业比赛中对黑方做了种种
限制,以利公平竞争。五子棋的比赛规则如下:
〖1〗 黑先、白后,从天元开始相互顺序落子;
〖2〗 最先在棋盘横向、纵向或斜向形成连续的同色五个棋子的一方为胜;
〖3〗 黑棋禁手判负、白棋无禁手。黑棋禁手有“三、三”、“四、四”和“长连”,
包括“四、三、三”和“四、四、三”。黑棋只能以“四、三”取胜;
〖4〗 如分不出胜负,则到为平局;
〖5〗 五连与禁手同时形成,判胜;
〖6〗 黑方禁手形成时,白方应立即指出。若白方未发现或发现后不立即指出,反而
继续落子,则禁手失效,不再判黑方负。
【1】 五子棋是黑白双方或两个人之间的竞技活动,由于对黑白双方规则不同,黑棋
必须先行。一般采用猜先的方法来决定谁执黑先行,即双方各抓一种颜色的几枚棋子,
大数减小数,单数双方交换,偶数不换;
【2】 所谓黑方形成禁手,是指黑方落下一子同时形成两个或两个以上的活三、冲四
及长连等。此时白方应立即指出,自然而胜。
【3】 黑方在落下关键的第五子即形成五连的同时,如又形成禁手,此时因黑方已经
成五,而“五”在五子棋中是至高无上的,故禁手失效,黑方胜;
专业连珠五子棋虽然对黑棋采取了种种限制,但是黑棋先行的优势依然很大。因此,
在高段位的专业比赛中,又出现了三种特殊的规定:
【1】“指定打法”:指比赛双方按照约定好的开局进行对弈。例如“斜月
”长星局”等。
【2】“三手可交换”:指黑棋下第二手棋〔盘面第三手棋〕之后,白方如感觉黑方
棋形不利于己方,可提出交换,即执白棋一方变为执黑棋一方〔此方法不适用于指定开
局打法,而用于随意开局〕。采用此规定以后,黑棋就不会再使用诸如“浦月”、“花
月”之类的必胜开局了。
【3】“五手两打”:指黑棋在下盘面上关键的第五手棋时,必须下两步棋,让白方
在这两步棋中任选一步,然后再继续下。
============================================
五子棋100句箴言
1、 有攻势,无胜势时,应该把握先手,适当拓展,甚至可以脱先。切忌不要勉强的盲目进攻
2、 跳三跳四有妙手,蹦蹦跳跳真可爱
3、 马步是防守的高效棋型
4、 学会利用等招。等招实质是做棋的一种形式。没机会时,等招比简单的连三冲四卖掉变化,要明智而有效的多
5、 时刻关注并创造一步成F杀的机会学会利用积极主动的后中先的防守方式,也就是攻击性的防守
6、 防守是一种享受,一种痛苦的享受。白棋要学会在受虐中壮大自己,并等待机会,反戈一击。时机不成熟时就抢先,与黑大打出手,实不可取
7、 不会抓禁手等于不会用白。当你用白的胜利,有半数左右是利用抓禁取胜时,你上路了
时刻保持清醒的思路,审时度势,因势利导。学会制定作战策略,并根据局部不同棋型,设计精巧的杀法
8、 除非确认已经胜利,否则全盘任何时候都不要停下思考。算完当前局面,就算下一个局部。因为你不能保证一个局部就能成杀。保持开阔的视野,和活跃的思维
9、 最直接的防守未必是最强的防守。很多时候,利用非贴身的手段,控制对手的进攻,往往能为自己接下来赢得更多的机会。后中先是好手段
10、学会判断棋型要点。并不是每个点,效力是一样的。那些能令对方通N路的点,或者那些谁占谁得先的点,此时不占,更待何时?
10、做棋是五子的核心与精华。而做必胜是精华中的精华
11、执黑方拥有第一次先手权。黑棋不等同于先手。先手不等同于优势,优势不等同于胜势。胜势不等同于真的能够胜利。抢得先手,占得优势,利用做棋扩大成胜势,并最终成杀,才是该做的。
12、 活3冲4是直接的进攻手段,做棋(这里指做成杀的做棋)是间接的进攻手段
在有杀局面下,杀的分类:
单纯利用活3冲4取胜,叫做直接杀。也叫做追胜。
单纯利用一步做棋取胜(必然是同时做成两套以上不可同时防御的胜法),叫做杀
有的局面,必须直接杀;有的局面,必须做杀;有的局面,直接杀做杀均可以
包含活3的直接杀,我们称为做T(three)杀:包括VCT和T (three)F(four)的组合杀;
做出包含冲4的直接杀,我们称为做F(four)杀:即VCF
如果做出的杀,除了活3冲4外,还需要做棋,才能达到,我们称之为混合杀
直接杀相对简单,混合杀相对较难。直接杀常见
13、直接杀包含有次序和无次序两类
14、做杀是做VCF的最简单形式。F杀大于T杀
15、做F杀不是指望当前VCF干掉对手。但却可以通过做F杀抢到先手,并进而连攻得胜。
16、得先不意味着必然要进攻。在局部素材不够时,连续做棋,扩大优势,待对方防不胜防时,一击致命,才是正道
17、和棋是五子的终极。和棋是理性的结果,是可以接受的
18、先手是五子全盘争夺的核心
19、适应手和交换是使棋局流畅的重要手段
20、使自己的思路连贯起来。对于可能有杀的局面,算到杀再走;对于激烈争先的局部,算到万无一失的争先手段再走;对于交换,争取做到交换后有利或不失先手。
21、对每一个局部的战斗充满预见性。尽量清晰的预见某个局部的可能战斗结果。并对下一局部的战斗有所计划。
22、知道自己的胜机在哪里。知道当前局面对自己的最好结果是什么
23、时间是重要的武器。实战更是如此。
24、诱攻、摆烂、示弱的招数很多时候是奏效的,尤其在局面缠绵,而自己又急需胜利之时
25、只要时间允许,那么你就要知道你做的棋,后面该如何杀。以及对手最强的和可能的
应点在哪里,并加以防范。而不能做棋后再计算
得先不意味着必然要进攻。在局部素材不够时,连续做棋,扩大优势,待对方防不胜防时,一击致命,才是正道
适应手和交换是使棋局流畅的重要手段
使自己的思路连贯起来。对于可能有杀的局面,算到杀再走;对于激烈争先的局部,算到万无一失的争先手段再走;对于交换,争取做到交换后有利或不失先手。
对每一个局部的战斗充满预见性。尽量清晰的预见某个局部的可能战斗结果。并对下一局部的战斗有所计划。
知道自己的胜机在哪里。知道当前局面对自己的最好结果是什么
时间是重要的武器。实战更是如此。
诱攻、摆烂、示弱的招数很多时候是奏效的,尤其在局面缠绵,而自己又急需胜利之时
只要时间允许,那么你就要知道你做的棋,后面该如何杀。以及对手最强的和可能的应点在哪里,并加以防范。而不能做棋后再计算
把对手想像的足够强大并足够理性,才能激发你全部的战斗力。否则,你不旦可能会输,而且会很不甘心
不打无准备之仗。在现行体系下,开局阶段不要轻易脱谱或变招,甚至走自己从没走过的变化。否则,你承受的风险会远大于你可能的收益。
黑的机会更多在前半盘。白的机会更多在后半盘。所以,黑要迅速而大胆的组织进攻,而白,一般要先立足防守,反先过早,轻则丧失胜机,重则自掘坟墓
边线是防守的天然屏障,而第2道隐形的屏障则是六路线。
进攻和防守是一体的。在无法清晰看到进攻取胜的手段时,要在计算进攻的同时,考虑防御的手段。而防守方也应该随时知晓自己一旦得先手后,哪里能直接杀,哪里是必胜区域,哪里可以通过一两步做棋达到有杀状态。
练棋是个系统工程。练棋讲究方法与效率。平时练棋,不在多,在于精。打谱、研究开局变化、网练都不可或缺。当天对局,要能做到无误的复盘。知道每盘的败招、胜招、好手分别是哪几点,以及那盘的开局变化是否值得研究,中盘展开手段是否可借鉴。对胜与负了然于胸。并不断改进、提高。训练的水平,决定了你实战的水平
根据不同形势,中盘的一些赌博性下法是可以适当使用的
同样是做杀点,不是通的路数越多越好。很多时候,通更少的路数,反而是正解。
有时,做禁不是为了杀,而是为了得到某个点或保持先手
解禁的方式有两种:利用防守,破坏对方威胁到禁手点的棋;或者利用活3冲4的进攻,主动的让自己的禁手点消失。具体采用什么方式,试情况而定
是人都会犯错误。你可以进攻时错过杀机,但你的底线是防守时必须足够认真,不要走败招
当局面平淡,双方都难以形成局部优势时,不妨通过交换或单防等方式巧妙脱先,以守代攻,等待胜机
做一子双杀是黑棋取胜的常见方式,有时也是唯一的方式。先手前提下,两套或多套不可共防的杀形成,即做成必胜,因此胜利。双杀的形式主要包括:双F杀、一F一T杀、双T杀、一F一抓等
F杀常常是先手易主的分水岭和进攻取胜的开端。做F杀抢先是重要手段。要对F
包含各类专业文献、中学教育、幼儿教育、小学教育、高等教育、文学作品欣赏、生活休闲娱乐、10五子棋入门必读及100心得等内容。 
 暂无评价|0人阅读|0次下载|举报文档 五子棋心得_其它_高等教育_教育专区。黑与...基础,对于一些必胜棋形和大优局势,随机 应变就能致胜, 所以只学到棋形或棋势...  暂无评价|0人阅读|0次下载|举报文档五子棋兴趣课程心得体会_韩语学习_外语学习_教育专区。五子棋兴趣课程心得体会 进入阳光小学之后,每周五下午推出了多个兴趣课程,...  暂无评价|0人阅读|0次下载|举报文档五子棋心得体会_计划/解决方案_实用文档。五子...对局基础,对于一些必胜棋形和大优局势,随机应变就能致胜,所以只学到棋形或 棋...  暂无评价|0人阅读|0次下载|举报文档 五子棋心得_教育学/心理学_人文社科_专业资料。――记合肥京东方显示光源第一届“光源杯”五子棋比赛 为了丰富员工的业余生活...  暂无评价|0人阅读|0次下载|举报文档五子棋心得体会_计划/解决方案_实用文档。五子...对局基础,对于一些必胜棋形和大优局势,随机应变就能致胜,所以只学到棋 形或棋...  五子棋棋谱――经典的开局方式、开局口诀及心得_文学...在上方白棋也许有五十手甚 至一百手之多的连续...五子棋基础教程 41页 1下载券
五子棋技巧图解 11...  五子棋棋谱――经典的开局方式、开局口诀及心得_文学...暂无评价|0人阅读|0次下载|举报文档 五子棋棋谱―...在上方白棋也许有五十手甚 至一百手之多的连续...  设计要求要求设计五子棋游戏,棋盘在3x3基础上增加,由...-7 - 赢棋画面: -8 - 5.0 心得体会本次课题重...( nSpotsOnBoard&=100)//下棋并判断输赢 { if(...  100句成功咒语 3页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 五子棋箴言100句 隐藏&& 1.下棋,掌握思路和棋...五子棋入门必读及100心得_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
五子棋入门必读及100心得
上传于||暂无简介
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 机械迷城五子棋攻略 的文章

 

随机推荐