C语言实现三子棋
来自菜鸡的第一次写博客
菜鸡自学C语言----学到数组这里,课堂有一节练习----三子棋 这不就是小时玩过的井字棋?
本菜鸡用最简单的C语言编程来实现这个三子棋游戏
菜鸡
**设计电脑与玩家作为下棋的两方,用键盘输入坐标的形式作为玩家的游戏操作 **
1.效果图
程序总的构架:
1.test.c --->> 测试游戏的逻辑
2.game.h --->> 关于游戏相关的函数声明,符号声明,头文件包含
3.game.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函数产生随机值让电脑在棋盘有空的位置上随机下棋.用一个循环判断就可以实现。也可以设计电脑让其更"聪明",能够判断玩家已经下好的棋,并能做出阻止(我没有做这一步,如果有兴趣的话,可以自己研究研究