#include<stdio.h>
#include<windows.h>
#include <stdlib.h>
void chessboard(){
int a,b=0;
char chessboard[15][15];
for(int a=0;a<15;a++)
for(int b=0;b<15;b++)
{
chessboard[a][b]='+';}
for(int a=0;a<15;a++)
for(int b=0;b<15;b++)
{
printf(" %c",chessboard[a][b]);
if(b==14){
printf("\n");
}
}
}
int judge(int m,int n){
int i,k=0;
char chessboard[15][15] ;
for(i = m-4; i <= m+4; i ++)
if(chessboard[i][n] =='#'&& chessboard[i+1][n]== '#'&&chessboard[i+2][n]=='#'&&chessboard[i+3][n]=='#'&&chessboard[i+4][n]=='#')
return 1;
else break;
for(k = m-4; k <= m+4; k ++)
if(chessboard[m][n]=='#'&&chessboard[m][n+1] =='#'&& chessboard[m][n+2]== '#'&&chessboard[m][n+3]=='#'&&chessboard[m][n+4]=='#')
return 1;
else break;
for(i = m-4 ,k <= m-4;i<=m+4; i++,k ++)
if(chessboard[i][k]=='#'&&chessboard[i+1][k+1] =='#'&& chessboard[i+2][k+2]== '#'&&chessboard[i+3][k+3]=='#'&&chessboard[i+4][k+4]=='#')
return 1;
else break;
for(i=m-4,k=n+4;i<=m+4;i++,k--)
if(chessboard[i][k]=='#'&&chessboard[i+1][k-1] =='#'&& chessboard[i+2][k-2]== '#'&&chessboard[i+3][k-3]=='#'&&chessboard[i+4][k-4]=='#')
return 1;
else break;
for(i = m-4; i <= m+4; i ++)
if(chessboard[i][n] =='o'&& chessboard[i+1][n]== 'o'&&chessboard[i+2][n]=='o'&&chessboard[i+3][n]=='o'&&chessboard[i+4][n]=='o')
return 2;
else break;
for(k = m-4; k <= m+4; k ++)
if(chessboard[m][n]=='o'&&chessboard[m][n+1] =='o'&& chessboard[m][n+2]== 'o'&&chessboard[m][n+3]=='o'&&chessboard[m][n+4]=='o')
return 2;
else break;
for(i = m-4 ,k <= m-4;i<=m+4; i++,k ++)
if(chessboard[i][k]=='o'&&chessboard[i+1][k+1] =='o'&& chessboard[i+2][k+2]== 'o'&&chessboard[i+3][k+3]=='o'&&chessboard[i+4][k+4]=='o')
return 2;
else break;
for(i=m-4,k=n+4;i<=m+4;i++,k--)
if(chessboard[i][k]=='o'&&chessboard[i+1][k-1] =='o'&& chessboard[i+2][k-2]== 'o'&&chessboard[i+3][k-3]=='o'&&chessboard[i+4][k-4]=='o')
return 2;
else
return 0;
}
int move1(){
int x = 0; int y = 0;
char chessboard[15][15] ;
printf("轮到黑方行棋\n");
printf("请输入行\n");
scanf("%d", &x);
printf("请输入列\n");
scanf("%d",&y);
x--;
y--;
if (((x >= 0) && (x <= 15)) && ((y >= 0) && (y <= 15)))
{
if (chessboard[x][y] =='+')
{ system("cls");
chessboard[x][y] = '#';
for(int a=0;a<15;a++)
for(int b=0;b<15;b++){
printf(" %c",chessboard[a][b]);
if(b==14){
printf("\n");
}
}return 0;
}
else
printf("下标错误,请重新输入\n");
return 1;
}
else
printf("下标错误,请重新输入\n");
return 1;
}
int move2()
{
int x = 0; int y = 0;
char chessboard[15][15] ;
{
printf("轮到白方行棋\n");
printf("请输入行\n");
scanf("%d", &x);
printf("请输入列\n");
scanf("%d",&y);
x--;
y--;
if (((x >= 0) && (x <= 15)) && ((y >= 0) && (y <= 15)))
{
if (chessboard[x][y] == '+')
{
system("cls");
chessboard[x][y] = 'o';
for(int a=0;a<15;a++)
for(int b=0;b<15;b++){
printf(" %c",chessboard[a][b]);
if(b==14){
printf("\n");
}
}return 0;
}
else
printf("下标错误,请重新输入\n");
return 2;
}
else
printf("下标错误,请重新输入\n");
return 2;
}
}
main(){
SetConsoleTitle("Chessboard");
int a,b,c=0,d=0,count=0;
//count=judge(a,b);
//printf("%d\n",count);
chessboard();
while(count==0){
c++;
d=c%2;
switch ( d )
{
case 1:
if(move1()==1)
{
c--;
}
for(int a=0;a<15;a++)
for(int b=0;b<15;b++)
if(judge(a,b)==1)
{
printf("黑棋胜利 游戏结束\n");
exit(0);}
break;
case 0:
if(move2()==2)
{
c--;
}
for(int a=0;a<15;a++)
for(int b=0;b<15;b++)
if(judge(a,b)==2){
printf("白棋胜利 游戏结束\n");
exit(0);
}
break;
}
}
}
c语言简单五子棋
最新推荐文章于 2023-09-15 14:30:44 发布