首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

J2ME MIDP 1.0 入門遊戲開發:五子棋 1.0 完整教學

     編輯:Java 程式設計入門

簡介

作者 yinowl 於 2005 年 1 月完成的 J2ME 入門首作,雖無電腦 AI(僅雙人對戰),但完整展示 J2ME 流程、按鍵響應、繪圖等核心概念。代碼採「功能區塊式」說明,而非檔案整段給出,助於理解設計思路。

設計架構

資料結構

定義 Chesses 類別表示棋子,含 boolean isPlayer1 區分玩家。棋盤用 Chesses[][] 二維陣列,但不預先建立所有物件,而是落子時才在對應位置 new Chesses(),節省記憶體。

流程

依陣列繪製棋盤,玩家落子修改陣列並 repaint() 更新畫面。介面簡化:啟動即進入對戰,邊框顏色指示當前玩家(白/紅),提供「重新開始」、「離開」按鈕。

核心類別實作

應用程式類:Gobang.java

繼承 MIDlet,管理 GobangCanvas 顯示。

package com.occo.j2me.game.gobang;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
public class Gobang extends MIDlet {
    GobangCanvas gobang;
    public Gobang() { super(); gobang = new GobangCanvas(this); }
    protected void startApp() { Display.getDisplay(this).setCurrent(gobang); }
    protected void pauseApp() {}
    protected void destroyApp(boolean arg0) {}
}

遊戲畫布類:GobangCanvas.java

繼承 Canvas 實作 CommandListener,處理邏輯、繪圖、互動。

public class GobangCanvas extends Canvas implements CommandListener {
    protected Gobang gobang;
    // 建構子、paint 等方法...

棋子類:Chesses.java

public class Chesses {
    boolean isPlayer1;
    public Chesses(boolean isPlayer1) { this.isPlayer1 = isPlayer1; }
}

繪圖模組化

在 GobangCanvas 中分離繪製邏輯:

  • paintMap():繪製 15x15 棋盤格線,依螢幕短邊計算尺寸並置中。
  • paintSelected():繪製藍色選取框,位置對應陣列索引。
  • paintChesses():遍歷陣列,依 isPlayer1 繪製白/紅圓棋子。
  • paintPlayer():邊框 3 像素寬,顏色指示當前玩家。
  • paint():按順序呼叫上述方法(背景→棋盤→選取框→棋子)。

按鍵與命令處理

  • 命令:restartCmd(重新開始)、exitCmd(離開),註冊 CommandListener。
  • keyPressed():處理上下左右移動選取框(模數運算實現循環),FIRE 鍵落子並切換玩家。
  • init():重置陣列、玩家、選取位置。

勝負判定

預留 checkWin() 方法供擴展,雙人對戰下肉眼可判斷勝負,非必須實作。

總結與擴展方向

完整遊戲僅用 MIDP 1.0 核心功能。可擴展:片頭動畫、音效、電腦 AI、藍牙對戰。歡迎交流(MSN/QQ/Email 見原文)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved