手机版

C语言五子棋游戏源代码

时间:2025-05-10   来源:未知    
字号:

C语言写的五子棋游戏源代码,给大家一点参考

#include<stdio.h>

#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();

initqipan();

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<N;i++)

{

printf("%d",i);

printf(" ");

}

C语言写的五子棋游戏源代码,给大家一点参考

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++)

{

C语言写的五子棋游戏源代码,给大家一点参考

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)

C语言写的五子棋游戏源代码,给大家一点参考

{

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");

for(i=1;i<=p;i++)

{

fread(&weizhi[i],sizeof(struct zuobiao),1,fp);

a[i]=weizhi[i].x[i];

b[i]=weizhi[i].y[i];

}

/*****************判断行******************/

for(i=1;i<=p;i++)

{

if(i%2==1)

{

for(j=1;j<=p;j=j+2)

{

if((a[i]==a[j])&&(b[i]==b[j]-1))

{

k[0]++;

continue;

}

else if((a[i]==a[j])&&(b[i]==b[j]-2))

{

k[0]++;

continue;

C语言写的五子棋游戏源代码,给大家一点参考

else if((a[i]==a[j])&&(b[i]==b[j]-3))

{

k[0]++;

continue;

}

else if((a[i]==a[j])&&(b[i]==b[j]-4))

{

k[0]++;

continue;

}

else if(k[0]==5)

{

printf("Player 1 wins!!!\n");

}

else

continue;

}

if(k[0]==5)

break;

k[0]=1;

}

else if(k[0]==5)

break;

else if(i%2==0)

{

for(j=2;j<=p;j=j+2)

{

if((a[i]==a[j])&&(b[i]==b[j]-1))

{

k[1]++;

continue;

}

else if((a[i]==a[j])&&(b[i]==b[j]-2))

{

k[1]++;

continue;

}

else if((a[i]==a[j])&&(b[i]==b[j]-3))

{

k[1]++;

continue;

}

else if((a[i]==a[j])&&(b[i]==b[j]-4))

C语言写的五子棋游戏源代码,给大家一点参考

k[1]++;

continue;

}

else if(k[1]==5)

{

printf("Player 2 wins!!!\n");

}

else

continue;

}

if(k[1]==5)

break;

k[1]=1;

}

}

/**********************判断列************************/ for(i=1;i<=p;i++)

{

if(k[0]==5||k[1]==5)

break;

else if(i%2==1)

{

for(j=1;j<=p;j=j+2)

{

if((a[i]==a[j]-1)&&(b[i]==b[j]))

{

k[2]++;

co …… 此处隐藏:4423字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言五子棋游戏源代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)