C语言三子棋基础逻辑

1.初始化棋盘

打印3x3的棋盘:

2.玩家下棋

while循环 输入二维数组坐标,判断是否等于空格,等于空格则赋值为棋子“#”,break跳出循环,不等于空格说明此坐标已存在棋子,则需else提示重新输入,

3.电脑下棋

电脑下棋随机数可以用rand函数,随机输入两个坐标范围内的数字,判断是否等于空格,

srand((ungrateful int )time(NULL))

rand =srand()%3

产生一个随机的数,模3,得到的随机数范围0-2;

time函数的头文件#include<time.h>

rand和srand的头文件#include<stdlib.h>

4.判断输赢

思路:

横向判断:

每行有没有连续的三个相同的棋子,循环if判断,如果有则临时变量judge加1,若judge为3,则棋子代表的一方胜利

竖向判断:

每列有没有相同的连续三个棋子,循环if判断,如果有则临时变量judge加1,若judge为3,则棋子代表的一方胜利(套循环的时候可以把列放在外循环,行放在内循环,这样就很简单的实现竖向判断)

/右斜判断:

如图,我们不难发现,特定的每一行和每一列相加,会有一个斜着连续相同的值,所以我们可以用到一个双目操作符‘&&’

 if(行+列 == 2)&& 数组[行][列] == “#”

else if

(行+列 == 2)&& 数组[行][列] == “ * ”

如果出现一个棋子则judge+1,judge等于3,游戏结束,棋子方胜利

\左斜判断:

通过上图我们不难发现,0 == 0,1==1,2==2的时候刚好连成一条直线,所以我们就有了思路

 if(行 == 列 )&& 数组[行][列] == “#”

else if

(行 == 列)&& 数组[行][列] == “ * ”

如果出现一个棋子则judge+1,judge等于3,游戏结束,棋子方胜利

(新人创作,仅供参考)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值