| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1911 人关注过本帖
标题:为什么我的五子棋程序棋盘只能出现一个棋子?
取消只看楼主 加入收藏
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
收藏
 问题点数:0 回复次数:9 
为什么我的五子棋程序棋盘只能出现一个棋子?
下面是我编的五子棋程序一部分,
能帮我看看哪里出了问题吗?
这里只有摆棋盘和走棋部分。
谢谢了!
#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
来 自:杭州
等 级:新手上路
威 望: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
狂人老大
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
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
收藏
得分:0 
回复:(cdmalcl)以下是引用狂人老大在2007-6-28 15:...
有灵感了
谢谢了

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

这是我这几天想出来的
我想到用文件保存前面下的棋子的位置
这里是走棋部分
还没有全 判断输赢部分还没有写好
/*****************************************/
/* *** */
/* 2007年6月25日 */
/* 电子063 */
/*****************************************/
#include<stdio.h>
#define N 10
void initqipan();
void showqi(int i);
void save(int p);
int zouqihang();
int zouqilie();
/******************结构体*****************/
struct zuobiao
{
int x[N*N];
int y[N*N];
}weizhi[N*N];
/******************主函数*****************/
void main()
{
int p=0;
initqipan();
for(p=1;p<=N*N;p++)
{
weizhi[p].x[p]=zouqihang();
weizhi[p].y[p]=zouqilie();
save(p);
showqi(p);
}
}
/******************建立棋盘*****************/
void initqipan()
{
int i,j;
for(i=0;i<N;i++)
{
printf("%d",i);
printf(" ");
}
printf("\n");
for(i=1;i<N;i++)
{
for(j=0;j<N;j++)
{
if(j==0)
printf("%d",i);
else
printf("·");
}
printf("\n");
}
}
/******************显示棋子*****************/
void showqi(int p)
{
int i,j,k,m;
int a[N*N],b[N*N];
FILE *fp;
fp=fopen("wuzi_list","rb");
for(i=1;i<N*N;i++)
{
fread(&weizhi[i],sizeof(struct zuobiao),1,fp);
a[i]=weizhi[i].x[i];
b[i]=weizhi[i].y[i];
}
for(m=1;m<p;m++)
{
while(weizhi[p].x[p]==a[m]&&weizhi[p].y[p]==b[m])
{
printf("error!\n");
weizhi[p].x[p]=zouqihang();
weizhi[p].y[p]=zouqilie();
m=1;
}
}
for(i=0;i<N;i++)
{
printf("%d",i);
printf(" ");
}
printf("\n");
for(i=1;i<N;i++)
{
for(j=1;j<N;j++)
{
if(j==1)
printf("%d",i);
for(k=1;k<=p;k++)
{
if(i==weizhi[k].x[k]&&j==weizhi[k].y[k])
{
if(k%2==1)
{printf("○");break;}
else if(k%2==0)
{printf("●");break;}
}
}
if(k>p)printf("·");
else continue;
}
printf("\n");
}
}
/******************走棋行*****************/
int zouqihang()
{
int x;
printf("请输入要走棋子所在行数!\n");
printf("x=");
scanf("%d",&x);
while(x>N-1||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>N-1||y<1)
{
printf("error!\n");
printf("请输入要走棋子所在列数!\n");
printf("y=");
scanf("%d",&y);
}
return y;
}
/******************文件保存****************/
void save(int i)
{
FILE *fp;
fp=fopen("wuzi_list","wb");
fwrite(&weizhi[i],sizeof(struct zuobiao),1,fp);
}


ACMer的QQ群:33741351
单片机QQ群:55130117
2007-07-03 10:57
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
收藏
得分:0 
希望大家给点意见啊
谢谢了

ACMer的QQ群:33741351
单片机QQ群:55130117
2007-07-03 10:57
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
收藏
得分:0 
呵呵 谢了

ACMer的QQ群:33741351
单片机QQ群:55130117
2007-07-03 22:32
快速回复:为什么我的五子棋程序棋盘只能出现一个棋子?
数据加载中...
 
   



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

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