相比v1.0,v2.0在判斷輸贏的演算法上進行了優化,將適用於n子旗的模式
將三個檔案合併成乙個檔案
加入了更多注釋
使排版更加合理
將row(行數)後面的數字改為你想要的數字
將col(列數)後面的數字改為你想要的數字
由於n字旗的特殊規則:建議將row=col
若不相等則本**將對斜著的情況取斜著的個數為行數時獲勝
#define _crt_secure_no_warnings 1
#define row 3
#define col 3
#include
#include
#include
//宣告
void
test()
;void
menu()
;void
game()
;void
initboard
(char board[row]
[col]
,int row,
int col)
;//初始化棋盤
void
displayboard
(char board[row]
[col]
,int row,
int col)
;//列印棋盤
void
playermove
(char board[row]
[col]
,int row,
int col)
;//玩家下棋
void
computermove
(char board[row]
[col]
,int row,
int col)
;//電腦下棋
char
iswin
(char board[row]
[col]
,int row,
int col)
;//判斷是否贏或和棋
intisfull
(char board[row]
[col]
,int row,
int col)
;//判斷是否和棋
//主函式呼叫test完成遊戲測試
intmain()
//test:描述遊戲進行流程
void
test()
}while
(input);}
//遊戲選單
void
menu()
遊戲的主程式:遊戲的實現
void
game()
;//全部空格
//為了以後想玩m*n子棋,以後在定義中直接修改就可以實現
char ret =0;
//初始化棋盤
initboard
(board, row, col)
;//初始化棋盤
displayboard
(board, row, col)
;//列印棋盤
while(1
)//玩家電腦輪流下
//電腦下棋
computermove
(board, row, col)
;displayboard
(board, row, col)
;//列印棋盤讓玩家看
//判斷電腦是否贏
ret =
iswin
(board, row, col);if
(ret !=
'c')}if
(ret ==
'*')
else
if(ret ==
'#')
else
if(ret ==
'q')
}//初始化棋盤
void
initboard
(char board[row]
[col]
,int row,
int col)}}
//列印棋盤
//期望列印成這個樣子:
// | |
//---|---|---
// | |
//---|---|---
// | |
void
displayboard
(char board[row]
[col]
,int row,
int col)
printf
("\n");
//換行
//2.列印分割行
if(i < row -1)
//防止最後一行列印
printf
("\n");
}}}//玩家下棋
void
playermove
(char board[row]
[col]
,int row,
int col)
else
}else}}
//電腦下棋
void
computermove
(char board[row]
[col]
,int row,
int col)}}
//判斷是否和棋
//返回1表示棋盤滿了
//返回0表示棋盤沒滿
intisfull
(char board[row]
[col]
,int row,
int col)}}
return1;
//滿了
}//判斷是否贏或和棋
char
iswin
(char board[row]
[col]
,int row,
int col)
}//豎n列
for(i =
0; i < col; i++
)//列
}//斜方向
int count3 =0;
for(i =
0; i < row; i++)}
//橫n行
for(i =
0; i < row; i++)}
//豎n列
for(i =
0; i < col; i++
)//列
}//斜方向
int count5 =0;
for(i =
0; i < row; i++)}
//判斷是否和棋if(
1==isfull
(board, row, col)
)else
}//玩家*電腦#平局q繼續c
C語言實現三(n)子棋
關於這個遊戲,我們完全可以用二維陣列來實現,利用二維陣列模擬出乙個棋盤,比如board row col 其中row代表行數,col代表列數。用函式來實現遊戲中的各種行為,並判斷每一次落子後的輸贏,平局,還是未分出勝負繼續進行遊戲。接下來看看實現的 include include include in...
C語言實現井子棋(多子棋)遊戲
標頭檔案 game.h 主函式檔案 主入口 和函式實現檔案 game.c 前言一 主函式檔案 主入口 二 標頭檔案 game.h 三,標頭檔案函式實現檔案 game.c 當然電腦是隨機的沒有相應演算法實現 電腦計算下棋判斷下 贏,所以這裡電腦是隨機下的都是隨機值 include include ga...
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...