IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 三子棋小游戏 -> 正文阅读

[C++知识库]三子棋小游戏

今天来用C语言写写小游戏三子棋

三子棋

三子棋是我们大家人人都知道的一款小游戏,那我们如何用C语言来简单做一个三子棋的小游戏呢

事前准备

我先创建了test.c用来写我的主函数
然后创建了game.h来进行函数和头文件的声明
最后还有game.c来进行函数的实现

创建游戏菜单

首先创建我们的主函数,想象一个游戏开始的界面是什么样子的,通常都是有个个选些,开始游戏和退出对吧,因此我们写一个打印菜单函数,先把我们游戏的进入界面展示出来
在这里插入图片描述
这里我就随便弄了个基础的菜单函数

我们要进行选择,当然要进行输入呀,所以我们创建一个变量用于让我们选择菜单,并且根据选择的不同要有不同的变化,而且在我们玩完一盘游戏之后我要能够再次回到菜单界面,因此我在这里用到了do while循环

在这里插入图片描述
并且我用了swich语句来进行选择分支

这样,一个游戏的模型就基本弄好了,我们接下来只要完善进行游戏的函数就好了

游戏函数

初始化棋盘

进入游戏函数,我们知道三字棋的棋盘是3X3的,因此,我们不妨创建一个3行3列的二维数组来作为游戏的棋盘
在这里插入图片描述
想象一下,棋盘大概是这个样子的

因为我们下棋只需要放一个字符,所以创一个char的数组就够了,这是我创建的数组,并且用空格把它初始化了
在这里插入图片描述
在这里我没用 char board【3】【3】来初始化,而是用了ROW 和COL两个词,因为我在头文件里定义了他们的值是3,这样我后面需要用3的地方只需要用ROW 和 COL来说明就行,这样的好处是以后如果我要修改棋盘,我就不用把每一个3都改一次,只需要修改头文件定义的大小就可以了

我把函数的初始化写成了函数,把它放到函数InitBoard里,然后在game.c里实现这个函数就好了,往下其他功能我们都会写成函数的形式,然后在game.c里实现函数的功能
在这里插入图片描述
这是棋盘的初始化函数的实现

打印棋盘

我们把棋盘创建完成了,但我们还要把它在我们眼前表现出来,这时候就需要把棋盘打印出来。
但是光打印数组是不够的,因为棋盘里还要有其他的东西装饰,比如棋盘格子,我们发现它是有规律的,我们就把打印函数给写了出来

在这里插入图片描述
在这里插入图片描述
这是打印的样子,打印的时候,先打印数组的内容,然后是一条丨,这样循环就把第一行打印完成,第二行我们打印行之间的分割线,也可以是一次循环,这样把前2行就打印完了,把它看做一次循环,就可以打印整个棋盘

可能我说的有点绕,但你具体要去尝试做,就发现其实还是很简单的

这样我们的函数就又增加了
在这里插入图片描述
就这样一步步实现就好

下棋

下棋时我下一步,电脑下一步,因此下棋其实是一个循环,这里我使用了while循环,在适当的地方跳出去就好
在这里插入图片描述
每一步都是通过函数来实现的,我们先写好步骤,到时候去game.c里把函数完善就好

可以知道,我们或者电脑每次下一步棋,都需要判断一次输赢,如果此时有人获胜要立即跳出去这个循环

玩家下棋函数

在这里插入图片描述
每次轮到玩家下棋,系统会提示玩家走,玩家需要输入要下的坐标为几行几列,玩家的棋子是用 * 表示的
这里要注意数组是从0开始而不是从1开始

电脑下棋函数

在这里插入图片描述
到电脑走的时候,我用了rand函数,该函数的随机值除3,就会随机得到一个1-3的数,判断这个随机坐标是否是空坐标,不是的话就继续循环,是的话就写入#
需要注意的是要用这个rand()函数的话,要在主函数加一个
srand((unsigned int)time(NULL))
在这里插入图片描述

判断输赢

判断输赢我用了一个IsWin函数
在这里插入图片描述

这里要根据不同的情况返回不同的值
我在这里玩家赢的话返回*,电脑赢的话返回#,平局的话返回Q,还得继续就返回C

在这里插入图片描述
然后根据返回的值,判断接下来的行动,如果是C就继续循环,如果不是C就跳出了下棋循环,到下面根据返回的是*还是#还是Q来判断是谁获胜或者平局

最后

这样我们的简单三子棋就可以玩啦
在这里插入图片描述
因为是简单三子棋,所以电脑的ai智商貌似很低(只会乱下),有兴趣的可以试试增强电脑难度哦

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章           查看所有文章
加:2021-10-12 23:15:23  更:2021-10-12 23:18:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 19:02:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计