标题:为什么我的五子棋程序棋盘只能出现一个棋子?
只看楼主
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
 问题点数:0 回复次数:15 
为什么我的五子棋程序棋盘只能出现一个棋子?
下面是我编的五子棋程序一部分,
能帮我看看哪里出了问题吗?
这里只有摆棋盘和走棋部分。
谢谢了!
#include<stdio.h>
void initqipan();
void showqi(int p);
int zouqihang();
int zouqilie();
void main()
{
int p;
initqipan();
for(p=1;p<=64;p++)
showqi(p);
}
void initqipan()
{
int i,j;
for(i=0;i<8;i++)
{
printf("%d",i);
printf(" ");
}
printf("\n");
for(i=1;i<8;i++)
{
for(j=0;j<8;j++)
{
if(j==0)
printf("%d",i);
else
printf("·");
}
printf("\n");
}
}
void showqi(int p)
{
int i,j,k;
int x[64],y[64];
x[p]=zouqihang();
y[p]=zouqilie();
for(i=0;i<8;i++)
{
printf("%d",i);
printf(" ");
}
printf("\n");
for(i=1;i<8;i++)
{
for(j=1;j<8;j++)
{
if(j==1)
printf("%d",i);
for(k=1;k<=p;k++)
{
if(i==x[k]&&j==y[k])
{
if(k%2==1)
printf("○");
else
printf("●");
}
else
printf("·");
}

}printf("\n");
}
}
int zouqihang()
{
int x;
printf("请输入要走棋子所在行数!\n");
printf("x=");
scanf("%d",&x);
while(x>7||x<1)
{
printf("error!\n");
printf("请输入要走棋子所在行数!\n");
printf("x=");
scanf("%d",&x);
}
return x;
}
int zouqilie()
{
int y;
printf("请输入要走棋子所在列数!\n");
printf("y=");
scanf("%d",&y);
while(y>7||y<1)
{
printf("error!\n");
printf("请输入要走棋子所在列数!\n");
printf("y=");
scanf("%d",&y);
}
return y;
}
谢谢了!!!
搜索更多相关主题的帖子: 五子棋 棋子 棋盘 
2007-06-28 10:06
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
得分:0 
我弄了好久都没有看出来是哪里出了问题,
还请各位帮帮忙啊!!
谢谢了!!!

ACMer的QQ群:33741351
单片机QQ群:55130117
2007-06-28 10:17
夜中梦
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2007-5-12
得分:0 

2007-06-28 13:31
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
得分:0 
我用了下,可以显示阿,不知道这里怎么贴图,要不我就贴给你看,可能是你编译器的问题吧
不过,到第三个的时候,位置不对

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-06-28 13:32
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
得分:0 

是啊 我也不知道是怎么回事
就是第三个开始就有问题了


ACMer的QQ群:33741351
单片机QQ群:55130117
2007-06-28 13:42
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
得分:0 

再看看这个吧
棋盘是不会出错了
但是棋子还是不能出来2个以上
#include<stdio.h>
void initqipan();
void showqi(int p);
int zouqihang();
int zouqilie();
void main()
{
int p;
initqipan();
for(p=1;p<=64;p++)
showqi(p);
}
void initqipan()
{
int i,j;
for(i=0;i<8;i++)
{
printf("%d",i);
printf(" ");
}
printf("\n");
for(i=1;i<8;i++)
{
for(j=0;j<8;j++)
{
if(j==0)
printf("%d",i);
else
printf("·");
}
printf("\n");
}
}
void showqi(int p)
{
int i,j,x,y;
x=zouqihang();
y=zouqilie();
for(i=0;i<8;i++)
{
printf("%d",i);
printf(" ");
}
printf("\n");
for(i=1;i<8;i++)
{
for(j=0;j<8;j++)
{
if(j==0)
printf("%d",i);
else if(i==x&&j==y)
{
if(p%2==1)
printf("○");
else
printf("●");
}

else
printf("·");
}
printf("\n");
}
}
int zouqihang()
{
int x;
printf("请输入要走棋子所在行数!\n");
printf("x=");
scanf("%d",&x);
while(x>7||x<1)
{
printf("error!\n");
printf("请输入要走棋子所在行数!\n");
printf("x=");
scanf("%d",&x);
}
return x;
}
int zouqilie()
{
int y;
printf("请输入要走棋子所在列数!\n");
printf("y=");
scanf("%d",&y);
while(y>7||y<1)
{
printf("error!\n");
printf("请输入要走棋子所在列数!\n");
printf("y=");
scanf("%d",&y);
}
return y;
}


ACMer的QQ群:33741351
单片机QQ群:55130117
2007-06-28 13:47
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
得分:0 

你为什么不用二维数组?!

2007-06-28 13:49
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
得分:0 
比较下你的两段代码:
这是第一楼的,能显示多个的:if(i==x[k]&&j==y[k])
{
if(k%2==1)
printf("○");
else
printf("●");
}
else
printf("·");

这是第六楼的,不能显示多个的
if(j==0)
printf("%d",i);
else if(i==x&&j==y)
{
if(p%2==1)
printf("○");
else
printf("●");
} else
printf("·");
}
printf("\n");


你x变为x[k]

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-06-28 14:01
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
得分:0 
应该是用数组的吧,这样才可以保留前面下过的棋子的位置

ACMer的QQ群:33741351
单片机QQ群:55130117
2007-06-28 15:00
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
得分:0 
回复:(cdmalcl)你为什么不用二维数组?!
因为○和●不是字符,
我为了棋盘稍微好看点,
所以这么写。
用数组的话输出的是一堆乱七八糟的东西

ACMer的QQ群:33741351
单片机QQ群:55130117
2007-06-28 15:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-150927-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.796736 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved