C++
文章平均质量分 78
BrokenGeeker
无论怎么走,走不出数字世界;无论怎么逃,逃不出一零乾坤。
展开
-
基于博弈树的开源五子棋AI教程[7 多线程搜索]
多线程加快搜索速度这一认知是经受住实践考验的。博弈树搜索的并行搜索方式有很多种,例如叶子并行,根并行,树分裂等算法。笔者给出一种实现起来比较简单的根并行算法。在是实现时需要注意两点,第一,怎么安全的剪枝;第二,如何进行线程间的通信。对于AB剪枝有三点发现可以指导我们设计多线程的并行算法:原创 2024-01-14 08:31:20 · 692 阅读 · 0 评论 -
基于博弈树的开源五子棋AI教程[6 置换表]
置换表是记忆化搜索技术的应用,置换表保存了某一盘面的搜索结果。当博弈树搜索遇到相同的局面时可以调用这些信息来减少重复搜索。那么如何设计一个置换表的节点就显得比较重要,本文在经典的置换表节点增加一个显示当前玩家的字段,这一字段补足了zobrist hash单向函数的缺点,如果节点需要使用更浅深度的信息,可以通过迭代的方式来求解,丰富了置换表的信息。原创 2024-01-14 08:30:13 · 772 阅读 · 0 评论 -
基于博弈树的开源五子棋AI教程[3 极大极小搜索]
极大极小搜索是博弈树搜索中最常用的算法,广泛应用于各类零和游戏中,例如象棋,围棋等棋类游戏。算法思想也是合乎人类的思考逻辑的:博弈双方轮流决策,并且认为双方都是理性的,都希望自己的利益最大化或者对手利益最小化。原创 2024-01-12 23:13:48 · 1957 阅读 · 0 评论 -
基于博弈树的开源五子棋AI教程[5 启发式搜索]
启发式搜索的姿势千奇百怪,本文只讨论一下几种置换表启发,历史表启发,杀手表启发。原创 2023-12-22 12:36:04 · 1287 阅读 · 0 评论 -
基于博弈树的开源五子棋AI教程[4 静态棋盘评估]
静态棋盘的评估是棋力的一个很重要的体现,一个优秀的基于博弈树搜索的AI往往有上千行工作量,本文没有做深入讨论,仅仅写了个引子用来抛砖引玉。评估一般从两个角度入手,一个是子力,另一个是局势。原创 2023-12-22 11:51:06 · 1405 阅读 · 0 评论 -
基于博弈树的开源五子棋AI教程及源码分享[2 Zobrist散列]
Zobrist Hashing由阿尔伯特·Zobrist于1970年提出,是一种用于棋类游戏的哈希技术。它通过为棋盘上的每一个可能状态分配一个唯一的哈希值,来有效地识别和储存不同的游戏状态。原创 2023-12-20 23:23:30 · 781 阅读 · 0 评论 -
基于博弈树的开源五子棋AI教程[1 位棋盘]
一般而言一组二维数组就可以充分的表示棋盘信息,但是在后续棋盘静态评估的需求中发现,本文需要对棋盘的四个方向上评估出基础棋型。因而从不同角度冗余的描述棋盘信息就是必要的。原创 2023-12-20 22:51:51 · 1506 阅读 · 0 评论 -
基于博弈树的开源五子棋AI教程及源码分享[开篇]
五子棋是一个老少咸宜,复杂度相对较低游戏,本篇教程便是使用传统的博弈树的知识和一些棋类AI的经典算法来实现一个有一定算力AI。AI可以使用QT编写,在6核的家用笔记本在分支因子(搜索窗口的宽度)为10的情况下,6层深度可以在1s内搜索完成,8层深度可以在4s内完成。这里优先给出一个其中使用到的关键技术,原创 2023-12-20 22:10:15 · 1585 阅读 · 2 评论 -
二叉树的基本操作与树形目录形式打印(C++ 模板类)
本例实现了基本二叉树的先序创建,前序遍历,层次遍历,以及目录结构式的打印。这篇文章竟然沉了,不是很甘心,上回说到目录形式打印,这次再丰富一下(挣扎下)。博主从网上观察了一下,虽然有横向打印树的,但总不是很完美,这次更新着眼点就在这边。原创 2018-09-08 08:55:17 · 2494 阅读 · 0 评论 -
八数码问题-A*(AStar)算法实现
八数码问题可以说得上是搜索问题中比较经典的,可以有很多种搜索策略,比如说有最常见的BFS,DFS,此外,A*也是一个比较普遍的搜索算法。在八数码问题A*往往可以得到最优的求解路径。原创 2018-03-28 19:18:13 · 55341 阅读 · 27 评论 -
c/c++ 环境(MinGW + vs code )搭建与使用指南
前言环境搭建MinGW下载VS Code配置说明对比与心得前言\qquad这次又是一次工具分享篇,上次写了一篇GCC/G++ + sublime text3 + powershell在windows使用指南的分享,这次又带了一个新的生产工具——vs code(此次仅针对windows,其实linux配置也是相近的,而且会更简单),至于vs code,sub...原创 2018-03-25 14:32:08 · 17812 阅读 · 1 评论 -
基于UDP的dos多人聊天室
前言聊天室优点与可拓展功能优点:可拓展功能实测登陆界面注册聊天群聊私聊退出(左边为sender退出,右边为receiver退出)编译环境后记下载入口前言\qquad这学期正好有门TCP/IP 编程,乘机写了个dos下的聊天室,去年这个时候用Java写了个带GUI的多人聊天室,不过整体来看这次在对网络编程有了一定的理论基础后,这次用c+...原创 2018-03-27 12:45:12 · 3374 阅读 · 0 评论