五子棋人机对战_10.带人机对战的五子棋程序
今天我们带来一个带人机对战功能的五子棋程序。程序基于前面文章中的框架搭建,新增人机对战的策略。程序基于规则进行决策,不考虑禁手,玩家执黑子先行。棋盘规模采用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.带人机对战的五子棋程序相关推荐
- Java用最少代码实现五子棋-玩家对战模式-人机对战模式-电脑策略对战
Java用最少代码实现五子棋-玩家对战模式-人机对战模式-电脑策略对战 玩家对战模式 背景说明 代码实现 人机对战模式 背景说明 完整代码实现 电脑根据优势分数对战 背景说明 完整代码实现 小结 玩家 ...
- 实现五子棋的简单人人对战和人机对战的万字详细教程
创建一个窗体来承载五子棋 如何创建一个窗体,以及如何在窗体上添加必要的按钮组件等操作,可以查看我的第一篇文章,里面有详细的讲解,这里就不在重新累述.具体的代码如下: public class Draw ...
- 五子棋程序设计(C语言、人机对战、禁手)
五子棋程序设计(C语言.人机对战.禁手) 一.程序需求分析 1.1五子棋简介 五子棋是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏. 五子棋有两种玩法.玩法一:双方分别使用黑白两色的棋 ...
- Python五子棋小游戏源代码,支持人机对战和局域网对战两模式
Python五子棋小游戏源代码,支持人机对战和局域网对战两模式,程序运行截图: 核心程序代码 WuZi.py ''' Function:五子棋小游戏-支持人机和局域网对战 Author:Charles ...
- 【C语言实现五子棋、三子棋人机对战,包含电脑人工智能对战(可攻可守)】(非标题党)
C语言--五子棋.井字棋人机对"战" 针对C语言学习过程中的五子棋.三子棋实现记录 五子棋人机对战 C语言--五子棋.井字棋人机对"战" 实际效果 一.头文件( ...
- C++ Qt实现经典五子棋小游戏(双人游戏,人机大战)
原创,转载请注明出处. 这里用Qt实现了五子棋,可进行双人游戏,人机对战,悔棋等操作,是C++,Qt的必备练手项目,界面设置如下图: 添加三个类,分别为游戏总控制类gamewidget .界面类boa ...
- 大爷,快来玩呀!带禁手规则的五子棋实践强化学习理论
下载地址: https://github.com/wangjia184/renju 大爷,快来玩呀!带禁手规则的五子棋游戏,强化学习 1.基本结构 2.性能 3.棋局多样性 4.训练 最近迷上了强化学 ...
- 鸿蒙dnf是真的么,DNF:大硕才是“真策划”,SPK带着谋略战礼包来了,惊不惊喜?
阿拉德谋略战第二季开放初期,大硕就向玩家表示,后期会出氪金道具,否则玩家无法拿齐奖励.现在得到了完美的验证!史派克是策划吗?大硕被玩家称作是"姚策划",可以说是DNF的幕后策划吧. ...
- hive妙战天下下周_妙战天下最新版
妙战天下(Wonder Tactics)最新版是由Com2uS开发的一款十分好玩的策略战争游戏,游戏拥有唯美华丽的画风,玩法丰富有趣,操作简单易上手,还有专属英雄养成系统,带玩家感受到不一样的国战体验 ...
最新文章
- .net 去除特殊字符
- 初学api测试_面向初学者的API-在此免费视频课程中学习如何使用API
- php 枚举类型比较,枚举的比较-python编程入门系列图文教程-PHP中文网教程
- if else 工厂模式_没有IF-ELSE的工厂
- 【ASP.NET Web API教程】5.4 ASP.NET Web API批处理器
- SpringMVC整合Quartz实现定时任务和Spring自带Task定时任务
- imx6 linux调试平台,iMX6Q调试篇-Linux程序开发使用gdb调试
- 常用符号计算机输入法,九种常用输入法特殊符号功能揭密输入法 -电脑资料
- kindle touch救砖用,我只是搬运工,2020年4月6日
- ceph peering机制-状态机
- CS5213芯片|HDMI to VGA转换头芯片资料分享
- 剑指offe JZ18 删除链表的节点
- 短视频搬运规避检测技术-天问一号
- Kafka集群的安全认证机构 SASL_SCRAM
- Storm学习一集群安装
- java -jar xx.jar是如何运行的
- JSP中的taglib
- android kotlin 高阶函数,(三)Kotlin 高阶函数
- 服务器入侵之找出隐藏字符的原理
- Jbd7:Spark