适合win10系统的c语言五子棋代码?(c语言五子棋程序代码)

条条 259

适合win10系统的c语言五子棋代码?

一,适合win10系统的c语言五子棋代码?

#include <stdio.h>


#define N 16


//显示五子棋棋盘

void wzq_show(char (*GAME)[N])

{

int i=0,j=0;

printf("五子棋棋盘如下:\n");

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

printf("%c ",GAME[i][j]);

}

printf("\n");

}

}


//初始化五子棋棋盘

void wzq_init(char (*GAME)[N])

{

int i=0,j=0;

for(i=0;i<N;i++)

{

for(j=0;j<N;j++)

{

GAME[i][j]='+';

}

}

//memset(GAME,'+',N*N);

}


//游戏是否胜利的运算,一旦有人胜利则返回1

int wzq_play(int a,int b,char (*GAME)[N])

{

int i=0,j=0,k=0;

//方向-上的

for(j=b-4;j<b+4;j++)

{

if(j<0 || j>N-1)

{

continue;

}

for(i=0;i<5;i++)

{

if('@'==GAME[a][j+i] ||'+'==GAME[a][j+i])

{

break;

}

if('O'==GAME[a][j+i] &&4==i)

{

printf("\n恭喜你,白家-方向上获胜!\n");

return 1;

}

}

}


//方向|上的

for(i=a-4;i<a+4;i++)

{

if(i<0 || i>N-1)

{

continue;

}

for(j=0;j<5;j++)

{

if('@'==GAME[i+j][b] ||'+'==GAME[i+j][b])

{

break;

}

if('O'==GAME[i+j][b] &&4==j)

{

printf("\n恭喜你,白家|方向上获胜!\n");

return 1;

}

}

}


//方向\上的

for(i=a-4,j=b-4;i<a+4 && j<b+4;i++,j++)

{

if(i<0 || i>N-1 || j<0 || j>N-1)

{

continue;

}

for(k=0;k<5;k++)

{

if('@'==GAME[i+k][j+k] ||'+'==GAME[i+k][j+k])

{

break;

}

if('O'==GAME[i+k][j+k] &&4==k)

{

printf("\n恭喜你,白家\方向上获胜!\n");

return 1;

}

}

}


//方向/上的

for(i=a+4,j=b-4;i>a-4 && j<b+4;i--,j++)

{

if(i<0 || i>N-1 || j<0 || j>N-1)

{

continue;

}

for(k=0;k<5;k++)

{

if('@'==GAME[i-k][j+k] ||'+'==GAME[i-k][j+k])

{

break;

}

if('O'==GAME[i-k][j+k] &&4==k)

{

printf("\n恭喜你,白家/方向上获胜!\n");

return 1;

}

}

}

return 0;

}


int main()

{

char GAME[N][N]={0};

int count=0;//轮换落子计算

int m=0,n=0;//白家

int x=0,y=0;//黑家

int res=0;

int k=0;

wzq_init(GAME);

wzq_show(GAME);

while(1)

{

//当棋盘格子被下满了时

if(N*N==count)

{

printf("棋盘已经下满了,平局!\n");

return 0;

}


if(0==count%2)

{

printf("请白家落子(例如0 3或1 3):");

scanf("%d%d",&m,&n);

while(m<0 || m>N-1 || n<0 || n>N-1)

{

printf("输入的坐标超出范围,请重新输入:");

scanf("%d%d",&m,&n);

}

while('+'!=GAME[m][n])

{

printf("此处已经落过子,请重新落子:");

scanf("%d%d",&m,&n);

}

GAME[m][n]='O';


res=wzq_play(m,n,GAME);

if(1==res)

{

wzq_show(GAME);

printf("程序结束\n");

return 0;

}


}else

{

printf("请黑家落子(例如0 3或1 3):");

scanf("%d%d",&x,&y);

while(m<0 || m>N-1 || n<0 || n>N-1)

{

printf("输入的坐标超出范围,请重新输入:");

scanf("%d%d",&m,&n);

}

while('+'!=GAME[x][y])

{

printf("此处已经落过子,请重新落子:");

scanf("%d%d",&x,&y);

}

GAME[x][y]='@';


res=wzq_play(x,y,GAME);

if(1==res)

{

wzq_show(GAME);

printf("程序结束\n");

return 0;

}

}


count++;

wzq_show(GAME);

}

}

二,c语言五子棋easyx

在 C 语言中,可以使用二维数组表示五子棋盘,并且可以通过定义常量来设置棋盘的大小和数量。


下面是一些示例代码,演示如何定义五子棋盘的大小和数量:


```


#define BOARD_SIZE 15 // 定义棋盘大小为15*15


#define MAX_COUNT 5 // 定义获胜所需棋子数量为5


int board[BOARD_SIZE][BOARD_SIZE]; //定义战盘,形成二维数组


```


在这个例子中,通过 `#define` 关键字来定义了战棋盘的大小为 15x15,以及获胜所需的棋子数量为5个。这样一来,整个程序中都可以通过 BOARD_SIZE 和 MAX_COUNT 两个常量来引用这些值。


然后,可以使用二维数组来表示战盘,其中数组的每个元素代表棋盘上一个点的状态,例如:


```


board[5][8] = 1; // 代表白棋在第6行第9列落子


```


在这个例子中,将第6行第9列上的位置标记为1,表示该位置上落了一个白棋。可根据需要使用另一个值(例如2)代表黑子。


希望这些示例代码可以帮助您开始定义自己的五子棋程序


总结:以上内容就是赳赳手游提供的适合win10系统的c语言五子棋代码?详细介绍,大家可以参考一下。

扣扣游手游 下载游戏折扣

扫描二维码下载