用c语言编写五子棋用vs写,c语言写的五子棋人与人对战
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#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语言写的五子棋人与人对战相关推荐
- 小学生数学测试软件编写分析,通过C语言编写小学生数学测试软件C语言课程设计...
<通过C语言编写小学生数学测试软件C语言课程设计>由会员分享,可在线阅读,更多相关<通过C语言编写小学生数学测试软件C语言课程设计(14页珍藏版)>请在人人文库网上搜索. 1. ...
- c语言程序设计阶乘输出,C语言编写10的阶乘,用C语言编程求10的阶乘
导航:网站首页 > C语言编写10的阶乘,用C语言编程求10的阶乘 C语言编写10的阶乘,用C语言编程求10的阶乘 匿名网友: 思路:先定义一个函数求一个数的阶乘,接着依次从1到10调用该函数就 ...
- 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)小编为大家搜集整理后发布的内容,让我们赶快 ...
- c语言编写万年历课程设计,用C语言编写万年历 C课程设计.pdf
用C语言编写万年历 C课程设计 用用 C++语言编写万年历语言编写万年历 用用 语言编写万年历语言编写万年历 学生姓名:学生姓名: 指导老师:指导老师: 学生姓名学生姓名:: 指导老师指导老师:: 摘 ...
- c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...
c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...
- c语言编写坦克大战设计报告,c语言编写坦克大战源代码
<c语言编写坦克大战源代码>由会员分享,可在线阅读,更多相关<c语言编写坦克大战源代码(10页珍藏版)>请在人人文库网上搜索. 1.include tank.h#include ...
- 利用c语言编写一个时钟计时器(c语言基础练习)
时间对于每个人都是宝贵的.人类从古至今都在发展计时设备和改善计时方法.远古时期,人类根据太阳和月亮的位置来判断时间.根据影子的方向长短来区分早晨.中午和黄昏.古代人也发明了很多计时的方法,日晷.沙漏. ...
- c语言编写的点菜程序,基于C语言实现点菜系统
本文实例为大家分享了C语言点菜系统的具体代码,供大家参考,具体内容如下 用C语言编写的简单的餐厅点菜系统,操作简单,代码不多,菜单可以自己更改,价格也是 #include #include #incl ...
- 如何用c语言编写炫酷烟花程序,C语言实现放烟花的程序
这是一个利用C语言编写放烟花的程序(同时也可以播放音乐),供大家参考,具体内容如下 代码如下 #pragma once #include #include //图形界面库头文件 #include // ...
- 小学生数学测试软件编写分析,通过c语言编写小学生数学测试软件c语言课程设计.pdf...
C 语言课程设计 设计期限 20XX年 6 月 17 开始 至 2013 年 6 月 21 结束 系 别 信息管理与信息系统 专 业 36 班级 112030601 学生姓名 邓茂华 学号 11203 ...
最新文章
- do还是doing imagine加to_中学必背英语短语集合:54个doing动名词的固定搭配
- linux下查看网卡型号
- Springmvc的服务端数据验证-----Hibernate Validator
- 图像分类数据库_图像分类器-使用僧侣库对房屋房间类型进行分类
- ASP.NET Core分布式项目实战(oauth2 + oidc 实现 client部分)--学习笔记
- 如何下载项目所需要jar包
- python编写图片主色转换脚本
- Drool7s kmodule的作用--系列02课
- linux sz命令详解,Linux rz和sz命令详解
- 【“计算机科学与技术”专业小白成长系列】Peter Norvig:十年学会编程
- Stata新命令:psestimate - 倾向得分匹配中协变量的筛选
- zxing二维码的使用
- 无尽学习者修炼指南 v3.0
- prim算法 源码(java)
- 什么是Q-Learning算法?
- Excel表格中第一个输入的零不显示怎么办?
- RedHatAS4U3下实现南北互通的DNS配置
- STM32F103做主控自制无刷电机(BLDC)控制器 有感/无感
- python学习(18)--图片分类
- php字符串分割中英文,php分割字符串_php分割中英文字符串的几种方法
热门文章
- 大数据可视化有哪些优势
- 物联网卡和车联网有什么关系
- 造成物联卡那么火爆的原因是什么
- 无模型自适应迭代学习控制原理和matlab代码仿真学习记录
- easypoi 大数据 百万_scrapy 解决爬虫IP代理池,百万大数据轻松爬取。
- C++中sort排序之自定义排序cmp(入门)
- 手机鸿蒙系统体验,首位!魅族Lipro智能家居宣布接入鸿蒙系统,魅族手机还会远吗?...
- Spark内核解析之一:内核概述
- ltp︱基于ltp的无监督信息抽取模块(事件抽取/评论观点抽取)
- Python函数参数类型*、**的区别