找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 17393|回复: 26

经典游戏再现 —— 五子棋人机对弈

  [复制链接]
发表于 2016-8-31 23:09:28 | 显示全部楼层 |阅读模式
呼呼,终于在这最后的关键时刻成功上传视频了

通过这次比赛写五子棋令我学到了很多东西

(别说我视频里面的字写得不好哦)

游戏介绍:
        五子棋是一种两人对弈的纯策略型棋类游戏,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成5子连线者获胜。
棋具与围棋通用,起源于中国上古时代的传统黑白棋种之一。主要流行于华人和汉字文化圈的国家以及欧美一些地区,是世界上最古老的棋。
容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。已在各个游戏平台有应用。


编程语言:java
运行平台:EV3 lejos

游戏规则:
黑子先落子
电脑:黑子
玩家:白子
哪方先达成5子相连的获胜

操作规则:

程序运行后按中键开始游戏
上下左右按键控制十字指针移动,按中键落子,落子后需要按某个方向按键才能再次看到十字指针

程序思路:

电脑落子算法:
        整个棋盘使用2维数组表示(0空,1黑.2白),判断每个空位的八个方向连线的棋子数(黑子和白子,1个空位要判断两次),各计算出每个空位的权

值后算出权值最大的空位,若黑子权值大于白子权值则进攻,反之则防守

获胜时棋子闪烁:
        跟随判断获胜函数一起,判断成立时存储当前坐标到数组,若胜利的话闪烁数组内的坐标






注:视频中我故意输给程序的







判断胜利第一部分

判断胜利第一部分

判断胜利第二部分

判断胜利第二部分

界面显示坐标

界面显示坐标

棋子移动

棋子移动

棋盘数组

棋盘数组

显示棋子函数

显示棋子函数

Gobang.zip

11.36 KB, 下载次数: 346

lejos执行文件,把后缀改成jar

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2016-8-31 23:19:14 | 显示全部楼层
值后算出权值最大的空位,若黑子权值大于白子权值则进攻,反之则防守
赞一个!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-8-31 23:20:28 | 显示全部楼层
没学过编程  看不懂  还是赞个
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-9-1 09:23:26 | 显示全部楼层
佩服佩服
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-9-1 09:54:20 | 显示全部楼层
顶,楼主厉害
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-9-1 13:35:36 | 显示全部楼层
吃瓜群众点个赞,不懂代码
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-9-1 14:45:13 | 显示全部楼层
太厉害了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-9-1 16:54:52 | 显示全部楼层
代码都把我看晕了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-9-2 14:54:06 | 显示全部楼层
请问楼主,哪个是执行文件?新手不懂,下载下来不知道怎么用
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2016-9-2 15:27:23 | 显示全部楼层
乐高猩猩 发表于 2016-9-2 14:54
请问楼主,哪个是执行文件?新手不懂,下载下来不知道怎么用

执行文件是最下面的那个zip文件,把后缀改成jar     要用sd卡装lejos系统才可以运行
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-9-2 15:40:52 | 显示全部楼层
韦韦韦 发表于 2016-9-2 15:27
执行文件是最下面的那个zip文件,把后缀改成jar     要用sd卡装lejos系统才可以运行

原来是这样,看来我还用不了了,我还没SD卡。谢谢回复
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2016-9-2 15:43:16 | 显示全部楼层
乐高猩猩 发表于 2016-9-2 15:40
原来是这样,看来我还用不了了,我还没SD卡。谢谢回复

没事
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-9-2 21:44:10 | 显示全部楼层
厉害
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2016-9-3 00:17:11 | 显示全部楼层
高手!请教下,java可以控制其他模块吗?比如电机,传感器一类的
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2016-9-3 09:10:40 | 显示全部楼层
angelguard 发表于 2016-9-3 00:17
高手!请教下,java可以控制其他模块吗?比如电机,传感器一类的

当然可以
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-12-22 10:46 , Processed in 0.117356 second(s), 26 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表