封面取自 OI Wiki Alpha–Beta 剪枝
大概花了一下午,C++ 期末作业做了个简单的 AI 五子棋,使用 minimax 算法和 alpha-beta 剪枝。
记录一下如何实现:
需要有评估函数,评估下一步棋的好坏。
取棋盘上所有的连续的五子组合,除去五个空的情况,然后从黑白两方,分别通过连成了哪些模式,累加双方得分,最后用黑方得分减去白方得分,作为当前棋盘的评估值。
选择落子位置时,只考虑当前棋盘上有棋子的格子周围一定范围内的空格,避免搜索过多无意义的位置。
实现 minimax 算法,递归地模拟双方落子,直到达到设定的搜索深度。
双方都假定对方会在己方落子后,会选
2025-12-141.4k 字6 分钟
Python Magic Method
选择了哈利波特里的这张图,但可惜没找到带蛇的 haha。
没怎么用过 Python 的魔法方法,只用过几个 __init__ 和上下文管理器的几个,今天记录一下。
magic method
An informal synonym for special method.
一个非正式的同义词,指的是特殊方法。
官方的名称是 special method.
special method
A method that is called implicitly by Python to execute a certain operation on a type, such as addition.