C语言经典小游戏之三子棋(超详解释+源码)

这篇具有很好参考价值的文章主要介绍了C语言经典小游戏之三子棋(超详解释+源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

“纵有疾风来,人生不言弃,风乍起,合当奋意向此生。” 今天我们一起来学习一下三子棋小游戏用C语言怎么写出来?

1.游戏规则介绍

《三子棋》是一款古老的民间传统游戏,又被称为黑白棋、圈圈叉叉棋、井字棋、一条龙、九宫棋等。游戏分为双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子连成一条线的一方则视为胜利者。
C语言经典小游戏之三子棋(超详解释+源码),c语言,开发语言

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;
}

通过上面的代码,我们已经构建出了基本的框架:
C语言经典小游戏之三子棋(超详解释+源码),c语言,开发语言

3.2游戏的具体实现

我们发现,在上面的框架代码中缺少了游戏实现部分的代码,这里,我们在慢慢的一点点细化游戏过程。
C语言经典小游戏之三子棋(超详解释+源码),c语言,开发语言

首先,我们可以看到,我们需要先构造出一个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);
}

C语言经典小游戏之三子棋(超详解释+源码),c语言,开发语言

3.2.2打印棋盘

初始化棋盘之后,我们需要将棋盘打印出来才能被用户看到,那么我们同样的可以利用for循环来完成这步操作。

//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);

C语言经典小游戏之三子棋(超详解释+源码),c语言,开发语言
C语言经典小游戏之三子棋(超详解释+源码),c语言,开发语言
但是我们发现,这里留下了一大片空白,根本看不到棋盘,这是为什么呢?因为我们已经将棋盘初始化为空格了,显然我们是看不到的,而我们想要的是九宫格的样子,这里的话我们就可以用-和|来组成我们的棋盘了。文章来源地址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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C】C语言实现三子棋小游戏

    今天带大家用C语言来实现我们的一个小游戏—— 三子棋 也是用我们之前所学的知识学实现一些有价值的东西。 在开始之前要跟大家声明一下我们这个项目需要三个文件: game.h —— 主要来声明和游戏相关的函数 game.c —— 主要来实现和游戏相关的函数 test.c —— 主函数所在

    2024年02月11日
    浏览(35)
  • C语言三子棋小游戏--数组的应用

    注:在最后面,完整源码会以两种形式展现。在讲解时,以三个源文件的形式。 前言:三子棋,顾名思义,就是三个子连在一起就可以胜出。在本节我们要介绍的三子棋模式是这样子的:在键盘输入坐标(表示落子),和电脑对下(当前电脑设计为随机下)。 我们先看游戏

    2024年02月13日
    浏览(23)
  • 基于C语言 --- 自己写一个三子棋小游戏

    前言: 游戏规则: (1)、在打印的数组棋盘里,输入坐标,下棋。 (2)、坐标格式:x(空格) y (3)、x横坐标,y竖坐标 (4)、连成三个棋子为一线则判定胜利 如图所示 : 采用模块化编写 : arr_game1.c执行主要逻辑程序 arr_game1.h存放头文件或函数声明等程序 arr_main.c放主函数逻辑程

    2024年02月14日
    浏览(19)
  • c语言项目——三子棋小游戏(带详细讲解解析)

    三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏分为双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子走成一条线就视为胜利,而对方就算输了,但是三子棋在很多时候会出现和棋的局面。 两个玩家,一个打圈(◯),一个打

    2024年02月09日
    浏览(27)
  • 【C语言】2048小游戏【附源码】

    欢迎来到英杰社区 https://bbs.csdn.net/topics/617804998         2048是一款数字益智类游戏,玩家需要使用键盘控制数字方块的移动,合并相同数字的方块,最终达到数字方块上出现“2048”的目标。         每次移动操作,所有数字方块会朝着指定方向同时滑动,并在靠近边

    2024年04月15日
    浏览(24)
  • 趣味益智小游戏 三子棋+五子棋 优化版(可任意选择棋盘大小)

    今天牛牛给大家分享的是c语言实现三子棋和五子棋游戏,初学者可能有些不理解的地方,记得私信提问哦,牛牛会一 一回答的。 《三子棋》是一款益智小游戏,通常是在九宫格里面玩,所以也被称为”九宫棋“或”井字棋“。 游戏规则也极其简单,只要三子相连即可获胜。

    2024年01月19日
    浏览(34)
  • C语言实现五子棋小游戏(内附源码)

    游戏中有人机,双人两种模式。五子棋作为一个平面游戏,很明显用二维数组来写最合适不过。为了让代码看起来更有条理,我们用三个.c文件,分别是:text.c 用来测试我们的游戏;game.c 游戏功能的实现;is_win.c 判断输赢的版块。另外,还有一个game.h 文件来放我们的函数声

    2024年02月09日
    浏览(31)
  • 详解5个C语言简单易懂小游戏

    我们通过5个简单易懂的小游戏来加强我们对C语言的认识,这五个小游戏不仅有单人,还有人机对战和人人对战。让我们在学习之余来上一局紧张刺激的小游戏吧! 我们要做5个小游戏,我们要 分别为5个小游戏创建一个头文件和一个源文件 。分别为game1.h/game1.c,game2.h/game2.

    2024年02月12日
    浏览(32)
  • 详解Java实现2048小游戏(JavaFX,完整源码+注释说明)

    刚刚完成的一个小游戏,写文章记录一下,如果有任何错误或者可以改进的代码请提出 另一方面也是方便自己几个月或几年后忘记时,来这里翻一翻回顾思路 目录 基本界面: 类的组织: _CardPane: _CardMatrixPane: _CardColor: _GameMenuBar: _2048Demo: 基本思路: 卡片: 卡片矩阵:

    2024年02月03日
    浏览(29)
  • 【C语言】扫雷小游戏详细分析(模块化编程)——内附源码

    . 🚀write in front🚀 🔎大家好,我是gugugu。希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🆔本文由 gugugu 原创 CSDN首发🐒 如需转载还请通知⚠ 📝个人主页:gugugu—CSDN博客 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏:gugugu的系列专栏——

    2024年02月14日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包