C语言学习(10)-- 三子棋实例讲解

本文介绍了如何设计并实现一个三子棋游戏。从创建棋盘到玩家和电脑的移动,再到判断输赢的逻辑,详细阐述了游戏的核心算法。玩家输入合法位置落子,电脑则使用rand()函数随机出棋。胜负判断基于行、列和对角线是否有连续三个相同棋子。
摘要由CSDN通过智能技术生成

前言

情景功能描述:三子棋也称井字棋。玩家和电脑双方各持不同棋子,进行模拟下棋。一方中如果实现三子共线(一行连续相同、一列连续相同、对角线连续相同)即可获胜。

实例过程分析:

  1. 首先需要一个棋盘,要打印出来。
  2. 玩家出棋、电脑出棋——循环
  3. 判断输赢

第一步设计棋盘。设计完成后,如何使用程序进行编写呢?如右下图所示,把棋盘格可以分为三行,其中每一行又可以分为数据行①和分割线行②。

对此我们进行分别编写,首先对于数据行来说,又可以被分成三列。每一列都由数据 %c 以及分割线 | 组成。这样根据循环就可以大致写出棋盘。而还需要结合判断语句对棋盘进行进一步的细节调整,最终生成DispalyBoard( )函数。

出棋环节:玩家出棋,首先要判断输入位置的合法性,其次判断输入位置上是否为空,如果两者都满足,就落子即可。电脑随机出棋,需要用到rand()函数,根据之前的学习,知道要配合srand((unsigned int)time(NULL))一起使用,不要忘记头文件。最需要注意的就是随机数字的范围。最终生成PlayerMove()和ComputerMove()两个函数。

判断输赢:可以预料到的结果是——玩家胜出、电脑胜出、平局。前两种情况很有可能是棋盘格没有被占满,平局一定是棋盘格被占满,还没有分出胜负的情况。所以需要先判断棋盘格是否被占满。随后根据行、列、两条对角线是否有三个连续相同的标志,从而判断结果。

最后,程序结合上一篇文章。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贪睡脑子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值