五子棋用了二维数组和函数调用完成
第一个函数是菜单实现
第二个函数是初始化棋盘
第三个函数实现 画棋盘
第四个第五个函数都是玩家动 第五个函数跟第四个函数差不多就是改了棋子;
上面这个函数 判断那个玩家赢
游戏实现
主函数:
自己去试试看看;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define high 10
#define wide 10
int menu(void)
{
int a;
printf("####################\n");
printf(" 1.play \n");
printf(" 0.exit \n");
printf("####################\n");
printf("please input nums:");
scanf("%d",&a);
return a;
}
void init_board(char board[high][wide],int r,int w)
{
int i=0,j=0;
for(i=0;i<r;i++)
{
for(j=0;j<w;j++)
{
board[i][j]=' ';
}
}
}
void draw_board(char board[high][wide],int r,int w)
{
int i=0;
for(i-0;i<r;i++)
{
int j=0;
for(j=0;j<w;j++)
{
printf(" %c ",board[i][j]);
if(j<w-1)
printf("|");
}
printf("\n");
if(i<r-1)
{
for(j=0;j<w;j++)
{
printf("---");
if(j<w-1)
printf("|");
}
}
putchar(10);
}
}
void player_one(char board[high][wide],int r,int w)
{
int x=0,y=0;
printf("player_one move input x and y:");
while(1)
{
scanf("%d %d",&x,&y);
if(x>=1&&y>=1&&x<=w&&y<=r)
{
if(board[x-1][y-1]==' ')
{
board[x-1][y-1]='@';
break;
}
else
{
printf("point have,please input:");
}
}
else
{
printf("fei fa point,please input:");
}
}
}
void player_two(char board[high][wide],int r,int w)
{
int x=0,y=0;
printf("player_two move input x and y:");
while(1)
{
scanf("%d %d",&x,&y);
if(x>=1&&y>=1&&x<=w&&y<=r)
{
if(board[x-1][y-1]==' ')
{
board[x-1][y-1]='o';
break;
}
else
{
printf("point have,please input:");
}
}
else
{
printf("fei fa point,please input:");
}
}
}
char mywin(char board[high][wide],int r,int w)
{
int i=0,j=0;
for(i=0;i<r;i++)
{
for(j=0;j<w;j++)
{
if(board[i][j]==board[i][j+1]&&board[i][j+1]==board[i][j+2]&&board[i][j+2]==board[i][j+3]&&board[i][j+3]==board[i][j+4]&&j+4<w&&board[i][j]!=' ')
{
return board[i][j];
}
if(board[i+1][j]==board[i][j]&&board[i+1][j]==board[i+2][j]&&board[i+2][j]==board[i+3][j]&&board[i+3][j]==board[i+4][j]&&i+4<r&&board[i][j]!=' ')
{
return board[i][j];
}
if(board[i][j]==board[i+1][j+1]&&board[i+1][j+1]==board[i+2][j+2]&&board[i+2][j+2]==board[i+3][j+3]&&board[i+3][j+3]==board[i+4][j+4]&&j+4<w&&i+4<r&&board[i][j]!=' ')
{
return board[i][j];
}
if(board[i+1][j-1]==board[i][j]&&board[i+1][j-1]==board[i+2][j-2]&&board[i+2][j-2]==board[i+3][j-3]&&board[i+3][j-3]==board[i+4][j-4]&&i+4<r&&j-4>=0&&board[i][j]!=' ')
{
return board[i][j];
}
}
}
}
void game(void)
{
char c;
char board[high][wide]={1};
init_board(board,high,wide);
draw_board(board,high,wide);
c=mywin(board,high,wide);
while(1)
{
player_one(board,high,wide);
draw_board(board,high,wide);
c=mywin(board,high,wide);
if(c=='@')
{
printf("player1 win!!!!!\n");
break;
}
player_two(board,high,wide);
draw_board(board,high,wide);
c=mywin(board,high,wide);
if(c=='o')
{
printf("player2 win!!!!!\n");
break;
}
}
}
int main(void)
{
system("clear");
int choice=1;
while(choice)
{
choice=menu();
switch(choice)
{
case 0:
printf("exit\n");
break;
case 1:
game();
break;
default:
printf("please input 1 or 0\n");
break;
}
}
return 0;
}
include<stdio.h>
int main(void)
{ int a;
return 0;
}