| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1911 人关注过本帖
标题:为什么我的五子棋程序棋盘只能出现一个棋子?
只看楼主 加入收藏
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用狂人老大在2007-6-28 15:21:43的发言:
因为○和●不是字符,
我为了棋盘稍微好看点,
所以这么写。
用数组的话输出的是一堆乱七八糟的东西

我汗了
用数组记录的是一个点是否有子
而不是记录整个棋盘的图像

2007-06-28 18:52
狂人老大
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
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

行不错
你现在可以开始研究用图形实现了
要不你再写下去测试起来都费劲了

2007-07-03 13:59
狂人老大
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.020207 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved