第一步:我們要先建立遊戲的選單,利用下面的函式建立選單:
第二步:我們要實現三子棋遊戲的函式,要分幾個模組來思考
1、要根據選單選擇(0 or 1,以及選錯時的應對操作)
我們利用do…while迴圈,至少要迴圈一次
int input=
0; //輸入選項do}
2、建立棋盤。要有井字棋的初始化棋盤,我們用函式initboard實現,並且要將他展示出來用display函式實現
void
initboard
(char board[row]
[col]
,int row,
int col)}}
void
displayboard
(char board[row]
[col]
,int row,
int col)
//展示棋盤
3、用函式實現玩家走的過程,按照從1開始,並判斷座標是否合法,並且走完後都要將棋盤列印出來,利用上述的display函式實現
void
playermove
(char board[row]
[col]
,int row,
int col)
else
}else
}}
4、用函式實現電腦走的過程,並且走完後都要將棋盤列印出來,利用上述的display函式實現
4、判斷輸贏,尤其是平局的情況
利用isfull函式判斷棋盤是否被填滿,利用iswin函式判斷輸贏情況(這裡沒有想到更全面的判斷法)
//判斷棋盤是否填滿
static
intisfull
(char board[row]
[col]
,int row,
int col)}}
return1;
}//判斷輸贏
char
iswin
(char board[row]
[col]
,int row,
int col)
}for
(j =
0; j < col; j++)}
if(board[0]
[0]== board[1]
[1]&& board[1]
[1]== board[2]
[2]&& board[0]
[0]!=
' ')
if(board[2]
[0]== board[1]
[1]&& board[1]
[1]== board[0]
[2]&& board[0]
[2]!=
' ')
//判斷平局(棋盤是否填滿)if(
isfull
(board, row, col)==1
)return
'c';
//繼續走
第三步 遊戲實現
全部**實現:
game.h:
#define _crt_secure_no_warnings 1
#include
#include
#include
#define row 3
#define col 3
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)
;
game.c:
#include
"game.h"
void
initboard
(char board[row]
[col]
,int row,
int col)}}
void
displayboard
(char board[row]
[col]
,int row,
int col)
}printf
("\n");
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)}}
static
intisfull
(char board[row]
[col]
,int row,
int col)}}
return1;
}char
iswin
(char board[row]
[col]
,int row,
int col)
}for
(j =
0; j < col; j++)}
if(board[0]
[0]== board[1]
[1]&& board[1]
[1]== board[2]
[2]&& board[0]
[0]!=
' ')
if(board[2]
[0]== board[1]
[1]&& board[1]
[1]== board[0]
[2]&& board[0]
[2]!=
' ')if(
isfull
(board, row, col)==1
)return
'c';
}
test.c:
#include
"game.h"
void
menu()
void
game()
;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
}void
test()
}while
(input);}
intmain()
希望不足之處,能被指出來,也希望能找到完善的方法,謝謝大家! C語言 三子棋
使用工具 vs2017 分為三部分 game.h 函式宣告 game.c 實現函式功能 test.c main函式 棋盤為3 3的矩陣 規則 1.每回合玩家與電腦只能放置一枚棋子 2.已有棋子的位置不能再放置棋子 3.若有一方的三枚棋子可連城一條直線,則勝利 4.若棋盤棋子已經布滿,但是雙方沒有一方...
三子棋(c語言)
今天做了乙個三子棋小遊戲,寫了好久卻只完成了一部分,先把這部分分享給大家吧!望大家給點建議和指導,最後判斷輸贏部分到現在還沒構思出來,嘿嘿!game.h define crt secure no warnings 1 ifndef game h define game h include inclu...
c語言 三子棋
c語言三子棋 來完善一下三子棋 game.h define crt secure no warnings 1 ifndef game h define game h include include include include define row 3 define col 3 void menu...