•Alpha-Beta剪枝(Alpha-Betapruning)对于一般的最大最小搜索,即使每一步只有很少的下法,搜索的位置也会增长非常快;
在大多数的中局棋形中,每步平均有十个位置可以下棋,于是假设搜索九步(程序术语称为搜索深度为九),就要搜索十亿个位置(十的九次方),极大地限制了电脑的棋力。
于是采用了一个方法,叫“alpha-beta剪枝”,它大为减少了检测的数目,提高电脑搜索的速度。
各种各样的这种算法用于所有的强力Othello程序。
(同样用于其他棋类游戏,如国际象棋和跳棋)。
为了搜索九步,一个好的程序只用搜索十万到一百万个位置,而不是没用前的十亿次。
•估值这是一个程序中最重要的部分,如果这个模块太弱,则就算算法再好也没有用。
我将要叙述三种不同的估值函数范例。
我相信,大多数的Othello程序都可以归结于此。
棋格表:这种算法的意思是,不同的棋格有不同的值,角的值大而角旁边的格子值要小。
忽视对称的话,棋盘上有10个不同的位置,每个格子根据三种可能性赋值:黑棋、白棋和空。
更有经验的逼近是在游戏的不同阶段对格子赋予不同的值。
例如,角在开局阶段和中局开始阶段比终局阶段更重要。
采用这种算法的程序总是很弱(我这样认为),但另一方面,它很容易实现,于是许多程序开始采用这种逼近。
基于举动力的估值:这种更久远的接近有很强的全局观,而不像棋格表那样局部化。
观察表明,许多人类玩者努力获得最大的举动力(可下棋的数目)和潜在举动力(临近对手棋子的空格,见技巧篇)。
如果代码有效率的话,可以很快发现,它们提高棋力很多。
基于模版的估值:正如上面提及的,许多中等力量的程序经常合并一些边角判断的知识,最大举动力和潜在举动力是全局特性,但是他们可以被切割成局部配置,再加在一起。
棋子最少化也是如此。
这导致了以下的概括:在估值函数中仅用局部配置(模版),这通常用单独计算每一行、一列、斜边和角落判断,再加在一起来实现。
估值合并:一般程序的估值基于许多的参数,如举动力、潜在举动力、余裕手、边角判断、稳定子。
但是怎么样将他们合并起来得到一个估值呢?一般采用线性合并。
设a1,a2,a3,a4为参数,则估值s:=n1*a1+n2*a2+n3*a3+n4*a4。
其中n1,n2,n3,n4为常数,术语叫“权重”(weight),它决定了参数的重要性,它们取决于统计值。
2017/8/17 10:01:12 884KB 黑白棋 算法 论文
1
基于matlab灰色模型GM(1,1)预测数据,通过对已知数据进行处理,预测出新的数据,然后对比其结果,求出误差,已经对结果进行后验差检验,从而来判断预测精确性。
2017/8/16 9:56:08 1KB GM(1 1)
1
小虫象棋是采用人工智能算法的新一代高智能中国象棋对弈引擎,融合了高超的象棋情势判断和攻杀技巧,棋艺达到特级大师水平
2016/2/7 23:49:57 676KB 象棋 引擎
1
实验要求描述:1、给定场景,给定WSN的节点数目,节点随机分布,能按照LEACH的引见,实现(每一轮)对WSN的分簇。
请记录前k轮(eg.k=10)/绘制第k轮时,网络的分簇情况,即每个节点的角色(簇头or簇成员)及其关系,如是簇成员,标记其所属的簇头2.Note要求:    节点数目不宜过小;
每轮只完成分簇,不考虑通信过程;
每轮可以以定时器确定,也可以以完成当轮分簇为准;
簇成员在寻找簇头时,以距离作为接收信号强弱的判断依据;
当选为簇头的节点将,以后几轮的分簇中将,不再成为簇头,这个约束条件,在仿真中应能体现。
2020/1/22 13:03:28 6KB WSN
1
5.井字游戏(满分50分)版本1:满分20分井字游戏是一种在3*3格子上进行的连珠游戏,和五子棋比较类似。
由分别代表O和X的两个游戏者轮番在格子里留下标记(一般来说先手者为X)。
最先在任意一条直线上(水平、垂直或者对角线)成功连接三个标记的一方获胜。
当所有格子都被填满,双方都未获胜时,为平局。
提示两个用户轮番输入X和O。
当一个标记设置后,程序在控制台重新显示,并判断游戏状态(赢家、平局、继续)。
控制台程序运行示例:版本2:满分10分创建自定义面板Cell类用来显示X、O或者不显示。
当绘制面板时,随机决定显示内容。
提示:使用Math.random()方法产生整数0、1或者2,对应于显示X、O或者不显示。
创建一个框架包含9个自定义面板,产生井字游戏界面。
运行示例:版本3:满分20分创建可以用户交互的井字游戏。
修改(2)中Cell类:初始时,所有格子为空;
第一个玩家使用X标记,第二个玩家使用O标记。
当一个用户在格子上点击鼠标时,如果该格子为空,就使用X或O填充;
如果格子已经填充,则忽略用户操作。
主程序面板TicTacToe类包括9个Cell对象,可以创建对象数组Cell[3][3]存储;
一个Button用于重新开始;
一个标签用于描述当前进行的玩家、赢家或者平局,运行示例:
2017/6/12 1:18:39 5KB 井字游戏 xhay cqut 课程设计
1
基于51单片机的计算器程序加仿真,可以连续计算,混合运算没有bug可以判断加减乘除的运算顺序
2021/5/17 21:31:51 160KB 计算器 连续计算 混合运算 51单片机
1
一个五子棋游戏的MFC完成(已判禁手,可以人人对下,人机对下,保存棋盘,恢复棋谱)其中AI采用加权判断方法,棋盘自动保存成txt文件。
2021/4/18 12:12:50 16KB 五子棋 MFC 人机对战 禁手
1
小米华为OPPO/VIVO手机刘海屏适配判断能否有刘海屏,根据不同的上述4类机型,进行适配。
代码依据于各家的开发适配文档,未来可能有更新。
2019/11/1 2:53:22 6KB 刘海屏 适配
1
在线IOS免签封包分发平台一键IOS免签支持在线封装app分发源码所有功能可进行二次开发,如有需要可联系客服进行详细沟通~主要功能:1、一键IOS免签封装;
2、免签IOS,自动生成下载二维码;
3、免签生成的IOS可与APK合并二码合一3、支持三方免签支付码支付、支持七牛云存储;
PS:源码不断升级优化,UI、功能均以演示站点为准,购买前请体验好功能!没有完满的源码,所售源码保证和演示站一样,请看演示再购买。
工作原理:直接调用苹果自带的Safari浏览器打开客户的H5网址的、所以也不会存在客户目标网站域名在微信或QQ打不开的问题以及不会掉签问题。
基于目前主流的分发平台系统二开而来1.本程序支持安卓和苹果分发,上传后自动判断,通过技术手段已经让IOS和安卓用户稳定安装2.智能提取APP应用信息,自动生成IOS应用PLIST,开发信息,方便用户在测试。
3.支持阿里云和七牛云存储绑定。
充值点数比例固定默认比例是一比一百点。
对接码支付版的分发系统,修复官方后门与修复数据库被删除的后门新增许多功能,功能完善.新增会员容量新增实名认证活动促销中与市面上所有版本完全不一样。
纠正iOS应用封装后图标不变的问题(部分应用不显示图标)修正一个安装iOS应用时立即信任的错误…后台充值记录秘钥购买记录暂无,不影响使用。
应用封装(具体效果需用户自行体验)不支持安卓封装新增应用广告功能设备识别功能优化短链接修复一系列优化与修正…
2017/11/16 22:38:43 29.92MB 封装 分发 绿标 免签
1
一本书上的实例,次要针对网络的协议进行分析,然后判断其中的入侵事件
2020/8/14 21:41:31 2.2MB IDS
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡