VC++ 五子棋

本文介绍了一个使用VC++开发的五子棋人机对战程序,重点讲解了回合制设计和AI策略。AI策略包括获胜表概念、建立获胜表以及计算棋格获胜分数。提供了一个核心代码段,并鼓励读者查看完整代码并提出改进建议。
摘要由CSDN通过智能技术生成

这里向大家介绍一下一个经典的小程序——五子棋的写法。我写的这个程序是人机对战的。

声明:ai部分参考了《VC++游戏编程基础》一书,下面所用的图片是从此书中截图的。

程序的大体框架如下:1.绘制棋盘,2.人机对战(回合制,ai)。

开发环境:Microsoft Visual C++ 6.0

功能说明:ESC退出,F1重新开局。


有几个关键的地方需要说明一下:

1.回合制:

我采用了以下这个枚举类型,

enum Role{player, computer, none};
Role role, winner;
枚举了当前的玩家,以及获胜者。这样的话,在判断轮到谁下棋,或是谁获胜的时候会比较方便。


2.AI的设计

也就是电脑的下棋策略的设计。


(1)获胜表的概念

这里采用的是一个获胜表的概念。所谓获胜表就是对当前棋盘,所有可能获胜的组合。在一个10*10的棋盘上,获胜表一共有192种组合。

下图展示的是水平方向的获胜组合,共有10 * 6 = 60种。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值