该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include #include #include #include #define MAXIMUS 15 //定义棋盘大小int p[MAXIMUS][MAXIMUS];//存储对局信息char buff[MAXIMUS*2+1][MAXIMUS*4+3];//输出缓冲器int Cx,Cy;//当前光标位置int Now;//当前走子的玩家,1代表黑,2代表白int wl,wp;//当前写入缓冲器的列数和行数位置char* showText;//在棋盘中央显示的文字信息int count;//回合数char* Copy(char* strDest,const char* strSrc)//修改过的字符串复制函数,会忽略末端的\0{char* strDestCopy = strDest;while (*strSrc!='\0'){*strDest++=*strSrc++;}return strDestCopy;}void Initialize()//初始化一个对局函数{int i,j;//循环变量showText="";//重置显示信息count=0;//回合数归零for(i=0;i0&&p[Cx][Cy-i]==Now)w++;else break;//向上检查if(w>=5)return Now;//若果达到5个则判断当前走子玩家为赢家for(i=1;i<5;i++)if(Cx+i0&&p[Cx-i][Cy]==Now)x++;else break;//向左检查if(x>=5)return Now;//若果达到5个则判断当前走子玩家为赢家for(i=1;i<5;i++)if(Cx+i0&&Cy-i>0&&p[Cx-i][Cy-i]==Now)y++;else break;//向左上检查if(y>=5)return Now;//若果达到5个则判断当前走子玩家为赢家for(i=1;i<5;i++)if(Cx+i0&&p[Cx+i][Cy-i]==Now)z++;else break;//向右上检查for(i=1;i<5;i++)if(Cx-i>0&&Cy+i=5)return Now;//若果达到5个则判断当前走子玩家为赢家return 0;//若没有检查到五连珠,则返回0表示还没有玩家达成胜利}int RunGame()//进行整个对局,返回赢家信息(虽然有用上){int input;//输入变量int victor;//赢家信息Initialize();//初始化对局while(1){//开始无限回合的死循环,直到出现胜利跳出Print();//打印棋盘input=getch();//等待键盘按下一个字符if(input==27)//如果是ESC则退出程序{exit(0);}else if(input==0x20)//如果是空格则开始走子{if(Put())//如果走子成功则判断胜负{victor=Check();Now=3-Now;//轮换当前走子玩家count++;if(victor==1)//如果黑方达到胜利,显示提示文字并等待一次按键,返回胜利信息{showText="黑方获得了胜利!";Print();if(getch()==0xE0){getch();}return Now;}else if(victor==2)//如果白方达到胜利,显示提示文字并等待一次按键,返回胜利信息{showText="白方获得了胜利!";Display();if(getch()==0xE0){getch();}return Now;}else if(count==MAXIMUS*MAXIMUS)//如果回合数达到了棋盘总量,即棋盘充满,即为平局{showText="平局!";Display();if(getch()==0xE0){getch();}return 0;}}}else if(input==0xE0)//如果按下的是方向键,会填充两次输入,第一次为0xE0表示按下的是控制键{input=getch();//获得第二次输入信息switch(input)//判断方向键方向并移动光标位置{case 0x4B://Cx--;break;case 0x48:Cy--;break;case 0x4D:Cx++;break;case 0x50:Cy++;break;}if(Cx<0)Cx=MAXIMUS-1;//如果光标位置越界则移动到对侧if(Cy<0)Cy=MAXIMUS-1;if(Cx>MAXIMUS-1)Cx=0;if(Cy>MAXIMUS-1)Cy=0;}}}int main()//主函数{system("title 五子棋 ");//设置标题system("mode con cols=63 lines=32");//设置窗口大小//system("color E0");//设置颜色while(1){//循环执行游戏RunGame();}}

c语言五子棋卡死,五子棋程序出错了相关推荐

  1. 程序员最痛苦的事,就是程序出错;程序员最最痛苦的事,就是程序出错了还没有错误信息!--IIS Service Unavailable 问题如何解决...

    今天有人问如何处理IIS网站出现"Service Unavailable"的情况. 在网上google了一下,导致这个出错的原因很多,而"Service Unavaila ...

  2. 最短路径问题matlab作图,[MATLAB基础] matlab最短路径的输出问题,用了递归,但程序出错了,请大虾指点...

    matlab最短路径的输出问题,用了递归,但程序出错了,请大虾指点 程序如下 function shortestpath(w,p,q) c='->'; l=''; f=''; t=size(w) ...

  3. c语言字符串出现屯,这段C语言的 读文件哪里出错了???为什么读出来的是“屯屯屯屯屯。。。。”...

    满意答案 加一行代码: fseek(f, 0, SEEK_SET); 你写好文件后,没有关闭,那么文件指针在最后一个位置,那你在读的时候肯定就是从末尾啊,所以是随机字符,就像你说的乱码样. 故不用fs ...

  4. c语言课程设计作业五子棋,C语言课程设计-五子棋双人对战程序

    C语言课程设计-五子棋双人对战程序 C语言课程设计-五子棋双人对战程序|c语言程序代码编程小程序设计|c语言课程设计报告课程案例 /*      本程序在Turbo C或Borland C下编译通过  ...

  5. vc6.0c语言五子棋程序,哪位大虾可以给我个VC6.0下用C语言编的五子棋,要有流程图...

    五子棋 代码 VC6.0 qq_29018467112015-06-14 五子棋 (用C语言编写五子棋游戏) rannianzhixia170392017-04-20 基于easyx图形的五子棋游戏 ...

  6. 用c语言做一个五子棋程序,C语言制作简单五子棋游戏

    原标题:C语言制作简单五子棋游戏 C语言制作简单的五子棋游戏 学习C语言的人很多,但是用C语言很少,而用来为自己所用,来做游戏的人就更少了,很多人都是跟着学校学习,学校讲到哪就坐到哪,但是以后却还是不 ...

  7. 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)

    使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置 jdk-15.0.1-免配置路径版 提取码:earu 免 ...

  8. C语言实现人机五子棋

    C语言实现人机五子棋 游戏效果预览: 百度云盘:链接:https://pan.baidu.com/s/1Ftun17GMOWwT2u0qk0TNdA 密码:3c1p 接触C语言刚好一年了,也步入了大二 ...

  9. 一个使用纯Win32 SDK和C语言实现的五子棋游戏

    引言:GobangGame 这是一个使用纯Win32 SDK和C语言实现的五子棋游戏 在这个游戏中实现的功能 [x] 绘制一个15 * 15的棋盘 [x] 绘制5个着重点位置 [x] 根据鼠标左键的点 ...

最新文章

  1. y430p linux无线网卡,centOS7.5安装BCM43142无线网卡驱动(如,联想Y430P)
  2. 细节:解析XML文档和XML字符串
  3. c语言中的字符串总是以,C语言字符串的结束标志是什么?
  4. difference between SAP UI5 RTL false and true - set breakpoint to change behavior
  5. (二十一)TCPIP面试宝典-进入大厂必备总结(下)
  6. c++虚函数和虚函数表
  7. oracle 10g分区表,oracle10g--11gR2分区表汇总四
  8. redis专题:redis的主从、哨兵、集群架构的配置和部署详情、以及问题分析
  9. 云计算作业001-电脑配置
  10. Portal: 强叔侃墙
  11. 接口”安全机制”的设计
  12. 导线平差计算软件的NABCD分析
  13. mysql数据库 添加字段,修改字段,修改注释
  14. Win:从 Microsoft官方网站下载官方正版ISO镜像文件(以Windows10为例,图文教程)
  15. markdown语法中的空格_markdown基本语法
  16. C++ Primer 笔记——IO类
  17. springboot 之 SpringBoot指定额外需要扫描的包
  18. 银行磁条卡即将被淘汰
  19. 操作系统实验Ucore lab8+反馈队列
  20. Ehome/ISUP协议海康设备的主动注册管理

热门文章

  1. C++中c_str的用法
  2. 最渣的 Spring Boot 文章
  3. 如何在Kali Linux中安装Google Chrome浏览器
  4. python中的数据类型,存储,实现
  5. Bash 中的特殊字符大全
  6. [Elasticsearch2.x] 多字段搜索 (三) - multi_match查询和多数字段 译
  7. Python的国际化
  8. php 利用fsockopen GET/POST 提交表单及上传文件
  9. Oracle 创建 split 和 splitstr 函数
  10. 微服务架构:BFF和网关是如何演化出来的?