栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

三子棋小游戏

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

三子棋小游戏

今天来用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智商貌似很低(只会乱下),有兴趣的可以试试增强电脑难度哦

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/315981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号