三子棋游戏

源文件:test.cpp(主要用来调用函数)  game.cpp(用来实现函数)

头文件:事先声明函数避免警告,共享库

test.cpp代码如下

​
#include<stdio.h>
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
#include <time.h>
void menu() {printf("********************************\n");printf("*******1.play  0.exit***********\n");printf("********************************\n");
}
void game() {char ret = 0;int board [ROW][COL] = { 0 };Iniboard(board, ROW, COL);DisplayBoard(board, ROW,COL);while (1) {PlayerMove(board,ROW,COL);DisplayBoard(board, ROW, COL);ret=InWin(board, ROW, COL);if (ret!='C'){break;}ComputerMove(board, ROW, COL);DisplayBoard(board, ROW, COL);ret = InWin(board, ROW, COL);if (ret != 'C'){break;}}if (ret=='*'){printf("玩家赢\n");}else if(ret=='#'){printf("电脑赢\n");}else{printf("平局\n");}
}
void test() {int input = 0;srand((unsigned int)time(NULL));do {menu();printf("请选择:>");scanf_s("%d", &input);switch (input){case 1:game();printf("三子棋\n");break;case 0:printf("退出游戏\n");break;default:printf("输入错误请重试\n");break;}} while (input);}
int main() {test();return 0;
}​

game.cpp代码如下

#define ROW 3
#define COL 3
#include "game.h"
#include<stdio.h>
#include<cstdlib>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void Iniboard(int 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] = ' ';}}
}
void DisplayBoard(int board[ROW][COL], int row, int col) {int i = 0;for (i = 0; i < row;i++) {int j = 0;for (j = 0; j < col;j++) {printf(" %c ", board[i][j]);if (j < col - 1) {printf("|");}}printf("\n");//printf(" %c | %c | %c \n",board[i][0],board[i][1],board[i][2]);if (i < row - 1) {for (j = 0; j < col; j++){printf("---");if (j < col - 1) {printf("|");}}//printf("---|---|---\n");}printf("\n");}}
void PlayerMove(int board[ROW][COL], int row, int col) {int x = 0;int y = 0;printf("玩家走:>\n");printf("请输入要下的坐标\n");while (1){scanf_s("%d%d", &x, &y);if (x >= 1 && x <= row && y >= 1 && y <= col) {if (board[x-1][y-1]==' '){board[x - 1][y - 1] = '*';break;}else{printf("改坐标被占用\n");}}else{printf("坐标非法,请重新输入:\n");}}}
void ComputerMove(int board[ROW][COL], int row, int col)
{int x = 0;int y = 0;printf("电脑走>\n");while (1){x = rand() % row;y = rand() % col;if (board[x][y] == ' '){board[x][y] ='#';break;}}
}
int IsFull(int 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++) {if (board[i][j] == ' '){return 0;}}}return 1;
}
char InWin(int 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][0]!=' '){return board[i][0];}}for (i = 0; i < col; i++){if (board[0][i] == board[1][i] && board[1][i] == board[2][i]&& board[0][i] != ' '){return board[0][i];}}if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] != ' '){return board[1][1];}if (board[2][0] == board[1][1] && board[1][1] == board[0][2] && board[0][0] != ' '){return board[1][1];}if (1==IsFull(board,ROW,COL)){return 'P';}return 'C';}

game.h(头文件)代码如下:

#define ROW 3
#define COL 3
#include<stdio.h>
#include<stdio.h>
#include<cstdlib>
void Iniboard(int board[ROW][COL], int row, int col);
void DisplayBoard(int board[ROW][COL], int row, int col);
void PlayerMove(int board[ROW][COL], int row, int col);
void ComputerMove(int board[ROW][COL], int row, int col);
char InWin(int board[ROW][COL], int row, int col);

接着干代码了。。

C语言实现三子棋(五子棋可以改赢得函数即可)相关推荐

  1. 【C语言】三子棋游戏的实现(玩家VS玩家 or 玩家VS电脑)

    目    录 一.三子棋游戏介绍 二.游戏功能函数分析 1 菜单显示函数 2 菜单选择函数 3 选择确认函数 4 显示当前棋盘状态函数 5 棋盘初始化函数 6 玩家下棋函数 7 电脑下棋函数 8 棋局 ...

  2. C语言实现三子棋、五子棋、扫雷游戏合集详解

    目录检索 游戏大厅实现功能(代码部分高亮显示) 三子棋模块 1.游戏介绍 2.棋盘储存及初始化 3.展示棋盘 4.玩家落子 5.电脑落子 6.检查判断(核心) 7.总体代码 五子棋模块 1.游戏介绍 ...

  3. 趣味益智小游戏 三子棋+五子棋 优化版(可任意选择棋盘大小)

    前言 今天牛牛给大家分享的是c语言实现三子棋和五子棋游戏,初学者可能有些不理解的地方,记得私信提问哦,牛牛会一 一回答的. 目录 前言 一.游戏介绍 二.游戏设计思路 2.1 主函数测试区(test. ...

  4. C语言实现三子棋小游戏(源码+教程)

    我猜中了开头,却猜不到这结局.--<大话西游> 目录 1.设计框架 2.设计流程 2.1菜单 2.2初始化棋子 2.3初始化棋盘 2.4玩家输入落子的坐标 2.5电脑随机生成棋子 2.6判 ...

  5. C语言实现三子棋游戏—可扩展到任意N子棋

    C语言实现三子棋 游戏介绍 游戏编程思路 游戏代码详解 主函数 游戏菜单函数 游戏逻辑函数 初始化棋盘 打印棋盘 玩家下棋 电脑下棋 判断输赢 完整代码 test.c game_chess.c gam ...

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

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

  7. 使用C语言编写三子棋小游戏

    使用C语言编写三子棋小游戏: 首先进行分析: 1.需要将游戏实现分为三个部分:头文件,函数功能实现,游戏组合测试. 2.游戏可以循环进行,不必多次打开,可采用 do...while循环结构. 3.游戏 ...

  8. C语言实现三子棋游戏 代码+思路+电脑下棋算法

    C语言实现三子棋游戏 代码+思路+电脑下棋算法 重点: 当检测到电脑已经两子连续时,将会尝试获得胜利. 在检测到玩家即将胜利(连城两子)时,进行拦截 尝试胜利的优先级高于拦截,意味着如果玩家不能再下一 ...

  9. 用C语言实现三子棋小游戏(C语言菜单创建--设置光标,隐藏光标)

    文章目录 前言 一.菜单设置 二.三子棋游戏 1.各部分代码 2.运行结果 总结 前言 本文主要用C语言实现三子棋(简易版)小游戏,同时介绍C语言中的菜单设置. 一.菜单设置 我们在C语言中设置菜单一 ...

最新文章

  1. DarkTrack 4 Alien Version Released RAT 下载地址视频教程
  2. el-image中src加载assets路径下图片使用require避免加载不到
  3. 《阿里云SRE技术期刊》2020年10月【电子版】
  4. python温度转换代码分析_Python温度转换实例分析
  5. Java自动类型转换和强制类型转换
  6. 2015中缀表达式转化为后缀表达式(C++,附思路,注释多)
  7. chinaunix-索引资料
  8. Ubuntu系统下允许Apache的mod_rewrite功能
  9. javascript return
  10. 图片颜色和相机的一些基本知识
  11. Redis持久化 - 邱乘屹的个人技术博客
  12. Android - 跳转系统网络设置
  13. 操作系统-程序执行时间分析
  14. Winform多选树
  15. serviceBattery mac换电池 mac怎么换电池mac拆机
  16. nginx 之 http 转 https (两种方式)
  17. 【拼多多】新手卖家的启蒙贴 ,如何快乐的做图,快乐的开店
  18. IAP 程序 跳转问题
  19. EurekaServer这几个错误 你可以这样解决
  20. python递归解压文件_递归调用解压zip包或rar包

热门文章

  1. vue-devtools\shells\chrome 错误 无法为内容脚本加载 JavaScript“build/hook.js”。 无法加载清单。
  2. Fastreport.Net用户手册(七):Bands
  3. 选购手机时,运行内存和处理器先考虑哪个?来说说你的观点
  4. android switch 未定义,源生Switch控件在Android4.4无法显示?
  5. 用React-Native+Mobx做一个迷你水果商城APP
  6. OneKeyGhost工具进行备份还原windows操作系统
  7. mysql数据库的两种备份方式(mysqldump,XBK)超详细
  8. springboot启动源码分析3-环境配置
  9. 使用浏览器自带打印功能,去除页眉页脚,横屏打印等
  10. PHP类实例教程(二十):PHP类接口的实现接口