三子棋详解

首先test.c用于测试游戏逻辑

game.c用于函数的实现

game.h用于函数的声明

首先要设置一个游戏的基础模板

见下图

接下来就是具体的游戏内容:

首先存放数据需要一个3*3的二维数组,又因为存放的时候我们放置的是*#是字符,所以用char即可,然后我们需要初始化棋盘。在这里我们用row col代表行和列

接下来我们需要显示棋盘

这样就可以打印出棋盘。

接下来就是玩家下棋

首先要定义两个变量x和y ,如果坐标大小在范围之内,则可以进行下一步的游戏,否则会打印坐标非法,请重新输入,然后如果我要下棋的位置是空格,那么就打印*退出循环,如果不是空格则显示坐标已被占用,重新输入。这里有一个注意点就是:玩家是不知道程序的下标是从0开始的,所以if的判断语句中数组要写成board[x-1][y-1]

然后玩家下棋之后就是打印棋盘,前面已经演示过就不再赘述了,接下来就是电脑下棋

电脑下棋的时候 坐标要设置随机数 使用rand() 然后再分别模3,余数0到2,因为是电脑,所以判断空格的时候无需x-1,y-1,如果一直找不到空格,那么就一直进入循环,直到找到空格,break停止跳出去为止。·

接下来只需要最后一步就可以大功告成了,就是判断输赢!

有三种情况:玩家赢,电脑赢,平局

首先要在定义一个IsWin函数,赢的结果共有三种,横着3个,竖着3个,对角线左上到右下,对角线右上到左下,如果*代表玩家赢,#代表电脑赢,那么返回值只需要赢的那一方对应下的棋子,这个返回值代表了哪一方赢。

接下来就是要考虑平局问题,平局其实就是所有棋子都满了,但是依然没有决出胜负。因此我们要定义一个isfull函数

但是有时候游戏还必须继续,因此还得设置一下

最后大功告成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值