用C语言代码编写一个五子棋小游戏
五子棋:
需要的数据:
1、定义一个1515的棋盘
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语言代码编写一个五子棋小游戏相关推荐
- 基于c++EGE图形库编写的五子棋小游戏
基于c++EGE图形库编写的五子棋小游戏 EGE图形库 新手推荐使用 EGE(Easy Graphics Engine),是windows下的简易绘图库,是一个类似BGI(graphics.h)的面向 ...
- Java编写的五子棋小游戏
看书的时候看到一个不完整的Java编写的一个五子棋小游戏,为了恢复一下编程能力刚刚把这个小程序完成了. 实现的功能很简单,两人对下五子棋,程序自动回判断输赢.在ubuntu下搞得,没有装什么高端的输入 ...
- c语言课程设计作业五子棋,C语言课程设计之五子棋小游戏.doc
C语言课程设计之五子棋小游戏.doc C语言课程设计 题目名称:五子棋小游戏 氺氺木木木 专 业计算机类 班 级 *班 指导教师J22 编写日期2016.05.26 目录 TOC \o "1 ...
- 请用python编写一个斗地主小游戏,并给出完整代码
很高兴为您服务!这是一个使用Python编写的斗地主小游戏的完整代码:# 导入必备模块 import random# 定义一副牌 poker = ['A', 2, 3, 4, 5, 6, 7, 8, ...
- python五子棋代码_python实现五子棋小游戏
本文实例为大家分享了python实现五子棋小游戏的具体代码,供大家参考,具体内容如下 暑假学了十几天python,然后用pygame模块写了一个五子棋的小游戏,代码跟有缘人分享一下. import n ...
- 用Java写一个五子棋小游戏
棋盘是15*15(可以自己规定) 游戏规则: (1)对局双方各执一色棋子. (2)空棋盘开局. (3)黑先.白后,交替下子,每次只能下一子. (4)棋子下在棋盘的空白点上,棋子下定后,不得向其它点移动 ...
- C语言制作一个五子棋小游戏【附代码】
目录 五子棋游戏设计与实现 1.1 系统开发思路(需求分析) 1.2 系统功能设计 1.3 系统详细设计 1.3.1数据结构设计 1.4 系统实现 1.5 系统测试 五子棋游戏设计与实现 1.1 系统 ...
- 利用c++编写一个养成类小游戏
根据b站up主"老九学堂"c++教程"小公主养成记"并结合所学编出一个小游戏: 目前仅结合了:数组.if语句.随机数.三目运算符.for循环.goto语句.设置 ...
- c语言编写atm取款功能_21行C语言代码编写一个具备加密功能的聊天程序!网友:666...
具备加密功能的VC++聊天程序实例,"密聊"采用 2048bit 的 RSA 数据加密算法对数据进行加密和数字签名,在使用前必须生成用户的私钥和公钥. 只要通过安全通道相互把公钥传 ...
最新文章
- android7.1 动态申请权限改为默认授权,修改PackageManagerService.java下的grantPermissions为true
- MET 3P5: 工业工程
- 多项式的ln、exp、快速幂和开根学习小记
- linux实用的脚本:xcall(同步执行命令)与xsync(同步文件目录)
- 手机照片导入电脑步骤_如何将手机中的照片、视频快速的保存到U盘上?3分钟教你详细步骤...
- 华为云GaussDB专家走进课堂,跟莘莘学子聊聊数据库
- matlab求两向量夹角_Matlab-自动化控制系统设计4频域分析
- 页面图片中间有条线----解决
- PhpStorm快捷方式
- 如何更改mssq,SSAS l代理运行身份验证
- 使用DAEMON Tools Ultra制作Ubuntu启动U盘全过程(含图文)
- lisp如何将度分秒转换为弧度_1/16怎么转换成角度(度分秒)??
- DeepSORT的改进
- 洛谷P2440 木材加工 —二分答案
- JVM、JDK、JRE分别表示什么含义
- 乐吾乐2D可视化绘图引擎
- 城市区域二手房信息python爬取、保存和初步分析—笔记
- AX4.0 SP2本地化的问题---汇兑损益报表打印
- 如何理解DevOps
- 南京中兴软创,南京焦点科技
热门文章
- HDS相关(二)之具有Flash Access保护的HTTP Dynamic Streaming
- Java8与游戏开发(一)
- 用Rasa NLU构建自己的中文NLU系统
- 谷歌提示Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute
- 机器学习算法---神经网络
- android studio gradle 下载失败万能解决方案
- IDEA的主题样式20种
- HDFS Truncate文件截断
- 系统开发系列 之MyEclipse创建WebService详细教程和调用教程(spring框架+maven+CXF框架)
- REDHAT7 安装NTP服务