【C语言 |五子棋】C语言实现五子棋

2024-06-09 1187阅读

目录

一、问题描述

二、基本思路

三、步骤

1.菜单界面

​编辑2.创建一个棋盘

3.棋盘初始化

4.打印棋盘

5.玩家落子

6.电脑落子

7.判断胜负

8.主要逻辑实现

四、代码实现


一、问题描述

用C语言实现五子棋。

二、基本思路

实现代码的逻辑

1. 进入游戏就打印出一个首页菜单要求玩家选择

2.创建一个棋盘并且初始化

3.打印出来棋盘

4.玩家通过(x,y)坐标的方式输入进行落子,电脑通过生成(x,y)随机数方式落子

5.玩家落子用 o 表示,电脑落子用 * 表示

5.判断胜负关系

三、步骤

1.菜单界面

首先玩家进入程序,不管三七二十一先打印出来菜单(可以用do  while语句实现)

输入 1.play  开始游戏

输入 0.exit 退出游戏

void menu(void)
{
	printf("************************\n");
	printf("************************\n");
	printf("*********1.play ********\n");
	printf("*********0.exit ********\n");
	printf("************************\n");
	printf("************************\n\n");
}

【C语言 |五子棋】C语言实现五子棋2.创建一个棋盘

棋盘:用一个二维数组来创建,元素类型char

注意:使用宏定义的好处:

有助于程序的扩展性(后期需要变动只需要变动只需要修改定义的部分)

增加程序可读性

#define ROW 10
#define COL 10
char board[ROW][COL] = { 0 };

3.棋盘初始化

可以使用memset()这个库函数实现--------包含头文件  #include

复制字符 c(一个无符号字符)到参数 boarrd所指向的字符串的前 n 个字符

//这个c作用是需要初始化什么就传什么字符
void InitBoard(char board[ROW][COL],int row,int col,char c)
{
             //(row*col*sizeof(board[0][0]))  行*列*单个元素大小 就是整个数组大小
	memset(&board[0][0],c,row*col*sizeof(board[0][0]));
}

当然不用库函数 也可以用无脑的办法 都是可以的

void InitBoard(char board[ROW][COL],int row,int col,char c)
{
	int i = 0,j = 0;
    for(i = 0;i  

4.打印棋盘

因为刚开始的棋盘被初始化为空白,为了美观一点,可以修饰一下

void DisplayBoard(char board[ROW][COL],int row,int col)
{
	int i = 0, j = 0;
	for (i = 0; i  

【C语言 |五子棋】C语言实现五子棋因为我们上面定义的 ROW COL为10   --- -->   所以打印出来了10行10列 

5.玩家落子

玩家输入行列坐标表示落子,使用 ’o’ 表示玩家落子

并且只能落在没有棋子的棋盘内部,代码实现如下

void PlayerMove(char board[ROW][COL],int row,int col)
{
//x坐标 y坐标 
	int x = 0, y = 0;
	printf("玩家下棋\n");
	while (1)
	{
		printf("请输入下棋的坐标(x,y) -> ->");
		scanf("%d %d", &x, &y);
 /*当满足输入的x y坐标范围时候才会进入输入并且break跳出去,否则一直在里面循环*/
		if (x >= 1 && x = 1 && y = 1 && x = 1 && y 
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]