ユーザインターフェイス 課題 開発用ドキュメント

目次

  1. ゲームのルール
  2. 配布コードの説明
  3. サンプル UI の説明
  4. マップエディタの説明

ゲームのルール

なるべく多くのコマを敵のコマや障害物を避けながらゴールまで導くことが目標である。

マップについて

動きについて

敵の AI について

配布コードの説明

配布コードは Java 5.0 で実装されている。 ゲームのコア部分は gamecore.jar において実装されている。 コア部分からの情報取得については、 以下のメソッド一覧と ui フォルダに置かれているサンプルを参照すること。

ゲーム開始

class game.Game
public void loadFile(java.io.File file)
public void startGame()

ゲーム情報取得

class game.Game
public static final double radius (コマの半径)
public double getPlayerMaxSpeed()
public double getEnemyMaxSpeed()
public List<Game.Player> getPlayers()
public List<Game.Enemy> getEnemies()
public List<Game.Obstacle> getObstacles()
public java.awt.Rectangle getGoalRect()

盤面上のオブジェクトの情報取得・操作インターフェイス

class game.Game.Player
public boolean isCaptured()
public boolean isWinner()
public java.awt.Point getLocation()
public void setVelocity(double x, double y)
class game.Game.Enemy
public java.awt.Point getLocation()
class game.Game.Obstacle
public java.awt.Point getLocation()
public int getRadius()

ゲーム状態取得

ゲーム状態 (読み込み完了、1 ステップ進行、終了) はゲームコアから game.GameStateListener へ通知される。

game.GameStateListener
public void gameInitialized()
public void gameProgressed()
public void gameFinished(game.Result result)

ゲーム結果取得

game.Result
public double elapsedTime (経過時間)
public int winner (ゴールしたコマの数)
public int total (コマの総数)

サンプル UI の説明

サンプル UI のソースは ui フォルダにある。 コンパイル方法は compile.bat 実行方法は run.bat をそれぞれ参考に (もしくはそのまま使用) すること。

サンプルはキーボードとマウスを利用したごく単純なユーザインターフェイスを実装している。 コマをクリックすることで選択し、コマが選択された状態でキーボードのカーソルキーを押すことで速度を指定する。 (とても、使いにくい。課題を行う者は少なくともこのインターフェイスよりはずっと使いやすいものを作ること。)

マップエディタの説明

マップエディタのソースは editor フォルダにある。 コンパイル方法、実行方法はサンプル UI のそれを参考にすること。 速度上限を設定する機能はないので、保存されたマップをテキストエディタで編集すること。 意欲ある者はより使いやすいマップエディタを自作するとよい。