因为○和●不是字符,
我为了棋盘稍微好看点,
所以这么写。
用数组的话输出的是一堆乱七八糟的东西
我汗了
用数组记录的是一个点是否有子
而不是记录整个棋盘的图像
这是我这几天想出来的
我想到用文件保存前面下的棋子的位置
这里是走棋部分
还没有全 判断输赢部分还没有写好
/*****************************************/
/* *** */
/* 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);
}