目录:

  • 1.游戏介绍
  • 2.游戏效果
  • 3.源代码
    • (1)头文件命名为为game.h
    • (2)游戏文件命名为game.c
    • (3)测试文件命名为test.c

1.游戏介绍

三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。

2.游戏效果

3.源代码

(1)头文件命名为为game.h

主要是整个程序中函数的声明

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define ROW 3 //行
#define COL 3 //列
void BoardInit(char board[ROW][COL], int row, int col);
//棋盘展示
void BoardShow(char board[ROW][COL], int row, int col);
//人下一个位置用M表示,电脑下一个位置用C表示
void PlayerMove(char board[ROW][COL], int row, int col);
void ComputerMove(char board[ROW][COL], int row, int col);
//如果人赢返回M   电脑赢返回C   平局返回Q
char IsWin(char board[ROW][COL], int row, int col);
char IsFull(char board[ROW][COL], int row, int col);

(2)游戏文件命名为game.c

主要是三子棋游戏的实现

#include"game.h"
#include<stdlib.h>
//棋盘初始化
void BoardInit(char board[ROW][COL], int row, int col)
{for (int i = 0; i < row; i++){for (int j = 0; j < col; j++){board[i][j] = ' ';}}
}
//棋盘展示
void BoardShow(char board[ROW][COL], int row, int col)
{for (int i = 0; i < row; i++){printf("-------------------\n");printf("|     |     |     |\n");printf("|     |     |     |\n");for (int j = 0; j < col; j++){printf("   %c  ",board[i][j]);}printf("\n");}printf("-------------------\n");
}
//玩家下子
void PlayerMove(char board[ROW][COL], int row, int col)
{int x, y;while (1){printf("请输入你要下的坐标:>");scanf_s("%d %d", &x, &y);//对玩家落子坐标判断if (x > row || y > col || x < 0 || y < 0){printf("非法输入请重新输入\n");continue;}else if (board[x][y] != ' '){printf("此位置已落子,请重新输入!\n");continue;}//满足落子要求返回Melse{board[x][y] = 'M';return 'M';break;}}}
//电脑下子
void ComputerMove(char board[ROW][COL], int row, int col)
{srand(time(NULL));while (1){int x = rand() % 3;int y = rand() % 3;//满足落子要求返回Cif (board[x][y] != " "){board[x][y] = 'C';return 'C';break;}}
}
//判断棋盘是否被下满
char IsFull(char board[ROW][COL], int row, int col)
{for (int i = 0; i < row; i++){for (int j = 0; j < col; j++){if (board[i][j] == ' '){return 0;}}}return 'Q';  //满了}
//输赢判断
char IsWin(char board[ROW][COL], int row, int col)
{//横行三个连子赢for (int i = 0; i < row; i++){if (board[i][0] == board[i][1] && board[i][1] == board[i][2]){if (board[i][0] == 'M'){return 'M';}else if (board[i][0] == 'C'){return 'C';}}}//竖行三个个连子赢for (int i = 0; i < col; i++){if (board[0][i] == board[1][i] && board[1][i] == board[2][i]){if (board[0][i] == 'M'){return 'M';}else if (board[0][i] == 'C'){return 'C';}}}// 斜向"\"这样三个连子赢if (board[0][0] == board[1][1] && board[1][1] == board[2][2]){if (board[1][1] == 'M'){return 'M';}else if (board[1][1] == 'C'){return 'C';}}// 斜向"/"这样三个连子赢if (board[0][0] == board[1][1] && board[1][1] == board[2][2]){if (board[1][1] == 'M'){return 'M';}else if (board[1][1] == 'C'){return 'C';}}//判断平局,即棋盘下满为平局if ((IsFull(board, ROW, COL)) == 1){return 'Q';}return 1;
}

(3)测试文件命名为test.c

主要实现程序的测试

#include<stdio.h>
#include "game.h"
#include<stdlib.h>
// 目录
void meun()
{printf("********************************\n");printf("************1.三子棋************\n");printf("************2.五子棋************\n");printf("************0.退出**************\n");printf("********************************\n");
}
//三子棋
void ThressChess()
{char board[ROW][COL];BoardInit(board, ROW, COL);BoardShow(board, ROW, COL);char ret = IsWin(board, ROW, COL);while (1){//对玩家下的做判断printf("玩家出手\n");PlayerMove(board, ROW, COL);BoardShow(board, ROW, COL);ret = IsWin(board, ROW, COL);if (ret == 'C'){printf("电脑赢了\n");break;}else if (ret == 'M'){printf("恭喜你赢了!\n");break;}else if (ret == 'Q'){printf("平局\n");break;}//对电脑下的做判断ComputerMove(board, ROW, COL);BoardShow(board, ROW, COL);ret = IsWin(board, ROW, COL);if (ret == 'M'){printf("恭喜你赢了!\n");break;}else if (ret == 'C'){printf("电脑赢了\n");break;}else if (ret == '1'){printf("平局\n");break;}else{printf("继续\n");}}
}
int main()
{int input;srand(time(NULL));do{meun();printf("请选择:");scanf_s("%d", &input);switch (input){case 1:ThressChess();break;case 2:printf("正在研发,敬请期待!\n");break;case 0:printf("按任意键退出\n");break;default:printf("非法输入,请重新输入\n");break;}} while (input);return 0;
}

简易的三子棋游戏(C语言)相关推荐

  1. c语言程序设计中三子棋游戏,C语言实现简易版三子棋游戏

    本文实例为大家共享了C语言实现三子棋游戏的详细代码,供大家参考,详细内容如下 什么是多文件? 多数大型的工程的头文件和源文件非常多,我们也不可能把所有的代码都写在同一个文件里,这样也不方便代码的阅读与 ...

  2. 三子棋游戏——C语言

    首先我们了解一下三子棋游戏的规则,这是我们设计游戏功能思路的开端: (1)对局双方各执一色棋子.--电脑和玩家的棋子形状要不同. (2)空棋盘开局.--设计出一个棋盘并将它格式化并打印. (3)黑先. ...

  3. 使用c语言实现三子棋游戏

    下面简介如何使用c语言的基础语法实现三子游戏的底层逻辑: 首先是菜单模块 使用switch语句进入游戏模块 前置交互完成,开始进入游戏函数. 第一部分棋盘创建,使用二维数组实现. a.初始化棋盘 为什 ...

  4. C语言,制作三子棋游戏

    三子棋游戏是一个很好地数组应用实例,在这篇博客中我将分享我在初学C语言时编写三子棋游戏的思路和过程. 1.模块设置 设置一个测试模块test.c和一个函数模块game.c,测试模块放置主函数,函数模块 ...

  5. C语言实现三子棋游戏(棋盘可自行扩展)

    目录 三子棋简单介绍 实现方式 游戏外部测试(test.c文件) 游戏内容具体实现(game.c和game.h) 三子棋简单介绍 大家都玩过五子棋吧,三子棋和这个类似,就是三子连成一线就获得胜利. 大 ...

  6. 用C语言实现三子棋游戏(附上思路+项目展示+源代码)

    文章目录 前言 一.三子棋游戏整体实现思路 二.实现步骤 分模板实现 (以及具体应用实列) 1.test.c 源文件讲解: 2. game.c 源文件讲解: 3.game.h 源文件讲解 三 game ...

  7. c语言程序下三子棋,C语言实现三子棋游戏(初级版)

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 game.h #include #include #include #define ROW 3 #define COL 3 ...

  8. 关于三子棋游戏的简易实现与N子棋胜利判断方法

    关于三子棋游戏的简易实现与N子棋胜利判断方法 要实现三子棋游戏,主要需要实现以下几个要求:> 需要一个棋盘,既然需要一个棋盘,棋盘是在一个平面上的,所以我们需要创建一个二维数组 棋盘的打印 玩家 ...

  9. C语言实现三子棋游戏(规范化)

    `在复习了数组之后,对有些经典的数组题进行了,其中一道就是三子棋游戏这一功能的实现.下面附上我的个人理解和代码,希望各位大佬不吝指教. 首先有一个万能游戏模板,在c语言中有好多实现游戏的代码,我总结了 ...

最新文章

  1. 基于 MongoDB 的 python 日志功能
  2. Git复习(一)之简介、安装、集中式和分布式
  3. Gradle与project(三)
  4. Linux内核:容器底层cgroup如何使用
  5. 川农计算机网络题库,川农网院20秋《计算机网络》期末机考
  6. 【计算机组成原理】磁盘存储器
  7. jvm垃圾回收之JVM GC算法
  8. 乐购系统源码可多开站
  9. 02-FTP文件共享服务
  10. 读书到什么程度才能算融会贯通?
  11. 响应式 - 使视频自适应于屏幕宽度
  12. matplotlib learning-----案例:对比电影的票房收入(3)
  13. 虚拟机下NAT 和 桥接模式 联网操作
  14. 大学计算机基础方案一,《大学计算机基础》实验实施方案-学生用(7页)-原创力文档...
  15. 【openfilier】配置iSCSI存储
  16. 恶梦护士 asa_创造小恶梦
  17. 携程PMO--小罗说敏捷之WIP限制在制品
  18. 【2018慢性病与信息大会】中国信息通信研究院党委副书记 乔发民致辞
  19. 某网站高度加密混淆的javascript的分析 1
  20. 【好东西要分享】大文本文件查看工具

热门文章

  1. 微信被封可私聊收费解封 是真的吗?腾讯官方回应来了
  2. 却话文心一言(Chatgpt们),存算一体真能突破AI算力“存储墙”|“能耗墙”|“编译墙”?
  3. C语言 校园歌手比赛系统源码
  4. 视频素材网,视频剪辑必备。
  5. .NetCore支付宝支付-服务商模式(saas)
  6. IOS 如何排除闪退和内存泄漏问题
  7. NASA教你攒火星探测器,连购物车都加好了
  8. 蓝魔法师——树形DP
  9. 我接的是地啊,不,你接的是土!
  10. Error:(3, 41) java: 程序包org.apache.kafka.clients.producer不存在 错误提示解决办法