Step4:コマの移動機能

該当するターンのコマを選択(クリック)し,もう一度任意のマス目をクリックするとそこに移動する機能 さらに,コマの移動が完了するとLeft/Rightのturnが切り替わる機能

全タスク一覧

[Task4-1]AbstractKomaクラスの更新

[Task4-2]Boardクラスの更新

[Task4-3]InfoAreaクラスの更新

タスク間の依存関係

  • Task4-1,4-2はこの順に実施すること
    • コマが正常に移動できるかはTask4-3完了後に確認できる
  • Task4-3はいつ実施してもよいが,ターンの切り替えが正常に表示されるのはTask4-2実施後になる.

担当者決定

担当者を決定する.開発担当とレビュー担当をTask毎に決定し,記述すること.なお,特定のTaskについて,開発者とレビュアーを同じ人がやってはいけない.また,複数のTaskを一人でまとめて実施しても構わないが,Step毎に最低2人は開発を担当すること.

Task 4-1 Task 4-2 Task 4-3
開発
レビュー  

[Task4-1]AbstractKomaクラスの更新

実施内容

move()メソッドとupdatePos()メソッドを追加する

  • move()メソッドは移動先の座標(toX, toY)を受け取り,updatePos()メソッドに渡す
  • updatePos()メソッドは,コマの座標(x,y)を(toX,toY)に更新し,GameStatusクラスの変数gsのturn変数の値を0⇔1に変換する

AbstractKomaクラス

  void move(int toX, int toY) {
    this.updatePos(toX, toY);
  }
  void updatePos(int toX, int toY) {
    this.x=toX;
    this.y=toY;
    gs.turn = (gs.turn+1)%2;
  }

レビュー項目

  1. AbstractKomaクラスのmove()メソッドとupdatePos()メソッドが↑の内容になっていることを確認する.

[Task4-2]Boardクラスの更新

実施内容

select()メソッドを更新する

  • select()メソッドにおいて,選択されたコマが存在した場合に,そのコマのmove()メソッドを呼び出す処理を追加する.

Boardクラス

  void select(int x, int y){
    AbstractKoma koma = komaList.getSelectedKoma();
    if(koma==null){
      komaList.select(x,y);
    }else{
      koma.move(x,y);
      koma.kStat.selected=false;
    }
  }

レビュー項目

  • Boardクラスのselect()メソッドが↑になっているかを確認する
  • プログラムを実行し,下図のようにコマが移動できるかとLeftの手番が終わったら(コマが移動できたら),Right側のコマが移動できるようになることを確認する


[Task4-3]InfoAreaクラスの更新

実施内容

InfoAreaクラスのdraw()メソッドを更新する.

  • draw()メソッドにおいて,gs.turnの値が0のときは"<- Left turn",1のときは"Right turn ->"とInfoAreaに表示する処理を追加する.
    • 追加場所はLeftの場合はInfoAreaの左より,Rightの場合は右寄りになるようにする.

InfoAreaクラス

  void draw() {
    fill(#FFFFFF);
    rect(posX*SQUARESIZE, posY*SQUARESIZE, yoko*SQUARESIZE, tate*SQUARESIZE);
    fill(#000000);
    textSize(20);
    if (gs.turn==0) {
      text("<- Left turn", (posX+0.3)*SQUARESIZE, (posY+0.5)*SQUARESIZE);
    } else {
      text("Right turn ->", (posX+yoko-1.7)*SQUARESIZE, (posY+0.5)*SQUARESIZE);
    }
  }

レビュー項目

  1. Task4-2の処理でturnが切り替わったときに,InfoArea内の表示が切り替わることを確認する
  2. Left/Rightどちらの手番かを下図のように正しく表示していることを確認する

results matching ""

    No results matching ""