Java Swing:連線遊戲(井字遊戲、五子棋)
範例1:佈局3X3井字遊戲畫面
建立專案,取名 OOPB_Week16_Go
使用 GridLayout
在 Class 加入三個欄位 與 Layout 變數
private int mRow;
private int mCol;
private int mConn;
增加下列程式碼
public void newGame() {
newBoard();
setVisible(true);
}
private void newBoard() {
setLayout(new GridLayout(mRow, mCol, 2, 2));
String title = String.format("%dx%d-%d連線遊戲 by 東吳資管", mRow, mCol, mConn);
setTitle(title);
int w = mCol * 77;
int h = mRow * 77;
setSize(w, h);
for (int k = 0; k < mRow * mCol; k++) {
JButton btn = new JButton();
add(btn);
}
}
執行畫面如下
練習:將畫面更改為 6X5 4個連線
範例程式檔案下載 SwingGomoku_V1 下載後加入自己的專案OOPB_Week16_Go中
範例2:在3X3井字遊戲畫面放上圖形
相關圖示如下,按滑鼠右鍵下載另存新檔,複製到Eclipse專案中
圖形可以到google搜尋 圖示 或下列圖示下載
練習:將畫面更改為 5X4 4個連線 與不同的圖示
範例程式檔案下載 SwingGomoku_V2 下載後加入自己的專案OOPB_Week16_Go中
範例3:滑鼠按下時,輪流顯示不同圖形
練習:按鈕不能重複按,並且在標題列顯示已經按下多少次
範例程式檔案下載 SwingGomoku_V3 下載後加入自己的專案OOPB_Week16_Go中
範例4:判斷輸贏或平手
練習:改成可以產生 4 X 4 棋盤,4 個連線贏
範例程式檔案下載 SwingGomoku_V4 下載後加入自己的專案OOPB_Week16_Go中
實習練習:改成可以產生 6 X 5 棋盤,4 個連線贏
假設4個連線贏,考慮2個狀況
- OO_OO ,然後在中間的 _位置 再填入 O,玩家 O 贏嗎?
- OOXOO 玩家 O 嬴嗎?
實習進階挑戰練習
- 改成可以產生 m X n 棋盤,p 個連線贏
- 有選單,可以選擇結束、新遊戲
- 有關於,顯示設計團隊資訊
- 提供參數設定:包括列數、行數、連線數
- 提供連線對戰
參考範例
井字遊戲(圈叉)、五子棋遊戲展示
請下載遊戲壓縮檔(使用滑鼠右鍵另存新檔),儲存於硬碟中(例如 C:\)
將壓縮檔解壓縮,產生 gogame目錄
按「開始」>「執行」
輸入 cmd
在Console 文字視窗中,輸入
cd c:\gogame
java GoGame