game.h 文件

#ifndef __GAME_H__
#define __GAME_H__enum OPTION
{EXIT,PLAY
};#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>#define ROWS 5
#define COLS 5void init_board(char board[ROWS][COLS], int row, int col);
void display_board(char board[ROWS][COLS], int row, int col);
void player_move(char board[ROWS][COLS], int row, int col);
void computer_move(char board[ROWS][COLS], int row, int col);
static int is_full(char board[ROWS][COLS], int row, int col);
char check_win(char board[ROWS][COLS], int row, int col);#endif

game.c 文件

#include "game.h"void init_board(char board[ROWS][COLS], int row, int col)
{memset(board, ' ', col*row*sizeof(board[0][0]));
}
void display_board(char board[ROWS][COLS], int row, int col)
{int i = 0;for (i=0; i<row; i++){printf ("%c | %c| %c| %c|%c\n",board[i][0],board[i][1],board[i][2],board[i][3],board[i][4]);if(i != 4)printf ("--|--|--|--|--\n");}
}
void player_move(char board[ROWS][COLS], int row, int col)
{int x = 0;int y = 0;while(1){ printf ("到你了哦!请输入坐标:");scanf("%d%d", &x, &y);x--;y--;if (((x>=0)&&(x<row)&&(y>=0)&&(y<col))){if (board[x][y] == ' '){board[x][y] = '@';break;}else{printf ("输入错误,请重新输入!");}}else{printf ("输入错误,请重新输入!");}}
}void computer_move(char board[ROWS][COLS], int row, int col)
{while(1){int x = rand()%row;int y = rand()%col;if (board[x][y] == ' '){board[x][y] = '*';break;} }printf ("应该到电脑走了!\n");
}static int is_full(char board[ROWS][COLS], int row, int col)
{int i = 0;int j = 0;for (i=0; i<row; i++){for (j=1; j<col; j++){if (board[i][j] == ' ')return 0;}}return 1;
}char check_win(char board[ROWS][COLS], 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][2]==board[i][3])&&(board[i][3]==board[i][4])  &&(board[i][4]!=' '))return board[i][1]; }for (i=0; i<col; i++){if ((board[0][i]==board[1][i])&&(board[1][i]==board[2][i])&&(board[2][i]==board[3][i])&&(board[3][i]==board[4][i]) &&(board[4][i]!=' '))return board[1][i]; }if ((board[0][0]==board[1][1])&&(board[1][1]==board[2][2])&&(board[2][2]==board[3][3])&&(board[3][3]==board[4][4]) &&(board[4][4]!=' '))return board[1][1]; if ((board[0][4]==board[1][3])&&(board[1][3]==board[2][2])&&(board[2][2]==board[3][1])&&(board[3][1]==board[4][0])  &&(board[4][0]!=' '))return board[1][1];  if (is_full(board,row,col)){return 'q';}return ' ';
}

test.c文件

#include "game.h"void game ()
{char board[ROWS][COLS] = {0};char ret = 0;init_board(board, ROWS, COLS);display_board(board, ROWS, COLS);srand((unsigned int)time(NULL));while (1){player_move(board, ROWS, COLS);if ((ret = check_win(board, ROWS, COLS))!= ' ')break;/*if ((check_win(board, ROWS, COLS)) != ' '){ret = check_win(board, ROWS, COLS);break;}*/display_board(board, ROWS, COLS);computer_move(board, ROWS, COLS);if ((ret = check_win(board, ROWS, COLS))!= ' ')break;/*if ((check_win(board, ROWS, COLS)) != ' '){ret = check_win(board, ROWS, COLS);break;}*/display_board(board, ROWS, COLS);}if(ret == '@'){printf ("真厉害,恭喜你赢了\n");}else if(ret == '*'){printf ("呵呵!真遗憾!\n");}else if(ret == 'q'){printf ("平局\n");}display_board(board, ROWS, COLS);
}void menu()
{printf ("**********欢迎进入五子棋游戏***********\n");printf ("***************记得选择哦**************\n");printf ("***********(1.play  0.exit)**********\n");printf ("**************祝您玩的愉快*************\n");
}int main ()
{int input = 0;do{menu();printf ("请选择^_^:");scanf("%d",&input);switch(input){case 1:game ();break;case 0:break;default:printf("选择错误\n");break;}}while(input);return 0;
}

来让我们一起玩一下游戏吧!

玩家赢了哦^_^

很遗憾,电脑赢了

哎呀,平局了哦

五子棋 (用C语言编写五子棋游戏)相关推荐

  1. 用c语言编写的打字母游戏,用C语言编写小游戏——“井字棋”

    原标题:用C语言编写小游戏--"井字棋" 作者:Milo Yip 来源:知乎 原文链接:https://zhuanlan.zhihu.com/p/39581573 在 Milo Y ...

  2. C语言编写扫雷游戏,超简单

    C语言编写扫雷游戏,超简单 1.扫雷游戏的流程 2.代码编写 3.总结 通过学习C语言的基础知识,基本上是理解了大部分内容,现在就通过所学的知识,写个简单的扫雷游戏,加深对基础知识的理解,正所谓实践是 ...

  3. 如何用c语言编写军旗游戏

    今天教大家如何用C语言编写军旗游戏 ~ 1.效果图: 2.主要代码: #include <graphics.h> #include <time.h>#define CHESIZ ...

  4. c语言编写五子棋报告,c语言报告五子棋.pdf

    C 语言课程设计报告 c 题目: 简单的 五子棋 设计者: 方阳 专业班级: 软件工程1303班 学号: 311309060324 指导老师: 刘洁 所属系部: 计算机学院 2014年6月25 日 河 ...

  5. 【C++FunCode】基于Funcode使用C++语言编写小游戏(小鲨鱼历险记)

    一.前言 大一暑假参加了山东省软件设计大赛,基于FunCode平台使用C++语言编写了大鱼吃小鱼游戏,其美名曰小鲨鱼历险记,哈哈.比赛成绩惨烈,只拿了一个省三,赛后也进行了分析总结,主要还是太不重视比 ...

  6. 用C语言编写2048游戏

    2048_C_code 用C语言编写的2048 1 要实现我们的 2048 小游戏,需要涉及一些数据结构的知识,以及一些 Linux 的系统调用.此外,为了方便在屏幕上使用字符绘图,我们还需要使用一个 ...

  7. 用c语言编写最大最小值_C语言学习教程,用C语言编写扫雷游戏

    本文实例为大家分享了C语言实现扫雷游戏及其优化的具体代码,供大家参考,具体内容如下 关于扫雷优化 1.核心思想:使用两个二维数组进行设计,一个用于显示,一个用于后台雷的布置. 2.使用宏常量,后期可以 ...

  8. c++扫雷游戏代码_C语言学习教程,用C语言编写扫雷游戏

    本文实例为大家分享了C语言实现扫雷游戏及其优化的具体代码,供大家参考,具体内容如下 关于扫雷优化 1.核心思想:使用两个二维数组进行设计,一个用于显示,一个用于后台雷的布置. 2.使用宏常量,后期可以 ...

  9. python语言编写五子棋小游戏

    摘要 这是我基于pygame库做个一个五子棋小游戏,通过上网学习pygame库内的具体函数,以及一些前辈的指导.在这里我们需要绘画棋盘,棋子.棋盘直接调用pygame库中的draw.lines()函数 ...

  10. c语言编写五子棋小游戏ppt,C语言实现简单五子棋小游戏

    五子棋简单功能实现,供大家参考,具体内容如下 游戏功能演示 代码如下: #include #include #include #include // 棋盘 char board[15][15]; // ...

最新文章

  1. Scipy 基础 —— 稀疏矩阵
  2. 帆软参数面板根据选择项type显示和隐藏参数项(或${if()}在SQL中的用法)根据条件动态显示参数控件
  3. lnmp一键安装包 mysql_lnmp一键安装包搭建lnmp环境
  4. 技术面试(一)认识技术面试
  5. IP地址及其分类(A、B、C类)
  6. 2022-2027年中国建筑施工机械租赁市场规模预测及投资战略咨询报告
  7. SO逆向之x博国际版登陆分析
  8. 蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)
  9. ASMEDIA祥硕 PCIe与SATA控制芯片
  10. 国内大陆有哪些芯片公司处于世界前10?一起看看!
  11. c语言中换行符与回车符的区别,C语言中换行符与回车符的区别
  12. 完美世界预告2021中期业绩:近三年游戏年复合增长约20%
  13. .net 学习路线感想(转)
  14. windows jdk1.7安装
  15. 开源网校系统源码小讲堂
  16. 骁龙820A:座舱域控制器介绍
  17. Excel一键删除工作表中杂乱无章的所有照片
  18. angular安装卸载
  19. C#调用非托管DLL--[1]基本步骤
  20. 车辆智能管理车载终端\商用车信息化管理智能车载终端tbox4G车联网OBD终端、中山迈易科技车载终端解决方案

热门文章

  1. MySQL 5.7-8.9.3 Optimizer Hints(优化器提示)
  2. mysql 钩子函数_Flask钩子函数是什么
  3. MySQL定时任务(每天凌晨3点钟执行)
  4. 双人五子棋设计(TCP联网版)
  5. 关于使用一个5升容器和一个6升容器量出3升水的一点解决办法
  6. 基于YoloV3-tiny训练自己的模型的坑,图像识别效果不错而视频识别效果极差
  7. 00002 贪婪洞窟.003.5:地牢商店
  8. spring 配置sqlite的方式
  9. sqli-labs实战记录(四)
  10. 微信小程序获取openid、sessionKey