“纵有疾风来,人生不言弃,风乍起,合当奋意向此生。” 今天我们一起来学习一下三子棋小游戏用C语言怎么写出来?
1.游戏规则介绍
《三子棋》是一款古老的民间传统游戏,又被称为黑白棋、圈圈叉叉棋、井字棋、一条龙、九宫棋等。游戏分为双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子连成一条线的一方则视为胜利者。
2.游戏准备
这里呢,我们需要准备三个源文件,分别是test.c game.c game.h
(名称随意,尽量通俗易通一些比较好)可能有疑问了,这里为什么需要三个源文件呢?会不会显得很麻烦?在前面的学习中,我们也提到了未来在工程中代码比较多,函数一般放在.h文件
中声明,在.c文件
中实现。
分文件书写形式的优点:1.方便多人协作 2.保护代码
这里我们给大家介绍一下在三子棋这个游戏里面,每个文件是做什么的呢?
(1)头文件game.h
,头文件里是用来存放函数的声明,#define常量的定义,库函数的引用的。
(2)源文件test.c
,这个文件里面放的是游戏的测试逻辑。
(3)源文件game.c
,这个文件里面放的是游戏的实现逻辑(函数实现)。
3.游戏的实现
3.1生成菜单
这里呢,我们通过switch语句
给用户选择,当用户输入不同的数字,我们的程序就会给出不同的功能。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void menu()//生成菜单的函数
{
printf("******************************\n");
printf("********** 1.play **********\n");
printf("********** 0.exit **********\n");
printf("******************************\n");
}
void game()//实现玩游戏的函数
{
}
int main()
{
int input = 0;//用户选择
do//利用循环可以便于用户进行多次游戏
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏!\n");
break;
default:
printf("选择错误,重新选择!\n");
break;
}
} while (input);
return 0;
}
通过上面的代码,我们已经构建出了基本的框架:
3.2游戏的具体实现
我们发现,在上面的框架代码中缺少了游戏实现部分的代码,这里,我们在慢慢的一点点细化游戏过程。
首先,我们可以看到,我们需要先构造出一个3*3的棋盘。使得每个九个空位都处于空的状态。这里我们就想到了二维数组的概念,那我们一起来试试吧!
3.2.1初始化棋盘
//game.h
#pragma once
# define ROW 3
# define COL 3
//初始化棋盘的函数的声明
void InitBoard(char board[ROW][COL],int row,int col);
//game.c
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
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] = ' ';
}
}
}
//test.c
void game()
{
//最开始的时候数组的内容全是空格
char board[ROW][COL];
InitBoard(board, ROW, COL);
}
3.2.2打印棋盘
初始化棋盘之后,我们需要将棋盘打印出来才能被用户看到,那么我们同样的可以利用for循环
来完成这步操作。文章来源:https://www.toymoban.com/news/detail-630857.html
//game.h
//打印棋盘的函数声明
void DisplayBoard(char board[ROW][COL], int row, int col);
//game.c
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 < col; j++)
{
printf("%c", board[i][j]);
}
printf("\n");
}
}
//test.c
DisplayBoard(board, ROW, COL);
但是我们发现,这里留下了一大片空白,根本看不到棋盘,这是为什么呢?因为我们已经将棋盘初始化为空格了,显然我们是看不到的,而我们想要的是九宫格的样子,这里的话我们就可以用-和|
来组成我们的棋盘了。文章来源地址https://www.toymoban.com/news/detail-630857.html
//game.h
//打印棋盘的函数声明
void DisplayBoard(char board[ROW][COL], int row, int col);
//game.c
void DisplayBoard(char board[ROW][COL], int row, int col)//打印棋盘函数的实现
{
int i = 0;
int j = 0;
for (i = 0; i < row; i++)
{
printf(" %c | %c | %c \n", board[i][0], board[i][1],board[i][2]);
到了这里,关于C语言经典小游戏之三子棋(超详解释+源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!