C语言五子棋游戏源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ncl ud e< #define N 10
void welcome();
void initqipan();
void showqi(int i);
void save(int p);
void panduan(int p);
void heqi();
void over();
int zouqihang();
int zouqilie();
/****************** 结构体**************** */
struct zuobiao
{
int x[N*N];
int
y[N*N]; }weizhi[N
*N];
主函数**************** */
/******************
void main() {
int p=0;
welcome();
for(p=1;p<=N*N;p++)
{
weizhi[p].x[p]=zouqihang();
weizhi[p].y[p]=zouqilie(); save(p);
showqi(p);
panduan(p);
}
if(p==N*N)
heqi();
over();
}
/****************** 建立棋盘*****************/ void initqipan()
{
int i,j;
for(i=0;i { printf("%d",i); printf(" "); } for(i=1;i { for(j=0;j { if(j==0) printf("%d",i); else prin tf(" •") ; } 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 { 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 { printf("%d",i); printf(" "); } printf("\n"); for(i=1;i { for(j=1;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) {pr intf(" O ");break;} else if(k%2==0) {printf(" •");break;} } } if(k>p)pri ntf(" •"); 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(" 请输入要走棋子所在行数 printf("x="); scanf("%d",&x); } return x; } int zouqilie() { int y; printf(" 请输入要走棋子所在列数 !\n printf("y="); scanf("%d",&y); while(y>N-1||y<1) !\n"); 走棋列 **************** 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); } 判断输赢****************** */ void panduan(int p) { int i,j,k[8]={1,1,1,1,1,1,1,1,}; int a[N*N],b[N*N]; FILE *fp; fp=fopen("wuzi_list","rb");