設計思路
先用二維陣列定義乙個棋盤,0代表沒有玩家下過,1代表玩家一的棋子,2代表玩家二的棋子,將棋盤輸出,然後讓玩家依次輸入所要下的位置的行數和列數,並賦值給陣列,之後進行判斷:判斷棋盤上所有棋子是否有連續5個,如果是,則返回獲勝玩家,如果否,則繼續輸入下一步要下的棋子座標
**實現
1 #include2 #include3效果截圖4#define height 15 //
定義棋盤行數
5#define width 15 //
定義棋盤列數
6#define player1 'x' //
定義玩家一棋子
7#define player2 'o' //
定義玩家二棋子89
int map[height][width]; //
定義遊戲棋盤
1011
//輸出棋盤
12void
sc()
1340 printf("");
41for (int i = 0;i <= width;i++)
42 printf("
- "
);43 printf("\n"
);44}45
//落子
46void play(int
player)
4760 printf("
請輸入格仔的列數:");
61 scanf_s("
%d", &targetw);
62while (targetw <= 0 || targetw >width)
6367
if(map[targeth - 1][targetw - 1] ==0
)68 map[targeth-1][targetw-1]=player;
69else
7074}75
76//
判斷遊戲是否結束,並返回勝利玩家
77int pd(int
player)
7891
if (k == 5
)
92return
player;
93for (k = 1;k < 5;k++) //
判斷是否一列連續5個棋子
9498
if (k == 5)99
return
player;
100for (k = 1;k < 5;k++) //
判斷是否一斜線連續5個棋子
101105
if (k == 5
)106
return
player;
107}
108}
109return
0; //
如果都沒有連續5個棋子,遊戲繼續
110}
111//
初始化棋盤
112void
csh()
113118
119120
void
main()
121134 winplayer == 1 ? printf("
恭喜玩家一獲得勝利!!!\n
") : printf("
恭喜玩家二獲得勝利!!!\n");
135 printf("
輸入1重新開始,輸入其他任意數字退出遊戲");
136 scanf_s("
%d",&isagain);
137if (isagain == 1
)138
142143 }
C 實現五子棋
自己寫了一下午,但是還是除錯的時候存在很多問題 繼續改善繼續調整 game.h define game h define row 5 define col 5 void displayboard char board row col int row,int col void gameplayer c...
c 小遊戲 五子棋
include include includeusing namespace std const int x 21 棋盤行數 const int y 21 棋盤列數 char p x y 定義棋盤 int m 0 定義臨時點,儲存輸入座標 int n 0 void display 輸出棋盤 else...
c 小遊戲 五子棋
include include includeusing namespace std const int x 21 棋盤行數 const int y 21 棋盤列數 char p x y 定義棋盤 int m 0 定義臨時點,儲存輸入座標 int n 0 void display 輸出棋盤 else...