五子棋 C++

本文介绍了作者通过编写五子棋程序来练习C++基础和提高类设计能力的过程。作者探讨了在贪吃蛇项目中类与类之间的依赖关系,并尝试在五子棋项目中使用组合方式来增强类的独立性。重点讲述了如何判断游戏中四个方向上的五子连珠,通过以棋子为中心,向四个方向遍历检查连续五个棋子的方法。此外,还提及了错误输入的处理和提供了一个从键盘获取特定数据的辅助方法。
摘要由CSDN通过智能技术生成

下午在开源网上看到一个用c语言写的五子棋的程序,于是想着自己也写一个。一来练习练习基础,二是上次写的贪吃蛇中,类和类之间的通讯方式采用的是依赖关系,但总感觉那样做各个类之间的独立性还不是太好,正好可以拿这个试试。其实上次的贪吃蛇中可以见到观察者模式的影子,只不过通常的观察者模式中有多个观察者,而那里只有一个观察者。五子棋的结果表明,类与类之间采取组合的方式更有效(至少在这里是这样的)。

五子棋编程中的重点是如何去判断四个方向上五子是否连成线。这里的思想是,以玩家当前放下的棋子为中心点,依次从四个方向上去判断。对于其中某个方向,比如水平方向,假设玩家放下的棋子的坐标为(x,y),则判断方法为:从点(x,y-4)开始,一直到点(x,y),看这五个点是否连成线,否则判断从点(x,y-3)一直到点(x,y+1)是否连成线,以此类推,如果从(x,y-4)到(x,y+4)这九个点中都没有连续的五个点连成线,说明水平方向上找不到五点成线。其他三个方向也可以按这种方式去判断。当然这里实现了对错误输入的处理。源代码见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值