五子棋网络版与单机版
界面思路:
用按钮数组模拟棋盘。改变按钮的背景图片标志这个棋盘的格子上是黑棋、白棋、空。同时使用一个二维数组记录棋盘棋子的分布,比如qipan[0][0]=1标示第1行第一列的棋子是黑棋子,乙烯类推。循环检测是否某行、某列、某斜线上是否已经有五个颜色相同的棋子。简单的算法就是判断某行、某列、某斜线的妻子数目那个最多。通过2个for循环遍历棋盘。复杂的算法,你看看下面的参考资料,不过下面这段材料如果看不懂的话,用简单的算法实现了五子棋也是很好的了,^_^
五子棋算法(AI)任何一种棋类游戏其关键是对当前棋局是否有正确的评分,评分越准确则电脑的AI越高。五子棋游戏也是如此,但在打分之前,我们先扫描
整个棋盘,把每个空位从八个方向上的棋型填入数组gStyle(2,15,15,8,2),其中第一个下标为1时表示黑棋,为2时表示白棋,第二和第三
个下标表示(x,y),第四个下标表示8个方向,最后一个下标为1时表示棋子数,为2时表示空格数,如:gStyle(1,2,2,1,1)=3表示与坐标(2,2)在第1个方向上相邻的黑棋棋子数为3
gstyle(1,2,2,1,2)=4表示与坐标(2,2)在第1个方向上的最近的空格数为4
在定义方向时,也应该注意一定的技巧,表示两个相反的方向的数应该差4,在程序中我是这样定义的:
ConstDIR_UP=1
ConstDIR_UPRIGHT=2
ConstDIR_RIGHT=3
ConstDIR_RIGHTDOWN=4
ConstDIR_DOWN=5
ConstDIR_DOWNLEFT=6
ConstDIR_LEFT=7
ConstDIR_LEFTUP=8
这样我们前四个方向可以通过加四得到另一个方向的值。如果你还是不太明白,请看下面的图:
---------
---------
---oo----
-ox*xx---
---------
---------
图中的*点从标为(4,4),(打*的位置是空位),则:
gStyle(2,4,4,1,1)=1在(4,4)点相邻的上方白棋数为1
gStyle(2,4,4,1,2)=2在(4,4)点的上方距上方白棋最近的空格数为2
gStyle(1,4,4,3,1)=2在(4,4)点相邻的右方黑棋数为2
gStyle(1,4,4,3,2)=1在(4,4)点的右方距右方黑棋最近的空格数为3
...一旦把所有空点的棋型值填完,我们很容易地得出黑棋水平方向上点(4,4)的价值,由一个冲1(我把有界的棋称为冲)和活2(两边无界的
棋称为活)组成的。对于而白棋在垂直方向上点(4,4)的价值是一个活1,而在/方向也是活1所以,只要我们把该点的对于黑棋和白棋的价值算出
来,然后我们就取棋盘上各个空点的这两个值的和的最大一点作为下棋的点。然而,对各种棋型应该取什么值呢?我们可以先作如下假设:
Fn表示先手n个棋子的活棋型,如:F4表示先手活四
Fn'表示先手n个棋子的冲棋型,如:F4'表示先手冲四
Ln表示后手n个棋子的活棋型,如:L3表示后手活三
Ln'表示后手n个棋子的冲棋型,如:L3'表示后手冲三
.
.
.
根据在一行中的棋型分析,得到如下关系:
L1'<=F1'<L2'<=F2'<=L1<F1<L2<F2<L3'<=F3'<L4'<F4'=F4
从这个关系包含了进攻和防守的关系(当然,这个关系是由我定的,你可以自己定义这些关系)。对这些关系再进一步细化,如在一个可下
棋的点,其四个方向上都有活三,也比不上一个冲四,所以我们可以又得到4*F3<L4'这个关系,同样,我们还可以得到其它的关系,如:4*F2<L3、4*L3<F3...,这些的关系由于你的定法和我的定法制可能不一样,这样计算机的AI也就不一样,最后我们把分值最小的L1'值定为1,则我们就得
到了下面各种棋型的分值,由C语言表示为:
F[2][5]={{0,2,5,50,16000},{0,10,30,750,16000}};
L[2][5]={{0,1,5,50,3750},{0,10,30,150,4000}};
F数组表示先手,第一个下标为0时表示冲型,第二个下标表示棋子数,则F2'对应F[0][2]L数组表示后手,第一个下标为0时表示冲型,第二
个下标表示棋子数,则L2对应F[1][2]Ok,棋型的分值关系确定好了以后,我们把每一个可下点的四个方向的棋型值相加(包括先手和后手的分
值),最后选择一个最大值,并把这一点作为计算机要下的点就OK了:)。
黑石五子棋
五子棋大师2
二:要说更好玩的,我个人觉得是网络版本的!原因有二,如下:
1.可以积累分数,激励你更加努力下棋;
2.可以和网友一起切磋,互相学习。
网络版好玩一些,说到底下五子棋是与人斗,网络版可以和不同的人过招,当然有意思。单机版有一定得定式的,下的多了就不好玩了。锻炼智慧不看对手看自己,你每下一步是靠感觉还是有预谋的,如果有预谋的又想了几步以后的情况
针保博普: 五子棋棋力最高的是黑石(blackstone),就是有禁手,比如先手不许双3等等.自由规则的(随便下)有《五子棋大师2》,国内的fiver6也不错,随便搜索下就可以找到.但是在线连机功能据我所知,这些都没有.你可以练好以后去联众或者QQ游戏啊.
滦南县13861577502: 求五子棋单机版下载?
针保博普: 单机版欢乐五子棋2006绿色版免费下载单机版休闲小游戏全集8.2绿色版 ·单机游戏大鱼吃小鱼游戏下载 ... 单机版欢乐五子棋2006绿色版软件介绍欢乐五子棋V2006 Build 0205 绿色版一款非常有趣的五子棋游戏, ... www.srui.cn/soft/3297.htm - 网页快照 - 类似网页
滦南县13861577502: 哪里有下五子棋单机版的?
针保博普: 有这个 http://www.jjie.net/down/download.asp?id=401&downid=1 还有这个 http://www.jjie.net/down/list.asp?id=401 不错的哦`.`
滦南县13861577502: 哪里可以下载五子棋单机版?要无毒的哦 - ?
针保博普: 五子棋游戏单机版 软件等级:★★★★ 更新时间:2007-4-24 11:10:24 软件类别:国产软件 软件大小:1.8 Mb 软件语言:简体中文 相关连接:Home Page 软件授权:免费版 应用平台:Win9x/NT/2000/XP/2003 插件情况:
滦南县13861577502: 有没有一种单机版的手机五子棋游戏有存贮卡就能下来玩的??
针保博普: 精灵五子棋: http://online.hxgame.net/showonline.asp?id=959 奥维五子棋: http://online.hxgame.net/showonline.asp?id=3929 皇冠五子棋: http://online.hxgame.net/showonline.asp?id=4273 猴子五子棋: http://online.hxgame.net/showonline.asp?id=4723 下载线路电信,网通,迅雷都有
滦南县13861577502: 能在网上下载那种单击游戏五子棋么? - ?
针保博普: 能,去华军或者天空软件下载站点,上面都有分类,点进去看看,或者直接用软件搜索查找, http://search.newhua.com/search.asp?Keyword=五子棋 这是我帮你找的,不知道你要的是不是这个样子的呵呵,希望采纳,多谢
滦南县13861577502: 五子棋单机版?
针保博普: 如果要棋盘10X10的,在 http://download.csdn.net/source/1609240 下载. 其他的话可以在下面这网址下载. http://www.jjie.net/category-24.html 希望楼主能采纳.
滦南县13861577502: 五子棋单机版下载地址?
针保博普: http://119.147.41.16/down?cid=DEA1EFBFA95A2FD7D056E2D862179FC02C485C7D&t=1&fmt=&usrinput=五子棋下载&dt=2002000&ps=0_0&rt=0kbs&plt=0&spd=9
滦南县13861577502: 谁有单机版的五子棋下载地址?
针保博普:http://www.batong.net/supesite/html/60/viewthread_tid_1045460.html 五子棋单机游戏下载
滦南县13861577502: 谁知道五子棋单机版的来!?
针保博普: 五子棋单机版,如果要有深度的软件.请点击下面这个网站.里面的软件都很不错,特别是 1.黑石 2.FIVER6.8.1 3.五子棋大师2http://www.jjie.net/category-24.html 但是黑石要安装很麻烦.所以建议下2,3. 如果楼主想要比较弱的,可以轻松虐待的单机版,直接上百度查查应该都很多. 希望楼主能采纳.