代码新手,不足之处请多多指教

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语言五子棋相关推荐

  1. go语言 mysql卡死,Go语言MySQL优化

    在使用go操作MySQL的时候,不知道为什么特别的慢,大概插入每条数据需要10ms的时间,如果是1w条数据,那么就需要100s(1m40s),这个速度是不能够接受的. 查了一些资料之后,是我在连接数据 ...

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

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

  3. 简单五子棋游戏c语言简单,C语言制作简单的五子棋游戏

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

  4. easyx游戏编程:五子棋(C语言游戏开发)

    easyx游戏编程:五子棋(C语言游戏开发) 五子棋: 本游戏用到了图形界面库graphics.h,图形界面库下载安装: 下载链接: https://easyx.cn/downloads/. 下方有源 ...

  5. c语言程序设计五子棋论文,C语言程序设计 课程设计(论文) 五子棋游戏

    内容简介: C语言程序设计 课程设计(论文) 五子棋游戏,正文共21页,4231字. 目 录 第1章 课程设计的目的与要求1 1.1 课程设计目的1 1.2 课程设计的实验环境1 1.3 课程设计的预 ...

  6. 游戏五子棋(c语言)

    游戏五子棋(c语言) 一.项目背景 二.设计目的 三.项目功能需求 1.欢迎界面 2.下棋操作 3.重玩功能 4.悔棋功能 5.胜负判断 四.系统的功能结构图 五.功能模块介绍 1.用户界面模块 2. ...

  7. 五子棋c语言策划书活动内容,五子棋活动策划书.docx

    五子棋活动策划书 五子棋活动策划书 篇一:五子棋比赛策划案 十五号楼五子棋比赛策划案 一.活动简介: 五子棋是科学.文化.艺术.竞技融为一体的智力体育项目,有助于学生智力开发,逻辑思维和想象能力的培养 ...

  8. 【C语言】通过C语言实现简单的三子棋

    [C语言]通过C语言实现简单的三子棋 文章目录 [C语言]通过C语言实现简单的三子棋 前言 一.本次小小小小项目前提 二.游戏简易菜单 1.菜单打印 2.游戏菜单的逻辑执行 三.三子棋游戏 1.初始化 ...

  9. r语言 断轴 画图_R语言基础画图/绘图/作图

    R语言基础画图 R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介绍. 0 结构 每种图形构成 ...

最新文章

  1. mysql 搜索标题中字符串_如何在MySQL表中搜索特定字符串?
  2. 今日arXiv精选 | 29篇顶会论文:ACM MM/ ICCV/ CIKM/ AAAI/ IJCAI
  3. JMM 是如何解决 可见性有序性问题的
  4. 防火等级不达标!索尼宣布召回中国大陆地区部分充电宝 可免费换新
  5. 中英文对照 —— 色彩的描述
  6. Sketch技巧:快速复制图形
  7. PHP中cookies跨目录无法调用解决办法
  8. 卡尔曼滤波算法bms c语言,一种利用扩展卡尔曼滤波算法估算锂电池SOC的方法与流程...
  9. 推荐算法架构3:精排
  10. Tableau安装详解及密钥申请
  11. JS之BigNumber.js 讲解
  12. iOS 5 故事板入门(4)
  13. tinymce移动端使用_中小站长该如何做好移动端SEO优化
  14. jquery常用方法之siblings方法
  15. 【PAT B1015】德才论 (c语言)//答案正确
  16. 高德地图地理编码和逆地理编码,以及逆地理编码的时候如何去掉省、市、镇
  17. jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等
  18. C语言文件——从创建到删除
  19. 没有项目经验?软件测试简历项目经验怎么写...
  20. javascript 中文转拼音

热门文章

  1. python写二分法_Python实现二分法和黄金分割法
  2. 自寅舍得分享:WiFi万能钥匙自媒体入驻攻略!
  3. java使用poi绘制折线图和饼图(用数据绘制和使用excel生成的表格数据)
  4. openlayers 绘制圆形头像图标
  5. 深入浅出C++左值引用,右值引用,移动语义。
  6. Windows系统任务栏应用图标显示成白色方块解决办法
  7. 【办公软件】PS去掉图片中多余线条的方法
  8. 三, Spark 四种运行环境配置总结
  9. KuickDeal助力文都教育实现智能获客销售
  10. 破坏之王-DDoS攻击与防范深度剖析