⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wuziqi.c

📁 linux环境下c语言写的不需要图形界面的五子棋
💻 C
字号:
#include <stdio.h>#define BUFSIZE 256#define AREA 10int qipan[AREA][AREA] = {};void p_qipan(void);void luozi(void);int win(void);int main(void){	int flag;	while (1) {		p_qipan();		luozi();		if ((flag = win()))			break;	}	if (flag == 1)		printf("black win\n");	else if (flag == 2) 		printf("white win\n");	else 		printf("no win\n");}void p_qipan(void){	int i,j,k;	for (k = 0; k < AREA; k++){		printf("%X ",k+1);	}	printf("\n");//	printf("1 2 3 4 5 6 7 8 9 A\n"); 		for(i = 0; i < AREA; i++){		for (j = 0; j < AREA ; j++){			if (qipan[i][j] == 0){				printf("+ ");			} else if (qipan[i][j] == 1){				printf("# ");			} else {				printf("O ");			}		}		printf("%X ",i+1);		printf("\n");	}	}void luozi(void){	char buf[BUFSIZE];	static int flag = 1;	int x, y;	while (1) {	printf("Please input zuobiao (like x,y)\n");	fgets(buf, BUFSIZE, stdin);	if (*buf == '\n') {		printf("argument not enough\n");		continue;	}	sscanf(buf, "%d,%d",&x,&y);	if (x > AREA || y > AREA) {		printf("number is too big\n");		continue;	}	if (qipan[y-1][x-1] == 0){		if (flag == 1)			qipan[y-1][x-1] = 1;		else			qipan[y-1][x-1] = 2;	} else {		printf("qizi is exist\n");		continue;	}	flag = -1 *flag;	break;	}		return;}#if 1int win(void){	int i,j,k,num;	for (i = 0; i < AREA; i++) {		for (j = 0; j < AREA; j++) {			if (qipan[i][j] == 0) {				/* 空位,返回循环 */				continue; 			} else {				/* 判断x方向是否存在5子 */				for (k = 1; qipan[i][j] == qipan[i+k][j] && i < AREA - 4 ;) {					k++;					if (k == 5){						return qipan[i][j];					}									}				/* 判断y方向是否存在5子 */				for (k = 1; qipan[i][j] == qipan[i][j+k] && j < AREA - 4;) {                                        k++;                                        if (k == 5){						return qipan[i][j];                                        }                                }				/* 判断左上指向右下方向是否存在5子 */				for (k = 1; qipan[i][j] == qipan[i+k][j+k] && i < AREA - 4 && j < AREA - 4;) {                                        k++;                                        if (k == 5){						return qipan[i][j];                                        }                                }				/* 判断右上指向左下方向是否存在5子 */				for (k = 1; qipan[i][j] == qipan[i-k][j+k] && i > 3 && j < AREA - 4;) {                                        k++;                                        if (k == 5){						return qipan[i][j];                                        }                                }			}		}	}	return 0;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -