c语言五子棋卡死,C语言五子棋
代码新手,不足之处请多多指教
1.[代码][C/C++]代码
#define _CRT_SECURE_NO_WARNING
#include
#include
#include
#include
void startmap(wchar_t a[22][22]);
void mapout(wchar_t a[22][22]);
void downW(wchar_t a[22][22]);
void downB(wchar_t a[22][22]);
int judgeW(wchar_t a[22][22]);
int judgeB(wchar_t a[22][22]);
void main()
{
char ans;
/*int num = 1;
char tit[100] = { 0 };
char tth[50] = "五子棋,第";
char tte[50] = "局";*/
setlocale(LC_ALL, "chs");
RE: /*sprintf_s(tit, "%s%d%s",tth, num,tte);*/
system("title 五子棋");
wchar_t a[22][22];
int res = 1;
startmap(a);
do
{
mapout(a);
downW(a);
mapout(a);
res = judgeW(a);
if (res == 0)
break;
downB(a);
mapout(a);
res = judgeB(a);
if (res == 0)
break;
}
while (res);
printf("%p", &ans);
puts("是否重新开始?(Y/N)");
//scanf_s("%c", &ans);
fflush(stdin);
ans = getchar();
fflush(stdin);
if (ans == 'Y'||ans=='y')
{
goto RE;
//num++;
}
system("pause");
}
void startmap(wchar_t a[22][22])
{
a[0][0] = L'┌';
a[21][0] = L'└';
a[0][21] = L'┐';
a[21][21] = L'┘';
for (int j = 1; j < 21; j++)
{
a[0][j] = L'┬';
}
for (int j = 1; j < 21; j++)
{
a[j][0] = L'├';
}
for (int j = 1; j < 21; j++)
{
a[j][21] = L'┤';
}
for (int j = 1; j < 21; j++)
{
a[21][j] = L'┴';
}
for (int i = 1; i < 21; i++)
{
for (int j = 1; j < 21; j ++)
{
a[i][j] = L'┼';
}
}
}
void mapout(wchar_t a[22][22])
{
printf(" ");
for (int i = 0; i < 22; i++)
printf("%2d", i);
printf("\n");
for (int i = 0; i < 22; i++)
{
printf("%2d", i);
for (int j = 0; j < 22; j ++)
{
wprintf(L"%wc", a[i][j]);
}
printf("\n");
}
}
void downB(wchar_t a[22][22])
{
int x, y;
DOWNB:puts("黑x=");
scanf_s("%d",&x);
puts("黑y=");
scanf_s("%d", &y);
if (a[x][y] == L'○' || a[x][y] == L'●' || x<1 || x>20 || y<1 || y>20)
{
printf("下错地方了,智障,重来\n");
goto DOWNB;
}
a[x][y] = L'○';
}
void downW(wchar_t a[22][22])
{
int x, y;
DOWNW:puts("白x=");
scanf_s("%d", &x);
puts("白y=");
scanf_s("%d", &y);
if (a[x][y] == L'○' || a[x][y] == L'●' || x<1 || x>20 || y<1 || y>20)
{
printf("下错地方了,智障,重来\n");
goto DOWNW;
}
a[x][y] = L'●';
}
int judgeB(wchar_t a[22][22])
{
int count = 1;
wchar_t(*p)[22] = strchr(a, L'○');
//检查行
for (int i = 1; *(*p + i) == L'○'; i++)
count++;
if (count == 5)
{
puts("游戏结束,黑方胜!");
return 0;
}
else if (count > 5)
{
puts("禁手");
}
//检查列
count = 1;
for (int i = 1; *(*(p + i)) == L'○'; i++)
count++;
if (count == 5)
{
puts("游戏结束,黑方胜!");
return 0;
}
else if (count > 5)
{
puts("禁手");
}
//检查正斜边
count = 1;
for (int i = 1; *(*(p + i)+i) == L'○'; i++)
count++;
if (count == 5)
{
puts("游戏结束,黑方胜!");
return 0;
}
else if (count > 5)
{
puts("禁手");
}
//检查反斜边
count = 1;
for (int i = 1; *(*(p - i)-i) == L'○'; i++)
count++;
if (count == 5)
{
puts("游戏结束,黑方胜!");
return 0;
}
else if (count > 5)
{
puts("禁手");
}
return 1;
}
int judgeW(wchar_t a[22][22])
{
int count = 1;
wchar_t(*p)[22] = strchr(a, L'●');
//检查行
for (int i = 1; *(*p + i) == L'●'; i++)
count++;
if (count == 5)
{
puts("游戏结束,白方胜!");
return 0;
}
else if (count > 5)
{
puts("禁手");
}
//检查列
count = 1;
for (int i = 1; *(*(p + i)) == L'●'; i++)
count++;
if (count == 5)
{
puts("游戏结束,白方胜!");
return 0;
}
else if (count > 5)
{
puts("禁手");
}
//检查正斜边
count = 1;
for (int i = 1; *(*(p + i) + i) == L'●'; i++)
count++;
if (count == 5)
{
puts("游戏结束,白方胜!");
return 0;
}
else if (count > 5)
{
puts("禁手");
}
//检查反斜边
count = 1;
for (int i = 1; *(*(p - i) - i) == L'●'; i++)
count++;
if (count == 5)
{
puts("游戏结束,白方胜!");
return 0;
}
else if (count > 5)
{
puts("禁手");
}
return 1;
}
2.[图片] QQ图片20160524103607.png
3.[图片] QQ图片20160524103611.png
c语言五子棋卡死,C语言五子棋相关推荐
- go语言 mysql卡死,Go语言MySQL优化
在使用go操作MySQL的时候,不知道为什么特别的慢,大概插入每条数据需要10ms的时间,如果是1w条数据,那么就需要100s(1m40s),这个速度是不能够接受的. 查了一些资料之后,是我在连接数据 ...
- 用c语言做一个五子棋程序,C语言制作简单五子棋游戏
原标题:C语言制作简单五子棋游戏 C语言制作简单的五子棋游戏 学习C语言的人很多,但是用C语言很少,而用来为自己所用,来做游戏的人就更少了,很多人都是跟着学校学习,学校讲到哪就坐到哪,但是以后却还是不 ...
- 简单五子棋游戏c语言简单,C语言制作简单的五子棋游戏
原标题:C语言制作简单的五子棋游戏 C语言制作简单的五子棋游戏 学习C语言的人很多,但是用C语言很少,而用来为自己所用,来做游戏的人就更少了,很多人都是跟着学校学习,学校讲到哪就坐到哪,但是以后却还是 ...
- easyx游戏编程:五子棋(C语言游戏开发)
easyx游戏编程:五子棋(C语言游戏开发) 五子棋: 本游戏用到了图形界面库graphics.h,图形界面库下载安装: 下载链接: https://easyx.cn/downloads/. 下方有源 ...
- c语言程序设计五子棋论文,C语言程序设计 课程设计(论文) 五子棋游戏
内容简介: C语言程序设计 课程设计(论文) 五子棋游戏,正文共21页,4231字. 目 录 第1章 课程设计的目的与要求1 1.1 课程设计目的1 1.2 课程设计的实验环境1 1.3 课程设计的预 ...
- 游戏五子棋(c语言)
游戏五子棋(c语言) 一.项目背景 二.设计目的 三.项目功能需求 1.欢迎界面 2.下棋操作 3.重玩功能 4.悔棋功能 5.胜负判断 四.系统的功能结构图 五.功能模块介绍 1.用户界面模块 2. ...
- 五子棋c语言策划书活动内容,五子棋活动策划书.docx
五子棋活动策划书 五子棋活动策划书 篇一:五子棋比赛策划案 十五号楼五子棋比赛策划案 一.活动简介: 五子棋是科学.文化.艺术.竞技融为一体的智力体育项目,有助于学生智力开发,逻辑思维和想象能力的培养 ...
- 【C语言】通过C语言实现简单的三子棋
[C语言]通过C语言实现简单的三子棋 文章目录 [C语言]通过C语言实现简单的三子棋 前言 一.本次小小小小项目前提 二.游戏简易菜单 1.菜单打印 2.游戏菜单的逻辑执行 三.三子棋游戏 1.初始化 ...
- r语言 断轴 画图_R语言基础画图/绘图/作图
R语言基础画图 R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介绍. 0 结构 每种图形构成 ...
最新文章
- mysql 搜索标题中字符串_如何在MySQL表中搜索特定字符串?
- 今日arXiv精选 | 29篇顶会论文:ACM MM/ ICCV/ CIKM/ AAAI/ IJCAI
- JMM 是如何解决 可见性有序性问题的
- 防火等级不达标!索尼宣布召回中国大陆地区部分充电宝 可免费换新
- 中英文对照 —— 色彩的描述
- Sketch技巧:快速复制图形
- PHP中cookies跨目录无法调用解决办法
- 卡尔曼滤波算法bms c语言,一种利用扩展卡尔曼滤波算法估算锂电池SOC的方法与流程...
- 推荐算法架构3:精排
- Tableau安装详解及密钥申请
- JS之BigNumber.js 讲解
- iOS 5 故事板入门(4)
- tinymce移动端使用_中小站长该如何做好移动端SEO优化
- jquery常用方法之siblings方法
- 【PAT B1015】德才论 (c语言)//答案正确
- 高德地图地理编码和逆地理编码,以及逆地理编码的时候如何去掉省、市、镇
- jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等
- C语言文件——从创建到删除
- 没有项目经验?软件测试简历项目经验怎么写...
- javascript 中文转拼音