1.文件结构
- test.c :测试游戏逻辑
- game.c :游戏代码的实现
- game.h :游戏代码的声明(函数声明、符号定义)
test.c 代码内容
#include <stdio.h>
#include "game.h"
// 菜单函数
void menu()
{
printf("*************************\n");
printf("****** 1. play 0. exit ******\n");
printf("*************************\n");
}
void game()
{
char board[3][3] = {0}; // 初始化棋盘的函数
Init_Board(board, 3, 3);
}
int main()
{
int input = 0;
do
{
menu(); // 打印菜单
printf("请选择:");
scanf("%d", &input);
switch(input)
{
case 1:
printf("三子棋\n"); // 替换成 game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误!\n");
break;
}
} while (input);
return 0;
}
2. 函数代码片段
void PlayerMove(char board[ROW][COL], int row, int col)
{
}
bubble_sort(arr); // 冒泡排序的算法,对数组进行排序
int i=0;
for (i=0; i<sz; i++)
{
printf("%d", arr[i]);
}
return 0;
}
3. 数组名相关笔记
数组名:
数组名确实能表示首元素的地址,但有2个例外:
① sizeof(数组名) :这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。
② &数组名 :这里的数组名表示整个数组,取出的是整个数组的地址。
// 二维数组的数组名也表示数组首元素的地址(首行所有的元素)
sizeof(arr) / sizeof(arr[0]) // 计算 行数 大小
sizeof(arr[0]) / sizeof(arr[0][0]) // 计算 列数 大小
4. game.h 文件
// 定义棋盘的行列数
#define ROW 3
#define COL 3
// 初始化棋盘
void InitBoard(char board[ROW][COL], int row, int col);
// 打印棋盘
void DisplayBoard(char board[ROW][COL], int row, int col);
// 玩家下棋
void PlayerMove(char board[ROW][COL], int row, int col);
// 电脑下棋
void ComputerMove(char board[ROW][COL], int row, int col);