C语言实现三子棋

C语言实现三子棋

来自菜鸡的第一次写博客

菜鸡自学C语言----学到数组这里,课堂有一节练习----三子棋 这不就是小时玩过的井字棋?

本菜鸡用最简单的C语言编程来实现这个三子棋游戏C语言实现三子棋

菜鸡

**设计电脑与玩家作为下棋的两方,用键盘输入坐标的形式作为玩家的游戏操作 **

1.效果图

程序总的构架:

C语言实现三子棋

			1.test.c		--->>	测试游戏的逻辑
			2.game.h		--->>	关于游戏相关的函数声明,符号声明,头文件包含
			3.game.c		--->>	游戏相关函数的实现

我们只要输入坐标就可以和电脑对弈了.

电脑的棋子用#代替,玩家的棋子用*代替。

C语言实现三子棋

2.打印菜单

可以根据自己的爱好设计各种风格的菜单,自己赏心悦目,让自己游戏界面更加美观以及游戏体验更佳.

void menu()
{
	printf("\n");
	printf("******************************************\n");
	printf("*******    欢迎来到三子棋游戏    *********\n");
	printf("************    1. play    ***************\n");
	printf("************    0. exit    ***************\n");
	printf("******************************************\n");
}

3.初始化棋盘

ROW,COL分别表示棋盘的宽度和高度(既是棋盘的x和y坐标,也是数组的行和列)

一开始把棋盘初始化为' '(空格).

//初始化棋盘
//把数组每个元素初始化成空格
void InitBoard(char board[ROW][COL], int row, int col)
{
	int i = 0;//行
	int j = 0;//列
	//遍历二维数组
	for (i = 0; i < row; i++)//控制行
	{
		for (j = 0; j < col; j++)//控制列
		{
			board[i][j] = ' ';//初始化成空格
		}
	}
}

4.打印棋盘

打印棋盘,棋盘由符号加数组元素组成,用符号把棋盘的框架打印下来

//打印棋盘
//打印数组元素及棋盘的框架
void DisplayBoard(char board[ROW][COL], int row, int col)
{
	int i = 0;
	for (i = 0; i < row; i++)
	{
		//printf(" %c | %c | %c \n",board[i][0],board[i][1],board[i][2]);
		int j = 0;
		for (j = 0; j < col; j++)
		{
			
			printf(" %c ",board[i][j]);
			if (col - 1 > j )
			{
				printf("|");
			}
			
		}
		printf("\n");
		if (i < row - 1)
		{
			//printf("---|---|---\n");
			for (j = 0; j < col; j++)
			{
				printf("---");
				if (j < col - 1 )
				{
					printf("|");
				}
			}
		}
		
		printf("\n");
	}

}

5.下棋

可以使用判断语句让用户选择是先下还是后下,选完后再进行下棋.

首先我给出电脑下棋的逻辑,我是利用srand()函数和rand函数产生随机值让电脑在棋盘有空的位置上随机下棋.用一个循环判断就可以实现。也可以设计电脑让其更"聪明",能够判断玩家已经下好的棋,并能做出阻止(我没有做这一步,如果有兴趣的话,可以自己研究研究

上一篇:面试题12:矩阵中的路径


下一篇:51. N 皇后