三子棋游戏
三子棋游戏是对我们C语言数组基础知识的简单考察,项目本生不算太难,不过对于基础不是很好的人来说中间打印棋盘的时候还是会被绕进去
- 首先我们新建一个工程文件project1每一个C语言程序都有唯一的一个main函数
- 那接下来我们就创建一个名为test.c的文件来储存我们的主程序
- 我们不难想到既然是一个游戏那他肯定就会包含很多的自定义函数,为了这些代码在后期能更好的看出来,方便后期的维护,那我们是不是得把他们分别装在另一个
文件夹里面 - 这样也会是我们的代码看起来更有逻辑,那么我们就创建一个名为game.c的文件来装我们的函数,有了game.c,少不了game.h,这样我们的基本文件就
创建好了 - 接下来就是写代码了,下面的大多数内容我会以注释的内容在代码中体现出来
test.c文件
//测试三子棋游戏
# define _CRT_SECURE_NO_WARNINGS
# include"game.h"
void menul()//实现菜单的打印
{
printf("***************************\n");
printf("*****1.play 0.exit*****\n");
printf("***************************\n");
}
void game()//主要的功能函数
{
char board[ROW][COL] = {0};//创建一个二维数组来实现棋盘
InitBoard(board,ROW,COL);//调用一个函数来初始化数组
/*我们知道数组用来传参,实际上传过去的是首元素的地址,所以还得传ROW和COL过去*/
DisplayBoard(board,ROW,COL);
}
void test()//首先我们来制作一个简易的游戏菜单
{
int input;
do//至少进入一次,通过循环的方式玩家可以重复多次的进行游戏
{
menul();//调用函数
printf("请选择\n");
scanf("%d", &input);
switch (input)//玩家不同的输入代表不同的情况
{
case 1:
printf("三子棋\n");
game();//调用函数
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误,请重新输入\n");
break;
}
} while (input);
}
int main()//主函数入口
{
test();//调用函数
return 0;
}
game.c文件
# include "game.h"
void InitBoard(char board[ROW][COL], int row, int col)//函数用来初始化数组,初始化的结果为一个空格
{
int i = 0;
int j = 0;
for (i = 0; i <col; i++)
{
for (j = 0; j <row; j++)
{
board[i][j] = ' ';
}
}
}
//打印棋盘
/*
* ---|---|---
* ---|---|---
* ---|---|---
*/
void DisplayBoard(char board[ROW][COL], int row, int col)//函数用来打印棋盘
{
int i = 0;
int j = 0;
for (i = 0; i < row; i++)//行
{
for (j = 0; j < row; j++)//列
{
printf(" %c ", board[i][j]);
if (j < row - 1)//判断是否打印"|"
{
printf("|");
}
}
printf("\n");//打印完一行数据后换行
if (i < col - 1)//判断打印"---"
{
for (j = 0; j < row; j++)
{
printf("---");
}
printf("\n");
}
}
}
game.h文件
# define ROW 10
# define COL 10
# include<stdio.h>
void InitBoard(char board[ROW][COL], int row, int col);//函数
void DisplayBoard(char board[ROW][COL], int row, int col);//函数