C语言--------三子棋的实现

本文介绍了如何使用C语言实现三子棋游戏。详细讲解了chess.h头文件、main.c源文件和chess.c源文件的实现逻辑,包括棋盘初始化、棋子落子判断、游戏流程控制等功能。通过这个项目,作者巩固了C语言的基础知识并锻炼了编程思维。
摘要由CSDN通过智能技术生成

**

C语言实现三子棋

导语
通过最近一段的学习,我掌握了c语言中的基本语法和语句,比如分支和循环语句、一维数组和二维数组、函数的创建和调用,为了更加灵活使用这些基础知识,我决定用已学过的基础知识编写一个三子棋小游戏.


一、三子棋是什么?

相比较三子棋,想必大家更加熟悉五子棋,但是他们的原理是一样的。原理也比较简单,就是两个玩家执棋子在N*N的方格棋盘落子,哪个玩家落的棋子先连成一串(三子棋是三个为一串,五子棋是五个为一串),那么该玩家就在该盘棋局获得胜利。这里的串可以是横串,也可以是竖串,还可以是斜串。

二、项目实现

1.模块一:chess.h头文件

原理介绍:

  1. chess.h中包含整个项目所需要的头文件和函数声明以及所需要的宏定义。
  2. 头文件包括C语言常用的库函数头文件和产生随机数所需要的time、stdlib头文件。
  3. 宏定义:
    1)定义行数和列数:这是对棋盘的大小的定义。
    2)定义落子:我们定义玩家执黑子,用‘x’表示。电脑执白子,用‘0’表示。
    3)函数声明:我依次声明的函数有游戏函数Game、面板初始化函数InitBoard、面板显示函数ShowBoard、玩家落子函数PlayerMove、电脑落子函数ComputerMove、棋局输赢判断函数JudgeResult。

代码如下:

#ifndef _CHESS_H_
#define _CHESS_H_

#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
//使用一些常见的功能函数,如动态储存分配。
//随机数:生成不同的随即数序列使用rand是要使用srand来为rand生成随机数序列设置起始点
//也要用到#include<time.h>
#include<time.h>//使用前时钟做种子
#pragma warning(disable:4996)

#define ROW 3
#define COL 3

#define BLACK_PIECE 'X'
#define WHITE_PIECE 'O'



void Game();
void InitBoard(char board[][COL], int row, int col);
void ShowBoard(char board[][COL], int row, int col);
int PlayerMove(char board[][COL], int row, int col);
void  ComputerMove(char board[][COL], int row, int col);
char JudgeResult(char board[][COL], int row, int col);


#endif

所实现功能介绍:
chess.h此部分代码所实现的功能是C语言头文件的调用和项目所用到的函数声明。

2.模块二:main.c源文件

原理介绍:
main.c是整个项目的主函数。因为代码执行是顺序执行,因此此部分代码逻辑主要是运用了switch语句。根据玩家的意愿执行不同的选择执行不同的语句。其中定义了quit是为了更高效的执行while循环语句。

代码如下:

#include"chess.h"

void Menu()
{
   
	printf("######################################\n");
	printf("###    欢迎来到我的三子棋游戏室    ###\n");
	printf("######################################\n");
	printf("### 1. Play                2. Exit ###\n");
	printf("######################################\n");
	printf("Please Enter Select: > ");
}

int main()
{
   
	int quit = 0;
	while (!quit){
   
		int select = 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值