C语言之三子棋游戏(附完整代码)

学了那么多关于C语言的知识,也该进行一下实操了。三子棋游戏应该是大家学生时代课间比较喜欢娱乐消遣的一种方式吧。那么我们今天就来说说如何实现简单版本的三子棋对战小游戏吧。

三子棋游戏介绍

        三子棋游戏类似于五子棋,不同的是它的棋盘大小是九宫格且达到如下图一种结果则算赢。三子棋游戏的规则是必须 横向 或 纵向 或 斜线 填满相同的棋子才算赢。

三子棋游戏实现的编程框架

        1. 游戏不退出,当结束一局可以进行下一局(循环)。
        2. 应用多文件的形式完成代码。在企业团队进行项目开发时,多文件形式写代码是必不可少的,因此这里我们也用多文件形式写代码,这些文件都必须放在同一个工程(即同一个文件夹)下。
                 test.c         --       测试游戏的,即主要是main函数内对游戏功能进行框架搭建和测试。
                game.c       --       游戏函数的实现,即主要是完成游戏核心功能的函数的具体实现。
                game.h       --       游戏函数的声明,即主要是对这些函数的声明和简介。

不同文件的实现

(一)game.h文件

该文件为实现三子棋项目的声明。

#pragma once

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define ROW 3
#define COL 3

void InitGame(char board[ROW][COL], int row, int col);//初始化棋盘
void DisPlayBoard(char board[ROW][COL], int row, int col);//显示棋盘
void PlayerGame(char board[ROW][COL], int row, int col);//玩家下棋
void ComputerGame(char board[ROW][COL], int row, int col);//电脑下棋

//玩家赢返回‘*’
//电脑赢返回‘#’
//平局返回‘Q’
//可以继续下棋返回‘C’
char is_win(char board[ROW][COL], int row, int col);//判断输赢
int if_full(char board[ROW][COL], int row, int col);//判断棋盘是否下满

宏定义的变量ROW 和COL表示棋盘的大小是三行三列的九宫格,在game.h中声明棋盘大小。如果想改变棋盘的大小,直接在该文件中进行修改即可。

(二)test.c文件

1.菜单功能

实现一个简易的菜单功能,提醒玩家选择开始游戏还是结束游戏。选择1表示开始游戏,选择0表示结束游戏。

void menu()
{
	printf("*********************************\n");
	printf("**********   1. play   **********\n");
	printf("**********   0. exit   **********\n");
	printf("*********************************\n");
}

2.main函数实现连续多玩

由于我们游戏开发的目标是实现玩家可以选择连续多玩游戏,因此本段代码主要的逻辑是使用循环控制。而且我们程序运行时必须至少进行一次游戏,所以采取do……while循环进行控制,具体代码逻辑可以参考之前写的博客C语言之猜数字小游戏

int main()
{
	int input = 0;
	do {
		menu();
		scanf("%d", &input);
		switch (input)
		{
		default:
			printf("出错啦,公主请重新输入:\n");
			break;
		case 1:
			printf("尊敬的公主,请开始你的游戏吧!\n");
			game();
			break;
		case 0:
			printf("游戏退出,公主拜拜!\n");
			break;
		}
	} while (input);
	return 0;
}

3.game函数的实现

g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值