今天我们带来一个带人机对战功能的五子棋程序。程序基于前面文章中的框架搭建,新增人机对战的策略。程序基于规则进行决策,不考虑禁手,玩家执黑子先行。棋盘规模采用15乘15,棋盘规模容易扩展,程序棋力中等,可以用来放松陪玩。

程序每一步都会搜索棋盘所有可以落子的位置,然后识别出最值得落子的位置,实现进攻和围堵。目前评估值为人为设置,所以程序棋力只能与编者相当,勉强算作中等棋力,后期若引入遗传算法或者强化学习,通过养蛊之法,可以养出更高棋力的程序。部分代码如下:

```

BOARD = []for i in range(UNIT, UNIT * ROW_NODE_NUM + UNIT, UNIT):for j in range(UNIT, UNIT * ROW_NODE_NUM + UNIT, UNIT):        BOARD.append((j, i))print(BOARD)class myFrame(wx.Frame):def __init__(self):self.unit = UNITself.pointNum = ROW_NODE_NUM#每行落棋点数        self.pieceNum=0        self.bkCol=(220, 210, 0)self.wht=(255,255,255)self.blk=(0,0,0)self.actColor=self.blk# self.piecePos=[(self.unit/2,self.unit/2)]        # self.piecePosCols = [(self.unit/2,self.unit/2,self.blk)]        self.piecePos =[]self.piecePosCols =[]# 元组列表记录落棋位置和落棋颜色        super().__init__\            (parent=None,pos=[800,100],size=[self.unit*self.pointNum                   +self.unit+20,self.unit*self.pointNum                   +self.unit+30+20],title="商贾三国")self.SetIcon(wx.Icon("WeatherBundle.ico"))

self.panel = wx.Panel(self)

###

```

总体代码比较多,

限于篇幅,获取完整源码可以移步公众号:

哈哈哈利

回复

五子棋人机对战

可以获取决策部分代码。

总体代码比较多,限于篇幅,获取完整源码可以移步公众号:哈哈哈利,回复五子棋人机对战,可以获取决策部分代码

五子棋程序已经打包为exe,可以脱离Python环境,程序获取路径如下:链接:https://pan.baidu.com/s/19U9AZa0Msoyt6xs-OpuDNA

提取码:q940

感兴趣可以用来放松娱乐。

五子棋人机对战_10.带人机对战的五子棋程序相关推荐

  1. Java用最少代码实现五子棋-玩家对战模式-人机对战模式-电脑策略对战

    Java用最少代码实现五子棋-玩家对战模式-人机对战模式-电脑策略对战 玩家对战模式 背景说明 代码实现 人机对战模式 背景说明 完整代码实现 电脑根据优势分数对战 背景说明 完整代码实现 小结 玩家 ...

  2. 实现五子棋的简单人人对战和人机对战的万字详细教程

    创建一个窗体来承载五子棋 如何创建一个窗体,以及如何在窗体上添加必要的按钮组件等操作,可以查看我的第一篇文章,里面有详细的讲解,这里就不在重新累述.具体的代码如下: public class Draw ...

  3. 五子棋程序设计(C语言、人机对战、禁手)

    五子棋程序设计(C语言.人机对战.禁手) 一.程序需求分析 1.1五子棋简介 五子棋是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏. 五子棋有两种玩法.玩法一:双方分别使用黑白两色的棋 ...

  4. Python五子棋小游戏源代码,支持人机对战和局域网对战两模式

    Python五子棋小游戏源代码,支持人机对战和局域网对战两模式,程序运行截图: 核心程序代码 WuZi.py ''' Function:五子棋小游戏-支持人机和局域网对战 Author:Charles ...

  5. 【C语言实现五子棋、三子棋人机对战,包含电脑人工智能对战(可攻可守)】(非标题党)

    C语言--五子棋.井字棋人机对"战" 针对C语言学习过程中的五子棋.三子棋实现记录 五子棋人机对战 C语言--五子棋.井字棋人机对"战" 实际效果 一.头文件( ...

  6. C++ Qt实现经典五子棋小游戏(双人游戏,人机大战)

    原创,转载请注明出处. 这里用Qt实现了五子棋,可进行双人游戏,人机对战,悔棋等操作,是C++,Qt的必备练手项目,界面设置如下图: 添加三个类,分别为游戏总控制类gamewidget .界面类boa ...

  7. 大爷,快来玩呀!带禁手规则的五子棋实践强化学习理论

    下载地址: https://github.com/wangjia184/renju 大爷,快来玩呀!带禁手规则的五子棋游戏,强化学习 1.基本结构 2.性能 3.棋局多样性 4.训练 最近迷上了强化学 ...

  8. 鸿蒙dnf是真的么,DNF:大硕才是“真策划”,SPK带着谋略战礼包来了,惊不惊喜?

    阿拉德谋略战第二季开放初期,大硕就向玩家表示,后期会出氪金道具,否则玩家无法拿齐奖励.现在得到了完美的验证!史派克是策划吗?大硕被玩家称作是"姚策划",可以说是DNF的幕后策划吧. ...

  9. hive妙战天下下周_妙战天下最新版

    妙战天下(Wonder Tactics)最新版是由Com2uS开发的一款十分好玩的策略战争游戏,游戏拥有唯美华丽的画风,玩法丰富有趣,操作简单易上手,还有专属英雄养成系统,带玩家感受到不一样的国战体验 ...

最新文章

  1. .net 去除特殊字符
  2. 初学api测试_面向初学者的API-在此免费视频课程中学习如何使用API
  3. php 枚举类型比较,枚举的比较-python编程入门系列图文教程-PHP中文网教程
  4. if else 工厂模式_没有IF-ELSE的工厂
  5. 【ASP.NET Web API教程】5.4 ASP.NET Web API批处理器
  6. SpringMVC整合Quartz实现定时任务和Spring自带Task定时任务
  7. imx6 linux调试平台,iMX6Q调试篇-Linux程序开发使用gdb调试
  8. 常用符号计算机输入法,九种常用输入法特殊符号功能揭密输入法 -电脑资料
  9. kindle touch救砖用,我只是搬运工,2020年4月6日
  10. ceph peering机制-状态机
  11. CS5213芯片|HDMI to VGA转换头芯片资料分享
  12. 剑指offe JZ18 删除链表的节点
  13. 短视频搬运规避检测技术-天问一号
  14. Kafka集群的安全认证机构 SASL_SCRAM
  15. Storm学习一集群安装
  16. java -jar xx.jar是如何运行的
  17. JSP中的taglib
  18. android kotlin 高阶函数,(三)Kotlin 高阶函数
  19. 服务器入侵之找出隐藏字符的原理
  20. Jbd7:Spark

热门文章

  1. 加快网站速度的最佳做法_(4)避免使用css表达式
  2. 用QFileDialog::getOpenFileUrls打开本地文件:指定路径
  3. 区块链共识问题都有什么?
  4. 关于IOS屏幕的旋转问题
  5. HTTP与HTTPS简介
  6. 如何修改一个类的私有成员?
  7. 再探.NET的PE文件结构(安全篇)
  8. Effective C# Item17:尽量减少装箱和拆箱
  9. Spring 应用开发框架 Spring Boot 2.3.0 最新版本发布
  10. C语言变量声明加冒号的用法