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

#include

#include

#define m 30

int main (void)

{

int count;//计数器算横纵行的结果

int w,h;

int u;

int l;

int i,size;

int r[m][m] = {0};

int x, y;

int n;

char a[20],b[20];

printf ("请输入棋盘大小n\n");

scanf ("%d", &n);

if (n<=4 || n>m)

{

do

{

printf ("输入的棋盘大小:4

scanf ("%d", &n);

}while (n<=4 || n>m);

}

getchar ();

printf ("请输入玩家1姓名:\n");

gets(a);

printf ("请输入玩家2姓名:\n");

gets(b);

for ( i = 1, size = n*n;i <= size; i++)

{

if (i%2 == 1)

{

do

{

printf ("%s该你下棋了,第%d个棋子\n", a, i);

scanf ("%d%d", &x, &y);

if (x > m || x < 0)

{

do

{

printf ("0<=横坐标<=%d请重新输入横坐标\n", m);

scanf ("%d", &x);

}while (x>m || x<0);

}

if (y > m || y < 0)

{

do

{

printf ("0<=纵坐标<=%d请重新输入纵坐标\n", m);

scanf ("%d", &y);

}while (y < 0 || y > m);

}

}while ((r[x][y] == 1 && (printf ("这个位置上已经有棋子了,请重新输入\n")))|| r[x][y] == 2&& (printf ("这个位置上已经有棋子了,请重新输入\n")) );

r[x][y] = 1;

for (u = 0;u < n; u++)

{

for (l = 0;l < n;l++)

{

count = 0;

for (w = u,h = l;r[w][h] == 1 && h < n; h++)

count++;

if (count == 5)

{

printf ("%s是胜利者\n", a);

goto e;

count = 0;

for (w = u, h = l; r[w][h] == 1 && w < n; w++)

count ++;

if (count == 5)

{

printf ("%s是胜利者\n", a);

goto e;

}

count = 0;

for (w = u,h = l; r[w][h] == 1 && w < n && h

count++;

if (count == 5)

{

printf ("%s是胜利者\n", a);

goto e;

}

count = 0;

for (w =u ,h =l;r[w][h] == 1 && h > 0;h--)

count++;

if (count == 5)

{

printf ("%s是胜利者\n", a);

goto e;

}

}

}}

system("cls");

for (int j = n;j>=0;j--)

{

printf ("%-2d", j);

for (int k = 0;k < n;k++)

{

if (r[k][j] == 0)

printf ("╋");

else if(r[k][j] == 1)

printf ("○");

else if (r[k][j] == 2)

printf ("●"); }

printf ("\n");

}

printf (" ");

for (int k = 0;k < n;k++)

printf ("%-2d", k);

}

else if (i%2 == 0)

{

do

{

printf ("\n%s该你下棋了,第%d个棋子\n", b, i);

scanf ("%d%d", &x, &y);

if (x > m || x < 0)

{

do

{

printf ("0<=横坐标<=%d请重新输入横坐标\n", m);

scanf ("%d", &x);

}while (x>m || x<0);

}

if (y > m || y < 0)

{

do

{

printf ("0<=纵坐标<=%d请重新输入纵坐标\n", m);

scanf ("%d", &y);

}while (y < 0 || y > m);

}

}while ((r[x][y] == 1 && (printf ("这个位置上已经有棋子了,请重新输入\n")))|| r[x][y] == 2&& (printf ("这个位置上已经有棋子了,请重新输入\n")) );

r[x][y] = 2;

system("cls");

for (int j = n;j>=0;j--)

{

printf ("%-2d", j);

for (int k = 0;k < n;k++)

{

if (r[k][j] == 0)

printf ("╋");

else if(r[k][j] == 1)

printf ("○");

else if (r[k][j] == 2)

printf ("●");

}

printf ("\n");

}

printf (" ");

for (int k = 0;k < n;k++)

printf ("%-2d", k); printf ("\n");

count = 0;

for (u = 0;u < n; u++)

{

for (l = 0;l < n;l++)

{

count = 0;

for (w = u,h = l;r[w][h] == 2 && h < n; h++)

count++;

if (count == 5)

{

printf ("%s是胜利者\n", b);

goto e;

}

count = 0;

for (w = u, h = l; r[w][h] == 2 && w < n; w++)

count ++;

if (count == 5)

{

printf ("%s是胜利者\n", b);

goto e;

}

count = 0;

for (w = u,h = l; r[w][h] == 2 && w < n && h

count++;

if (count == 5)

{

printf ("%s是胜利者\n", b);

goto e;

}

count = 0;

for (w =u ,h =l;r[w][h] == 2 && h > 0;h--)

count++;

if (count == 5)

{

printf ("%s是胜利者\n", b);

goto e;

}

}}}}

e: for (int j = n;j>=0;j--)

{

printf ("%-2d", j);

for (int k = 0;k < n;k++)

{

if (r[k][j] == 0)

printf ("╋");

else if(r[k][j] == 1)

printf ("○");

else if (r[k][j] == 2)

printf ("●");

}

printf ("\n");

}

printf (" ");

for (int k = 0;k < n;k++)

printf ("%-2d", k); printf ("\n");

printf ("\a游戏愉快 ,Powered by Techmessager\n");

return 0;

}

用c语言编写五子棋用vs写,c语言写的五子棋人与人对战相关推荐

  1. 小学生数学测试软件编写分析,通过C语言编写小学生数学测试软件C语言课程设计...

    <通过C语言编写小学生数学测试软件C语言课程设计>由会员分享,可在线阅读,更多相关<通过C语言编写小学生数学测试软件C语言课程设计(14页珍藏版)>请在人人文库网上搜索. 1. ...

  2. c语言程序设计阶乘输出,C语言编写10的阶乘,用C语言编程求10的阶乘

    导航:网站首页 > C语言编写10的阶乘,用C语言编程求10的阶乘 C语言编写10的阶乘,用C语言编程求10的阶乘 匿名网友: 思路:先定义一个函数求一个数的阶乘,接着依次从1到10调用该函数就 ...

  3. c语言编写程序求8,使用c语言编写程式,实现计算1*2*3+4*5*6+7*8*9+……+28*29*30的值...

    使用c语言编写程式,实现计算1*2*3+4*5*6+7*8*9+--+28*29*30的值以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快 ...

  4. c语言编写万年历课程设计,用C语言编写万年历 C课程设计.pdf

    用C语言编写万年历 C课程设计 用用 C++语言编写万年历语言编写万年历 用用 语言编写万年历语言编写万年历 学生姓名:学生姓名: 指导老师:指导老师: 学生姓名学生姓名:: 指导老师指导老师:: 摘 ...

  5. c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...

    c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...

  6. c语言编写坦克大战设计报告,c语言编写坦克大战源代码

    <c语言编写坦克大战源代码>由会员分享,可在线阅读,更多相关<c语言编写坦克大战源代码(10页珍藏版)>请在人人文库网上搜索. 1.include tank.h#include ...

  7. 利用c语言编写一个时钟计时器(c语言基础练习)

    时间对于每个人都是宝贵的.人类从古至今都在发展计时设备和改善计时方法.远古时期,人类根据太阳和月亮的位置来判断时间.根据影子的方向长短来区分早晨.中午和黄昏.古代人也发明了很多计时的方法,日晷.沙漏. ...

  8. c语言编写的点菜程序,基于C语言实现点菜系统

    本文实例为大家分享了C语言点菜系统的具体代码,供大家参考,具体内容如下 用C语言编写的简单的餐厅点菜系统,操作简单,代码不多,菜单可以自己更改,价格也是 #include #include #incl ...

  9. 如何用c语言编写炫酷烟花程序,C语言实现放烟花的程序

    这是一个利用C语言编写放烟花的程序(同时也可以播放音乐),供大家参考,具体内容如下 代码如下 #pragma once #include #include //图形界面库头文件 #include // ...

  10. 小学生数学测试软件编写分析,通过c语言编写小学生数学测试软件c语言课程设计.pdf...

    C 语言课程设计 设计期限 20XX年 6 月 17 开始 至 2013 年 6 月 21 结束 系 别 信息管理与信息系统 专 业 36 班级 112030601 学生姓名 邓茂华 学号 11203 ...

最新文章

  1. do还是doing imagine加to_中学必背英语短语集合:54个doing动名词的固定搭配
  2. linux下查看网卡型号
  3. Springmvc的服务端数据验证-----Hibernate Validator
  4. 图像分类数据库_图像分类器-使用僧侣库对房屋房间类型进行分类
  5. ASP.NET Core分布式项目实战(oauth2 + oidc 实现 client部分)--学习笔记
  6. 如何下载项目所需要jar包
  7. python编写图片主色转换脚本
  8. Drool7s kmodule的作用--系列02课
  9. linux sz命令详解,Linux rz和sz命令详解
  10. 【“计算机科学与技术”专业小白成长系列】Peter Norvig:十年学会编程
  11. Stata新命令:psestimate - 倾向得分匹配中协变量的筛选
  12. zxing二维码的使用
  13. 无尽学习者修炼指南 v3.0
  14. prim算法 源码(java)
  15. 什么是Q-Learning算法?
  16. Excel表格中第一个输入的零不显示怎么办?
  17. RedHatAS4U3下实现南北互通的DNS配置
  18. STM32F103做主控自制无刷电机(BLDC)控制器 有感/无感
  19. python学习(18)--图片分类
  20. php字符串分割中英文,php分割字符串_php分割中英文字符串的几种方法

热门文章

  1. 大数据可视化有哪些优势
  2. 物联网卡和车联网有什么关系
  3. 造成物联卡那么火爆的原因是什么
  4. 无模型自适应迭代学习控制原理和matlab代码仿真学习记录
  5. easypoi 大数据 百万_scrapy 解决爬虫IP代理池,百万大数据轻松爬取。
  6. C++中sort排序之自定义排序cmp(入门)
  7. 手机鸿蒙系统体验,首位!魅族Lipro智能家居宣布接入鸿蒙系统,魅族手机还会远吗?...
  8. Spark内核解析之一:内核概述
  9. ltp︱基于ltp的无监督信息抽取模块(事件抽取/评论观点抽取)
  10. Python函数参数类型*、**的区别