五子棋:
需要的数据:
1、定义一个15
15的棋盘
2、定义变量用于记录棋子的坐标
3、定义角色变量
业务逻辑:
是否需要对数据进行初始化
for( ; ; )
{
1、刷新屏幕,显示棋盘
2、落子
检查坐标是否合法,该位置不能有棋子
3、检查是否五子连珠
刷新屏幕
是:游戏胜利
4、交换角色
}
5、宣布平局,结束游戏斜体样式*
代码如下图(最后面有完整代码):




#include <stdio.h>
#include <stdbool.h>
#include <getch.h>
#include <stdlib.h>// 定义棋盘
char board[15][15];// 棋子坐标
char key_x = 7,key_y = 7;// 角色
char role = '@';// 初始化棋盘
void init_board(void)
{for(int i=0;i<15;i++){for(int j=0;j<15;j++){board[i][j] = '*';}}
}// 显示棋盘
void show_board(void)
{system("clear");for(int i=0;i<15;i++){for(int j=0;j<15;j++){printf(" %c",board[i][j]);}printf("\n");}
}// 落子
void get_key(void)
{printf("请%c下棋\n",role);for(;;){printf("\33[%hhd;%hhdH",key_x+1,(key_y+1)*2);switch(getch()){case 183:key_x>0 && key_x--;break;    case 184:key_x<14 && key_x++;break;    case 185:key_y<14 && key_y++;break;case 186:key_y>0 && key_y--;break;case 10:if(board[key_x][key_y] == '*'){board[key_x][key_y] = role;return;}}}
}//计算一个方向上有多少个相同的棋子
int count_key(int go_x,int go_y)//0 -1
{int count = 0;for(int x=key_x+go_x,y=key_y+go_y;x>=0 && y>=0 && x<15 && y<15;x+=go_x,y+=go_y){if(role == board[x][y]){count++;}else{break;}}return count;
}// 检查五子连珠
bool check_key(void)
{//左上右下if(count_key(-1,-1) + count_key(1,1) >= 4)return true;if(count_key(-1,1) + count_key(1,-1) >= 4)return true;if(count_key(1,0) + count_key(-1,0) >= 4)return true;if(count_key(0,1) + count_key(0,-1) >= 4)return true;return false;
}int main(int argc,const char* argv[])
{// 初始化棋盘init_board();for(;;){// 显示棋盘show_board();// 落子get_key();// 检查五子连珠if(check_key()){show_board();printf("%c胜利!!!\n",role);return 0;}// 交换角色role = role == '@'?'$':'@';}
}

用C语言代码编写一个五子棋小游戏相关推荐

  1. 基于c++EGE图形库编写的五子棋小游戏

    基于c++EGE图形库编写的五子棋小游戏 EGE图形库 新手推荐使用 EGE(Easy Graphics Engine),是windows下的简易绘图库,是一个类似BGI(graphics.h)的面向 ...

  2. Java编写的五子棋小游戏

    看书的时候看到一个不完整的Java编写的一个五子棋小游戏,为了恢复一下编程能力刚刚把这个小程序完成了. 实现的功能很简单,两人对下五子棋,程序自动回判断输赢.在ubuntu下搞得,没有装什么高端的输入 ...

  3. c语言课程设计作业五子棋,C语言课程设计之五子棋小游戏.doc

    C语言课程设计之五子棋小游戏.doc C语言课程设计 题目名称:五子棋小游戏 氺氺木木木 专 业计算机类 班 级 *班 指导教师J22 编写日期2016.05.26 目录 TOC \o "1 ...

  4. 请用python编写一个斗地主小游戏,并给出完整代码

    很高兴为您服务!这是一个使用Python编写的斗地主小游戏的完整代码:# 导入必备模块 import random# 定义一副牌 poker = ['A', 2, 3, 4, 5, 6, 7, 8, ...

  5. python五子棋代码_python实现五子棋小游戏

    本文实例为大家分享了python实现五子棋小游戏的具体代码,供大家参考,具体内容如下 暑假学了十几天python,然后用pygame模块写了一个五子棋的小游戏,代码跟有缘人分享一下. import n ...

  6. 用Java写一个五子棋小游戏

    棋盘是15*15(可以自己规定) 游戏规则: (1)对局双方各执一色棋子. (2)空棋盘开局. (3)黑先.白后,交替下子,每次只能下一子. (4)棋子下在棋盘的空白点上,棋子下定后,不得向其它点移动 ...

  7. C语言制作一个五子棋小游戏【附代码】

    目录 五子棋游戏设计与实现 1.1 系统开发思路(需求分析) 1.2 系统功能设计 1.3 系统详细设计 1.3.1数据结构设计 1.4 系统实现 1.5 系统测试 五子棋游戏设计与实现 1.1 系统 ...

  8. 利用c++编写一个养成类小游戏

    根据b站up主"老九学堂"c++教程"小公主养成记"并结合所学编出一个小游戏: 目前仅结合了:数组.if语句.随机数.三目运算符.for循环.goto语句.设置 ...

  9. c语言编写atm取款功能_21行C语言代码编写一个具备加密功能的聊天程序!网友:666...

    具备加密功能的VC++聊天程序实例,"密聊"采用 2048bit 的 RSA 数据加密算法对数据进行加密和数字签名,在使用前必须生成用户的私钥和公钥. 只要通过安全通道相互把公钥传 ...

最新文章

  1. android7.1 动态申请权限改为默认授权,修改PackageManagerService.java下的grantPermissions为true
  2. MET 3P5: 工业工程
  3. 多项式的ln、exp、快速幂和开根学习小记
  4. linux实用的脚本:xcall(同步执行命令)与xsync(同步文件目录)
  5. 手机照片导入电脑步骤_如何将手机中的照片、视频快速的保存到U盘上?3分钟教你详细步骤...
  6. 华为云GaussDB专家走进课堂,跟莘莘学子聊聊数据库
  7. matlab求两向量夹角_Matlab-自动化控制系统设计4频域分析
  8. 页面图片中间有条线----解决
  9. PhpStorm快捷方式
  10. 如何更改mssq,SSAS l代理运行身份验证
  11. 使用DAEMON Tools Ultra制作Ubuntu启动U盘全过程(含图文)
  12. lisp如何将度分秒转换为弧度_1/16怎么转换成角度(度分秒)??
  13. DeepSORT的改进
  14. 洛谷P2440 木材加工 —二分答案
  15. JVM、JDK、JRE分别表示什么含义
  16. 乐吾乐2D可视化绘图引擎
  17. 城市区域二手房信息python爬取、保存和初步分析—笔记
  18. AX4.0 SP2本地化的问题---汇兑损益报表打印
  19. 如何理解DevOps
  20. 南京中兴软创,南京焦点科技

热门文章

  1. HDS相关(二)之具有Flash Access保护的HTTP Dynamic Streaming
  2. Java8与游戏开发(一)
  3. 用Rasa NLU构建自己的中文NLU系统
  4. 谷歌提示Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute
  5. 机器学习算法---神经网络
  6. android studio gradle 下载失败万能解决方案
  7. IDEA的主题样式20种
  8. HDFS Truncate文件截断
  9. 系统开发系列 之MyEclipse创建WebService详细教程和调用教程(spring框架+maven+CXF框架)
  10. REDHAT7 安装NTP服务