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

#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语言编程两人对战五子棋,c语言写的五子棋人与人对战相关推荐

  1. 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc

    完美的8051单片机C语言编程模板.doc <8051单片机C语言编程模板> [程序开始处的程序说明] /***************************************** ...

  2. 有没有c 或c语言的短期培训学校,根河学c语言编程,根河学c语言编程的学校,根河学c语言编程报个培训班怎么样...

    根河学c语言编程,根河学c语言编程的学校,根河学c语言编程报个培训班怎么样 首页 > 软件 > 根河学c语言编程 作者:镀金池   发布时间:2017-11-30 11:02 另外,尽早调 ...

  3. c语言编程规范总结,【技术小记 | C语言】C 语言编程规范

    image 欢迎大家访问我的个人博客:吴佳轶 | WuJiaYi,第一时间获取最新的文章. 规范制定说明 本套C语言编程规范为提高代码质量.便于维护.协同编码.可移植等特点而编写.要求所有参与编码人员 ...

  4. 红灯停绿灯行c语言编程,基于物联网应用的《C语言程序设计》教学模式研究

    [摘要] 物联网是信息技术的最新发展发向,C语言程序设计又是物联网相关专业中的基础课,在物联网中的应用广泛,本文结合所任教的技工院校学生特点,在分析了C语言教学中存在的问题后,对C语言的教学模式进行了 ...

  5. 用C语言编程网上购物系统,华中科技大学C语言课程设计报告 -- 网上购物管理系统.pdf...

    华中科技大学自动化学院 C 语言课程设计报告 网上购物管理系统 专 业:自 动 化 班 级:自动化1306 班 组 员: 指导教师:周纯杰 何顶新 彭刚 周凯波 完成时间:2014 年11 月7 日星 ...

  6. 单片机c语言编程入门下載,系列单片机C语言编程入门.pdf

    系列单片机C语言编程入门.pdf 本文由c h e n j u n j u n j u n 3贡献 p d f 文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机 查看. 维普资 ...

  7. 华为c语言编程规范_单片机开发之C语言编程基本规范

    为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范.本标准规定了程序设计人员进行程序设计时必须遵循的规范.本规范主要针对单片机编程语言和08编译器而言,包括排版.注释.命名.变量 ...

  8. c语言 方程改main的值_C语言编程笔记丨编写第一个C语言程序hello world,我教你哇...

    如果用C语言输出:Hello,world!,该如何编写程序? **代码如下:** #include//包含标准库的信息 main()//定义名为main的函数,不接受参数值 {//main函数的语句都 ...

  9. c语言编程输出指定范围的素数,C语言输出范围内所有素数

    用C语言输出100之间的所有质数 用C语言输出100之间的所有质数. 各位. 首先新建一个空白的c语言文件,引入头文件,头文件中包括math库,稍后会用到,建立主函数: 主函数上面新建一个判断素数的函 ...

  10. c8051f c语言编程,C8051F系列单片机开发与C语言编程

    C8051F系列单片机开发与C语言编程 维普资讯 http://doc.xuehai.net 雎 A 21进行控制,这样可以选择不同的地址,进而控制的读写. S D1 5 E 6对应的内存和寄存器. ...

最新文章

  1. 华为正式发布5G商用芯片、5G终端!
  2. 【S操作】更新网络视频下载方法详细步骤,m3u8格式文件视频文件下载方法,gohls使用详细步骤...
  3. github使用个人总结
  4. java get方法不序列化_java常用序列化与反序列化方法
  5. python 约束与异常处理
  6. java: 程序包com.github.pagehelper不存在_Rust语言正在兴起,Java、Python、C的末日来临?...
  7. SAP License:SAP学习笔记-集成与核算
  8. 【毕业设计】jSP在线教学质量评价系统的设计与实现(源代码+论文)
  9. 怎样查找共享文件_计算机操作系统学习笔记(五):文件管理
  10. 蓝桥杯2017年第八届C/C++省赛C组第七题-Excel地址
  11. 字体和font-family对照表
  12. 程序员延寿指南-活着才能输出
  13. 【音视频基础】H264格式分析
  14. 【loj10064】黑暗城堡
  15. qt5版本管理git_Building Qt 5 from Git/zh
  16. 产品上线前,友谊的小船说翻就翻!
  17. 01.朴素贝叶斯介绍
  18. FastDFS监控中心安装
  19. Beyond Compare反编译插件提示转换错误
  20. 零知识证明:重要构造

热门文章

  1. c语言 int max,C语言 0x7fffffff是多少(也就是INT_MAX,首位是 0,其余都是1,f代表1111)...
  2. RISC-V 麻雀 D1s Buildroot 基本笔录
  3. 赛思互动:大数据能给企业带来什么
  4. Chrome - 下载离线安装包
  5. 西部数码虚拟主机支持thinkphp的/public/访问
  6. ng-zorro select 下拉框
  7. 摘要算法和加密算法区别
  8. 【基于vue写的select下拉框】
  9. 我:Redis内存数据满了导致宕机。CTO:你太无知了....一脸懵
  10. 链路聚合_【网络干货】链路聚合可靠性技术详解