提起五子棋,大家肯定很了解,所以,三子棋只是乙個簡化的三子棋
構思這個遊戲時,首先可以想到:三子棋需要乙個初始化函式,乙個現實棋盤函式,乙個玩家下棋的函式,電腦下棋的函式,判斷輸贏的函式
至於還要其他的什麼函式,我們在寫的時候可以加進去
電腦下棋的函式我是用的隨機函式寫的,所以電腦就很笨了,如果要聰明一點的電腦就得自己動腦子好好想想演算法了
下面就是我寫的演算法了,有很詳細的注釋
#define _crt_secure_no_warnings
#include
#include
#include
#include
#define rows 3
#define cols 3
void menu()//選單函式,輸出可供選擇的選單
void init_board(char arr[rows][cols], int x, int y)//初始化函式 }}
void display_board(char arr[rows][cols])//顯示棋盤函式
else//第三行輸出這一行,保證棋盤的美觀
}}void player_move(char arr[rows][cols])//玩家的下棋函式
if (arr[i][j] == ' ')//判斷此時此座標是否有過輸入
else//如果輸入錯誤,則一直迴圈,直到輸入正確
}}int full(char arr[rows][cols])//檢查棋盤是否輸入滿
} }return count;//返回這個值
}void com_move(char arr[rows][cols])//電腦行走函式
}}int check_win(char arr[rows][cols],int c)//判斷輸贏函式,將之前判滿函式的返回值傳入
if (((arr[i][0] == 'c') && (arr[i][1] == 'c') && (arr[i][2] == 'c')) || ((arr[0][i] == 'c') && (arr[1][i] == 'c') && (arr[2][i] == 'c')))
//假入每一行或者每一列都為『c』,則玩家獲勝,返回0
if (((arr[0][0] == 'x') && (arr[1][1] == 'x') && (arr[2][2] == 'x')) || ((arr[0][2] == 'x') && (arr[1][1] == 'x') && (arr[2][0] == 'x')))
//假如兩條對角線上的值都為玩家下的『x』,則玩家獲勝,返回1
else if(((arr[0][0] == 'c') && (arr[1][1] == 'c') && (arr[2][2] == 'c')) || ((arr[0][2] == 'c') && (arr[1][1] == 'c') && (arr[2][0] == 'c')))
//假如兩條對角線上的值都為電腦下的『c』,則玩家獲勝,返回0
else if (c == 9)//判滿函式傳入的參為9的話,返回9,在game函式裡進行判斷
else//以上情況都沒有發生,則繼續輸入下一步棋
}}void game()
else if (m == 0)//返回0,電腦贏
else if (m == 9)//返回9的話,顯示平局,因為之前已經判斷過是否滿足贏的條件
//則此時返回9時棋盤一定是下滿且雙方平局,不睡存在剛下滿的
//時候一方獲勝
else
printf("電腦下:\n\n");
srand((unsigned)time(null));//隨機數需要的乙個條件
com_move(board);//電腦走
display_board(board);//顯示一次棋盤
} display_board(board);//輸贏結果產生,再次顯示一次棋盤
}int main()
} while (input);//input不為0,一直執行這個遊戲
system("pause");//為了讓顯示能夠停留住,這個在我的另一篇部落格裡詳細寫了三種方法
return 0;
}
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...