使用python写的基于两层博弈树的五子棋AI。
加入了阿尔法贝塔剪枝。
python版本:3+,应该可以在命令行里直接跑。
电脑执黑,玩家执白。
无禁手。
因为只有两层博弈树,请大家不要嫌他菜哈哈哈,仅供大家学习参考。
由于写得比较匆忙,代码写的十分丑陋,望海涵!
2024/6/10 19:57:55 13KB 五子棋AI
1
家养智能下五子棋(基于博弈树极大极小值alpha-beta剪枝搜查算法),代码剖析链接拜望网址:https://blog.csdn.net/m0_38106923/article/details/93347117
1
家养智能博弈树的开辟式搜查α-β剪枝
2023/3/28 5:44:43 60KB α-β剪枝 人工智能
1
下棋属于一种博弈游戏,博弈过程可以用树(博弈树)来表示。
假设游戏由两个人(A和B)玩,开始由某个人从根结点开始走,两个人轮番走棋,每次只能走一步,下一步棋只能选择当前结点的孩子结点,谁先走到叶子结点为胜。
例如,对于下图所示的博弈树,若A先走,可以选f,B若选h,则A选j胜。
编写一程序,让计算机和人下棋。
当计算机走下一步时,可以根据以下情况决定下一步:(1)若存在可以确保取胜的一个孩子结点,则选择该结点作为下一步;
(2)若存在多个可以确保取胜的孩子结点,则选择其中高度最小的结点作为下一步(若有多个选择,则选最左边的结点);
(3)若不存在可以确保取胜的一个孩子结点,则选择高度最大的孩子结点作为下一步(若有多个选择,则选最左边的结点);
例:(下面的黑体为输入)(a,(b,(x)),(c,(d),(e,(g),(h)),(f)))abxcdeghfWhoplayfirst(0:computer;1:player)?1player:ccomputer:dSorry,youlost.Continue(y/n)?yWhoplayfirst(0:computer;1:player)?1player:xillegalmove.player:bcomputer:xSorry,youlost.Continue(y/n)?yWhoplayfirst(0:computer;1:player)?0computer:cplayer:fCongratulate,youwin.Continue(y/n)?n
2022/9/2 22:54:44 5KB 博弈树 数据结构 C语言
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡