用三個檔案來寫**,其中game.h用來存放所定義的函式的宣告,測試.c來測試遊戲,用三子棋.c來存放所定義的函式。
在測試檔案中,首先需要乙個選單,供選擇進行遊戲還是退出。主函式中完成的任務就是進入遊戲和退出遊戲,如果選擇進行遊戲,每選擇一次就玩一局,所以要用迴圈,選擇退出遊戲則退出迴圈。然後再往迴圈裡填寫具體的內容。
void menu()
int main()
} while (select!=2);
system("pause");
return 0;
}
補充遊戲的內容game()
遊戲進行的邏輯》開始》顯示棋盤》玩家下棋》電腦下棋,到這一步,要考慮棋盤的列印,以及下棋的位置,用陣列來儲存玩家下棋和電腦下棋的位置。所以有初始化棋盤和列印棋盤的兩個函式
//初始化棋盤
void init_board(char a[row][col], int row, int col) }}
//列印棋盤
void display_board(char a[row][col], int row, int col)
else
printf("該座標被占用,請重新落子\n");
} else
}}//電腦下棋
void go_computer(char a[row][col], int row, int col)
}}
執行發現沒問題,然後考慮到棋盤的狀態,玩家和電腦一邊下棋要一邊判斷輸贏的情況,於是有了判斷輸贏的函式,其中判斷平局的函式是為了支援判斷輸贏的函式,為達到封裝效果設定成static函式。
static int isfull(char a[row][col], int row, int col)
} }return 1;
}char judge_win(char a[row][col], int row, int col)
} //判斷列是否相等
for (i = 0; i < col; i++) }
//判斷兩個對角線是否相等
if (a[0][0] == a[1][1] && a[1][1] == a[2][2] && a[0][0] != ' ')
if (a[0][2] == a[1][1] && a[1][1] == a[2][0] && a[0][2] != ' ')
//判斷平局,棋盤是否滿了
if (isfull(a, row, col) == 1)
return 'c';
}
game函式是整個遊戲執行的大框架,把所需要的函式都在其中呼叫,注意判斷輸贏的是在玩家下完棋和電腦下完棋分別判斷,一直沒有輸贏平局的結果就繼續,此處用到迴圈。
void game()
; char ret = 0;
init_board(board, row, col);
display_board(board, row, col); //初始棋盤並顯示
while (1) //遊戲進行,一邊下一邊判斷輸贏
if (ret='*') //不繼續跳出後判斷誰贏
else if (ret = '#')
}
好啦,三子棋遊戲就實現了~繼續努力! C語言實現三子棋
game.h define crt secure no warnings 1 ifndef game h define game h include include include include define rows 3 define cols 3 void init board char bo...
三子棋C語言實現
要寫這個三子棋的程式我們分為三個部分首先是宣告函式的標頭檔案,我們分別宣告了五個函式,初始化棋盤,列印棋盤,玩家走,電腦走,檢查是否贏了。之後我們寫測試 然後分別來實現這五個函式 define crt secure no warnings 1 ifndef game h define game h ...
C語言實現三子棋
實現三子棋程式,只要我們能夠理清楚思路,就可以知道其實它的做法並不難,重點在於實際寫 時需要多關注細節。這裡我們可以寫完一塊就可以立馬執行程式檢查是否如我們所想的效果出現,如若不是便可立即查錯糾錯。如下。test.c include include include include game.h vo...