第一个c语言小游戏-三子棋

自学c语言一段时间了,今天跟着视频博主学习了第一个c语言小游戏,虽然思路是跟着博主来的,但是有一些地方自己做了点改动,加上电脑只能随机产生值,所以可能游戏并不是那么智能,后期还需要改善,如果有更好的意见,麻烦评论一下


游戏思路:不像往常的创建单一文件,我们创建三个文件,分别是三子棋游戏.c(游戏主体的运行),三子棋游戏.h(函数的声明,宏定义,数组的声明,电脑头文件的引用),三子棋游戏实现(游戏具体的实现函数);

三子棋游戏本质是对一个3x3的二维数组进行赋值,打印。具体思路实现:先定义一个二维数组【3】【3】;通过赋值一个空格,之后利用for语句,嵌套打印二维数组,每打印一个数,我们在后面打印一个‘|’(每一列最后不需要打印),一列打印完之后我们打印 '---|',最后一列只需要打印 '---'(如果到了最后一行,不需要打印)具体代码实现:

打印好游戏的框架之后,接下来就是玩家和电脑的对弈,其实质就是对数组的赋值;将三子棋看作是3x3的坐标,玩家输入想下的坐标x和y(1~3),对数组【x】【y】赋上‘*’,代码操作如下:

同理电脑也是对数组进行赋值,这里因为要产生随机数,所以我们先使用srand函数,srand((unsigned int)time(NULL)),之后将rand()函数随机产生的值%3赋给x,y;这样就可以让电脑随机下子了,但是由于是随机的,所以不会考虑最佳下子方案,这里需要优化,知道的家人们麻烦告知一下思路,这样电脑下子函数代码如下:

最后一步其实就是判断玩家或者电脑每下一步的的情况,一共四种:玩家赢,电脑赢,平局,游戏继续,对于玩家赢或者电脑赢,其实就三行三列两条对角线值是一样的,此时返回该值,平局就是遍历整个数组,如果有空格,游戏继续,返回c,否则返回q;代码操作如下:

之后用条件语句判断函数is_win返回的值结束游戏既可;

游戏刚开始自己接触的时候觉得很难,无从下手,但是跟着博主的思路学习一遍之后,发现豁然开朗,其实并不那么难,基本就是学过的函数和数组的应用,但是对如何将电脑的下子智能化还得需要思考一下。

三子棋游戏.c代码如下:

三子棋游戏.h头文件代码如下:

三子棋游戏实现.c头文件代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值