編寫了五個函數,再用主函數調用:ide
#include<stdio.h> #include<stdlib.h> char arr[3][3]; void print() { int i = 0; for (i = 0; i<3; i++) { printf("%c|%c|%c|\n", arr[i][0], arr[i][1], arr[i][2]); printf("_|_|_|\n"); } } void init_arr() { int i = 0; int j = 0; for (i = 0; i<3; i++) { for (j = 0; j<3; j++) { arr[i][j] = ' '; } } } void player() { int i = 0; int j = 0; printf("輸入i,j:\n"); scanf("%d %d", &i, &j); i--; j--; if (arr[i][j] != ' ') { printf("此格已輸入,請從新輸入i,j:\n"); player(); } else { arr[i][j] = 'X'; } } void computer_move() { int i = 0; int j = 0; for (i = 0; i<3; i++) { for (j = 0; j<3; j++) { if (arr[i][j] == ' ') { arr[i][j] = '0'; break; } } break; } } char win() { int i = 0; for (i = 0; i<3; i++) { if ((arr[i][0] == arr[i][1]) && (arr[i][1] == arr[i][2])) { return arr[i][0]; } } for (i = 0; i<3; i++) { if ((arr[0][i] == arr[1][i]) && (arr[1][i] == arr[2][i])) { return arr[0][i]; } } } int main() { int i = 0; int j = 0; char done = ' '; init_arr(); printf("棋盤遊戲:\n"); do { print(); player(); done = win(); if (done != ' ') { break; } computer_move(); done = win(); } while (done == ' '); if (done == '0') { printf("電腦贏\n"); } else { printf("玩家贏\n"); } print(); system("pause"); return 0; }