熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

JAVA模塊游戲規則和界面設計(一)

2013-11-23 19:30:01  來源: Java核心技術 

  本模塊為游戲規則和界面設計計劃於完成目前進展順利預計將提前一天完成
  
  本模塊分兩部分
  
  )界面設計准備需要的圖片文件等設計圖形界面該部分設計已完成耗費時間兩天主要類
  
  MainFrame游戲窗口初步定為游戲本身將擁有三個邏輯成員
  
  UI游戲界面只負責顯示(完成)
  
  GameMaster游戲管理者負責游戲秩序監控玩家行為及修改游戲狀態
  
  StateObserver游戲狀態觀察者觀察游戲狀態並在UI上顯示(完成)
  
  )游戲規則設計設計游戲規則及ChessPlayer和游戲間的互動主要類
  
  GameMaster游戲管理者負責游戲秩序監控玩家行為及修改游戲狀態當玩家為人類時監控若干ChessGrid及三個輔助JButton當玩家
  
  為電腦AI時監控AI得到落子位置根據落子的位置及規則做出相應的行為最後修改游戲狀態GameState包括記錄棋譜和切換用戶
  
  GameState激發其觀察者StateObserver修改狀態顯示其擁有的域為
  
  ChessGrid[][][]棋格數組
  
  JButton[]輔助按鈕
  
  GameState游戲狀態擁有兩個玩家或為人類或為AI;
  
  GameMaster部分算法
  
  mouseClicked() {
  //handle mouse event
  //假如落子位置合法關閉ChessGrid監控
  status = checkStep(current);
  //假如需要輔助輸入開啟輔助Button監控;return;
  nextPlayer();
  }
  
  actionPerformed() {
  handle(Decision);
  nextPlayer();
  }
  
  nextPlayer() {
  //ready for next player
  GameStateaddStep(currentDecision);
  GameStatenextPlayer();
  while(!GameStateisHumanTurn()) {
  decision = GameStategetNextStep(current);
  status = checkStep(current);
  //假如需要輔助輸入因為AI在計算current時必定已考慮好如何輸入
  handle(decision);
  GameStateaddStep(currentDecision);
  GameStatenextPlayer();
  }
  //開啟ChessGrid監控准備接受人類輸入
  }
  
  GameState為被觀察者擁有兩個ChessPlayernextPlayer()中首先notifyObserver()修改狀態然後指向下一個ChessPlayer
  
  getNextStep()中調用當前ChessPlayer提供的getNextStep()方法獲取AI計算結果
  
  StateObserver為觀察者觀察GameState的狀態並做出相應修改
  
  目前剩余的任務有
  
  )GameMaster中需要判斷游戲結束游戲結束條件將在下列條件中選擇
  
  a)無法繼續落子判和
  
  b)一方子全滅判輸
  
  c)一方落子時間超過期限判輸
  
  d)一方三子連珠判贏
  
  )GameMaster中增加時間限制
  
  )通過MainFrame中的菜單對游戲進行控制
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26976.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.