C语言———三子棋

大家好,现在我来教大家用C语言来实现三子棋。

在敲代码之前我们要先理一下思路

首先,我们来理一下三子棋的运行顺序:显示棋盘——玩家下棋——电脑下棋——判断输赢——玩家下棋.........一直循环直到有一方赢或平局。

对于写三子棋问题主要分为1.棋盘 2.如何下棋 3.如何判断输赢 。

分析后我们暂时有了方向,开始敲代码

1.创建文件

这里我们先创建一个头文件(game.h)以及一个(test.c)和一个(game.c)源文件

三个文件分好工

(game.h):放头文件。

(game.c):放三子棋的游戏实现。

(test.c):放三子棋的主体逻辑和主函数。

2.封面和进游戏的逻辑

这里我们要思考几个问题

1.进入游戏和结束游戏如何实现?

2.如何进行多次游玩?

3.选择错误该怎么办?

对于以上的几个问题我们要用到循环和分支语句代码如下

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//实现封面
void fm() {
	printf("###########################################################################\n");
printf("###########################################################################\n");
printf("##############################  1.  进入游戏############################\n");
printf("###########################################################################\n");
printf("##############################  0.  结束游戏############################\n");
printf("###########################################################################\n");
printf("###########################################################################\n");
}
int main() {
	int a = 1;
	while (a) //循环语句使三子棋可以多次玩
	{
		fm();
		printf("请做出你的选择——>\n");
		scanf("%d", &a);
		switch (a)//分支语句根据你的输入做出相应的动作
		{
		case 1:
			printf("玩游戏\n");//游戏入口
			break;
		case 0 :
			printf("游戏结束\n");
			break;
		default :
			printf("输入错误请重新输入\n");
		}
	}
	return 0;
}

3.游戏主体

创建棋盘

 现在我们在红色边框这加上三子棋主体函数 szq() ,然后就开始创建棋盘,我们知道三子棋是由3*3个格子组成 ,我们可以用符号来完成一个棋盘对于玩家和电脑下棋的位置我们可以创建一个二维数组来记录:

 接下来棋盘创建的代码我们在game.c中完成,在game.h中声明

为了能正常使用game.h中的头文件我们要在另外的文件中加入# include“game.h”

 现在我们可以安心的在game.c文件中创建棋盘了

代码如下:

 棋盘创建好后接下来就是下棋了首先是玩家下棋代码还是在game.c中实现在game.h中声明主要思路就是让玩家输入坐标并将相应二维数组中的空格改为符号(*)并判断玩家输入坐标是否正确。

代码如下:

 玩家下了棋后就该电脑下棋了,这里的思路是让电脑创建一个·随机数然后让他变成可用的坐标,并判断坐标是否正确。

要让电脑随机生成一个数这里我们需要用一个库函数rang(),这样虽然可以让电脑随机产生一个数但每次产生的数都是一样的所以我们要用srand()【头文件:# include <stdlib.h>】这个函数来设置随机数的起点,只要srand()函数括号中的数不断变化我们就能生成不同的随机数,我们知道时间是一直在变的所以我们用时间戳来作为srand()的参数就能产生不停变化的随机数了生成时间戳的函数是time()【头文件:# include <time.h>】。

具体代码如下

随机数的创建

电脑下棋 

 之后就是两个过程的循环了我们在游戏主体函数这加一个循环

之后就是输赢判断了,双方每下一步棋就判断一出输赢这里创建一个函数来判断

主要思路是用if判断行和列以及对角线dd是否相的字符是否相等。

代码如下 函数还是在game.h中声明在game.c中实现

 最后我们再在游戏主体函数中来调用判断输赢的函数并用代码将逻辑走通

代码如下

 最后全部带码如下

game.h

test.c 

game.c 

好了我们的三子棋就敲完了,但我们还可以将代码更完善比如说让电脑更聪明一点可以下赢玩家。

以上就是全部内容,如果有需要改进的地方欢迎大家给出建议。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值