C语言新手入门练习之三子棋
三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。但是,有很多时候会出现和棋的情况。
使用C语言代码来完成三子棋首先我们需要建立三个文件,分别是两个源文件test.c、game.c,和一个头文件game.h。
然后我们需要在test.c里面建立游戏需要的目录。
菜单建立完,我们需要建立主函数,来让游戏的选项可以运行起来。
还需要建立棋盘。
需要在game.c里面建立棋盘和打印棋盘。
打印分割信息里面之所以使用row-1,和col-1是因为这样子打印棋盘底下不会多一行出来,而且以后打印其他格式的棋盘都没有影响,不会导致棋盘错乱。
在game.h里面把test.c和game.c需要引用的函数声明也创建,这样test.c和game.h需要使用的时候直接引用game.h就可以了。
行使用row,列使用col是为了方便以后修改棋盘大小方便而创立的。
棋盘打印完成需要让玩家和电脑可以下棋,并且可以判断输赢。在test.c里面创建下图函数。
使用while循环是因为下棋是一个循环的过程。
同时game.h需要创建下图函数。
game.c里面对上图两个函数进行补充内容。
下棋需要保证落子不重复以及没有落到棋盘外面。
规定玩家下的棋是“*”
电脑下棋是“#”
现在需要判断输赢以及棋盘下满出现平局。
下图是判断棋子是否下满了棋盘。
我们需要进行规定如何判断输赢,下棋无非四种结果:
1.玩家赢 - '*'
2.电脑赢 - '#'
3.平局 - 'Q'
4.继续 - 'c'
我们需要在game.c里面判断三子棋的输赢,三子棋的赢就是竖着三行连成一条线,横着三行连成一条线,斜着两条线连成一条。
char Iswin(char board[ROW][COL], int row, int col)
{int i = 0;for (i = 0; i < row; i++){if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][1] != ' '){return board[i][1];}}//行int j = 0;for (j = 0; j < col; j++){if (board[0][j] == board[1][j] && board[1][j] == board[2][j] && board[1][j] != ' '){return board[1][j];}}//列if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[1][1] != ' '){return board[1][1];}if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != ' '){return board[1][1];}//对角线if (IsFull(board, row, col)){return 'Q';}//没人赢,平局return 'C';//继续
}
//判断输赢
game.h里面也要创建函数。
test.c里面补完最后一点函数。
最后就可以得到三子棋了。
感谢各位大佬的观看。
最后夹杂一点个人私货,这是我个人在gitee的仓库,里面有三子棋的完整代码。
accumulation: 不积跬步,无以至千里。不积小流,无以成江海。
C语言新手入门练习之三子棋相关推荐
- java三子棋人机游戏_C语言编程入门游戏《三子棋》
经过C语言初级阶段的系统学习,对基本C语言的知识有了一定的了解和认识,能够通过C语言编程解决一些简单的问题.本次完成一个简单的游戏<三子棋>. 游戏简介:常见的3x3棋盘,有两名游戏玩家, ...
- C语言自制小游戏:三子棋(井字棋)智能下棋补充
目录 一.前期准备 二.逻辑与程序实现 1.连珠 ①横向连珠 ②纵向连珠 ③斜向连珠 ④函数完善 2.堵棋 ①横向堵棋 ②纵向堵棋 ③斜向堵棋 3.整理函数 ①整理AI_Computer函数 ②修改C ...
- 【C语言入门游戏】三子棋的实现———【保姆级教学】
目录 1.何为三子棋,三子棋的规则如何? 2. 游戏的整体框架 2.1 创建游戏菜单 test.c game.h 编辑 2.2 初始化棋盘 game.c 2.3 打印棋盘 2.4 玩家下棋 2.5 ...
- 【C语言】小游戏系列——三子棋(保姆级教程)
我相信三子棋大家并不陌生,小时候经常玩,深受大家的喜欢.今天我们用c语言来编写一个简单的三子棋小游戏,在C语言的学习中,就应该用一些有趣的代码来激励我们,增加我们对编程的热爱.下面我来讲述如何去实现一 ...
- C语言人机大战之决战三子棋之巅
文章目录 C语言人机大战之三子棋 一.游戏规则 二.游戏实现 (1)游戏界面 (2)游戏ing 初始化棋盘 打印棋盘 玩家落子 电脑落子 判断输赢 棋盘满否 三.代码总结 (1)game.h (2)t ...
- 利用C语言巧妙实现棋类游戏——三子棋
小游戏:三子棋用C语言实现 你是否学完了C语言的函数.数组.选择结构.循环结构苦于没有实战小项目巩固自己所学的知识呢,今天小程序猿就给大家带来了一个游戏的小游戏--三子棋,利用C语言实现的,希望对大家 ...
- C语言实现“人工智障”三子棋
文章目录 前言 一.成品展示 主界面展示: 二.实现步骤 1.初始化棋盘 2.打印棋盘 3.玩家电脑落子 4. 判断胜负 5.游戏逻辑实现 总结 前言 相信不少小伙伴在学校上的时候肯定都玩过三子棋吧, ...
- C语言一个小时实现简易三子棋,看看你能不能让愚蠢的电脑获胜,还不快上手试试吗(无AI算法)
今天利用空余时间,便写一写三子棋的实现,可能很多人第一次看到这些东西,心里就会有一点害怕,可能会说:天呐,这得多难啊,我真的能写吗?那么回答是肯定的:能写,并且还很简单.那就让我们来看一看吧! 我们首 ...
- 《c语言小游戏》入门级三子棋游戏(机器人加强版)
目录 打印界面 初始化数组的值 玩家下棋 判断是否胜利 电脑下棋 今天为大家带来的是一款非常简单的小游戏"三子棋" 首先规则很简单,一行或者一列或者正负对角线都为同子就赢了,管你听 ...
- 【C语言番外1】三子棋的实现
本篇文章主要以C语言中的二维数组为核心实现简单的三字棋. 一.游戏界面的实现 根据上次猜数字游戏的经验,我们可以继续采用switch case语句与do while语句联动来实现基本的游戏界面. 我们 ...
最新文章
- Java线程详解(8)-线程的同步
- 三面腾讯,竟然挂在了JVM上…
- nyoj1121周期串
- [NOTE] SQL与sqlmap
- 使用手机测试、访问本地环境方法
- SAP Success factor自定义launchpad
- 基于javaEE技术的课程设计管理系统设计与实现
- 接口进阶 java 1614956772
- python uuid
- 以后装个云集群和云节点啥的太简单了(ubuntu)
- 2021-09-18
- 知识变现海哥:如何利用自己的时间和知识获得财富自由
- 跨域及处理跨域的三种方式
- bugkuCTF 乌云邀请码 write up【橘小白】
- python虚拟环境是什么意思_python的虚拟环境详解
- python的输入函数是什么意思_在Python中,用于获取用户输入的函数是
- 火山PC自绘高级表格及超级列表框
- 欧拉回路(混合图的欧拉回路)
- SAP应用在华登陆Windows Azure公有云
- 怎么给win10电脑设置每个月16号定时提醒