2017-05-19 6 views
-1

私は2d配列を使ってjavaでボードゲームを作成しています。ボードはJFrameで表示されます。ボードゲームのポジションはどのように記録されますか? (Java)

どのようにして2次元アレイ上の部分を「移動」し、それらを画面上に表示しますか(2次元配列はボタンで表示されます)。

私のゲームを2次元アレイで表示するには良い方法はありますか?ゲームを更新するにはどのようなアルゴリズムが良いでしょうか?

+0

誰でもソースコードを望んでいるならば、私は2時間以内にそれを追加します。 –

+0

質問を投稿するのを2時間遅らせるだけの理由はありません。 – Dukeling

答えて

1

mvc mini architectureを使用します。

import java.util.Observable; 
import java.util.Observer; 
public class So44075321 { 
    enum Piece { 
     vacant,knight,bishop; 
    } 
    static class Game extends Observable implements Observer { 
     Game() { 
      for(int i=0;i<n;i++) 
       for(int j=0;j<n;j++) 
        board[i][j]=Piece.vacant; 
      addObserver(this); 
     } 
     @Override public String toString() { 
      StringBuffer stringBuffer=new StringBuffer(); 
      for(int i=0;i<n;i++) { 
       for(int j=0;j<n;j++) 
        stringBuffer.append(board[i][j]+" "); 
       stringBuffer.append('\n'); 
      } 
      return stringBuffer.toString(); 
     } 
     void move(int i,int j,int k,int l) { 
      Piece piece=board[i][j]; 
      board[i][j]=Piece.vacant; 
      board[k][l]=piece; 
      setChanged(); 
      notifyObservers(); 
     } 
     final int n=3; 
     Piece[][] board=new Piece[n][n]; 
     @Override public void update(Observable o,Object arg) { 

      System.out.println("update: "+toString()); 
     } 
    } 
    public static void main(String[] args) { 
     Game game=new Game(); 
     game.board[0][0]=Piece.knight; 
     System.out.println(game); 
     game.move(0,0,1,1); 
    } 
} 
関連する問題