围棋编程C或C语言
#include"stdio.h"
void Way_1(int x[19][19],int i,int j) //(i,j) 为白子落子位置
{
if(i>=0 && i<19 && j>=0 && j<19 && x[i][j]==0)
{
x[i][j]=1; //落子成功
}
else
{
printf("违反围棋规则,请重新落子!\n");
}
}
void Way_2(int x[19][19],int i,int j) //(i,j) 为黑子落子位置
{
if(i>=0 && i<19 && j>=0 && j<19 && x[i][j]==0)
{
x[i][j]=2; //落子成功
}
else
{
printf("违反围棋规则,请重新落子!\n");
}
}
void Way_1_Eat(int x[19][19],int Total)
{
}
void Way_2_Eat(int x[19][19],int Total)
{
}
void Print(int x[19][19])
{
int m,n;
for(m=0;m<19;m++)
{
for(n=0;n<19;n++)
{
if(x[m][n]==0)
printf("口");
else
{
if(x[m][n]==1)
printf("白");
else
printf("黑");
}
}
printf("\n");
}
printf("\n");
}
void main( )
{
int a[19][19];
int k=0,i,j;
int key=1;
for(i=0;i<19;i++) //初始围棋棋盘
{
for(j=0;j<19;j++)
{
a[i][j]=0;
}
}
Print(a);
printf("执白先行\n");
scanf("%d %d",&i,&j);
while(1)
{
switch(key)
{
case 1:
{
if(a[i][j]==0)
{
Way_1(a,i,j);
key=-key;
Print(a);
printf("黑子落子\n");
scanf("%d %d",&i,&j);
break;
}
else
{
printf("违反规则!白棋重新落子!\n");
scanf("%d %d",&i,&j);
break;
}
}
case -1:
{
if(a[i][j]==0)
{
key=-key;
Way_2(a,i,j);
Print(a);
printf("白子落子\n");
scanf("%d %d",&i,&j);
break;
}
else
{
printf("违反规则!黑棋重新落子!\n");
scanf("%d %d",&i,&j);
break;
}
}
}
}
}