网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月07日漏签0天
c语言吧 关注:801,872贴子:4,377,614
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回c语言吧
>0< 加载中...

编写五子棋时遇到了难题

  • 取消只看楼主
  • 收藏

  • 回复
  • tbhc闯天涯
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如题,我无法实现斜着判定输赢


  • tbhc闯天涯
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
下面发代码,当然,如果你是伸手党,你可以不回答


2026-06-07 09:29:18
广告
不感兴趣
开通SVIP免广告
  • tbhc闯天涯
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<stdio.h>
#include<windows.h>
#include <conio.h>
int huihe,X=0,Y=0;
int a[10][10]={{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0}};
void gotoxy(int x,int y)
{
COORD xy; //坐标
HANDLE hstdout; //容纳句柄的变量
hstdout=GetStdHandle(STD_OUTPUT_HANDLE);//获取标准设备句柄存放到hstdout
xy.X=x;
xy.Y=y;//坐标通过函数的参数来输入
SetConsoleCursorPosition(hstdout,xy);//是API中定位光标位置的函数
}
int cun(int x,int y)
{
if(huihe==0) a[x][2*y-1]=1;//黑
else if(huihe==1) a[x][2*y-1]=2;//白
return 0;
}
int qu(int x,int y)
{
return a[x][2*y-1];
}
int main()
{
int c,d,e,f,g,h=0,i=0,j;//h为黑,i为白
printf("+-+-+-+-+-+-+-+-+-+ 请输入上下左右来移动光标,按回车键来下棋\n");
printf("+-+-+-+-+-+-+-+-+-+ 注意:请勿使光标超出边框,那会使程序结束\n");
printf("+-+-+-+-+-+-+-+-+-+\n");
printf("+-+-+-+-+-+-+-+-+-+\n");
printf("+-+-+-+-+-+-+-+-+-+\n");
printf("+-+-+-+-+-+-+-+-+-+\n");
printf("+-+-+-+-+-+-+-+-+-+\n");
printf("+-+-+-+-+-+-+-+-+-+\n");
printf("+-+-+-+-+-+-+-+-+-+\n");
printf("+-+-+-+-+-+-+-+-+-+\n");
gotoxy(0,0);
for(d=0;X<=10&&Y<=19;d++)
{
huihe=d%2;
c = getch();
if(huihe==1) {gotoxy(0,11);printf("黑棋回合\n");}
if(huihe==0) {gotoxy(0,11);printf("白棋回合\n");}
if(c==0) c=getch(); // getch在遇到方向键时会返回0 再使用getch便会返回扫描码 重点!!!!!!!!!
if( c == 72 ) //上
X=X-1;
if ( c == 80)//下
X=X+1;
if ( c == 75)//左
Y=Y-2;
if ( c == 77)//右
Y=Y+2;
if(c == 113) //按q退出
break;
gotoxy(Y,X);
if(c==*\r*)
{if(huihe==0)
printf("◇");
if(huihe==1)
printf("◆");
cun(X,Y);}
for(f=0;f<=10;f++)
{
for(e=0;e<=10;e++)
{
g=qu(e,f);
if(g==1) h=h+1;
else if(g==2) i=i+1;
else if(g==0) {h=0;i=0;}
if(h>=5) {gotoxy(0,11);printf("黑棋赢了!!\n");}
else if(i>=5) {gotoxy(0,11);printf("白棋赢了!!\n");}
}
}
for(e=10;e>=0;e--)
{
for(f=0;f<=10;f++)
{
g=qu(e,f);
if(g==1) h=h+1;
else if(g==2) i=i+1;
else if(g==0) {h=0;i=0;}
if(h>=5) {gotoxy(0,11);printf("黑棋赢了!!\n");}
else if(i>=5) {gotoxy(0,11);printf("白棋赢了!!\n");}
}
}
for(j=0;j<=10;j++)
{
e=j;
for(f=0;e<=10||f<=10;e++,f++)
{
g=qu(e,f);
if(g==1) h=h+1;
else if(g==2) i=i+1;
else if(g==0) {h=0;i=0;}
if(h>=5) {gotoxy(0,11);printf("黑棋赢了!!\n");}
else if(i>=5) {gotoxy(0,11);printf("白棋赢了!!\n");}
}
}
for(j=0;j<=10;j++)
{
f=j;
for(e=0;e<=10||f<=10;e++,f++)
{
g=qu(e,f);
if(g==1) h=h+1;
else if(g==2) i=i+1;
else if(g==0) {h=0;i=0;}
if(h>=5) {gotoxy(0,11);printf("黑棋赢了!!\n");}
else if(i>=5) {gotoxy(0,11);printf("白棋赢了!!\n");}
}
}
for(j=10;j>=0;j--)
{
f=j;
for(e=0;e<=10||f>=0;e++,f--)
{
g=qu(e,f);
if(g==1) h=h+1;
else if(g==2) i=i+1;
else if(g==0) {h=0;i=0;}
if(h>=5) {gotoxy(0,11);printf("黑棋赢了!!\n");}
else if(i>=5) {gotoxy(0,11);printf("白棋赢了!!\n");}
}
}
for(j=0;j<=10;j++)
{
e=j;
for(f=10;f>=0||e>=0;e--,f--)
{
g=qu(e,f);
if(g==1) h=h+1;
else if(g==2) i=i+1;
else if(g==0) {h=0;i=0;}
if(h>=5) {gotoxy(0,11);printf("黑棋赢了!!\n");}
else if(i>=5) {gotoxy(0,11);printf("白棋赢了!!\n");}
}
}
}
return 0;
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示