📄 wuziqi.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 + -