【c语言五子棋】简单ai算法初步(实际)

本文详细介绍了针对五子棋后手的AI策略,包括评估函数通过活子数和死子数加权,以及对井字棋特殊处理的代码实现。重点展示了如何利用aibeside系列函数来决定最佳落子位置。

系列目录

目录

一、算法描述

二、代码实现


一、算法描述

本文只介绍作为在在五子棋的条件情况下(机器白子后手,防守策略大于进攻,无禁手,不具有随机性)ai的落子思路

1.评估函数

评估函数即对棋盘上每一个子进行活1,活2,活3,活4、死2,死3,死4的加权评估,最后排序落子位置即为分数最大值对应位置

 如图如测试代码所示,每轮会进行棋局判定,分数高的位置即为落子位置。

2.对井字棋的特殊处理

井字棋的机器落子规则相比一般规则有所变化,因其后手故第一个落子尤为关键

 在井字棋中边角子>中间子>其他子。故我们对其简单处理即可确保后手的机器不输棋局。

代码如下:

int ai3()
{
	if (map[0][0] == 0)
	{
		map[0][0] = 2;
		return 1;
	}
	if (map[1][1] == 0)
	{
		map[1][1] = 2;
		return 1;
	}
	return 0;
}

运行结果:

二、代码实现

int aibeside(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值