Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
project
src
.gitignore
.travis.yml
LICENSE
README.md
build.sbt
set_version.sh

README.md

towerdefense-scala

Build Status

how to use

sbt dependency

libraryDependencies += "org.nisshiee" %% "towerdefense-scala" % "1.0.2"

Scaladoc

http://nisshiee.github.io/towerdefense-scala/doc/1.0.2/

Playerの実装

org.nisshiee.towerdefensescala.Playerを継承することで、 Sampleと同様にJavaからオブジェクトを生成して動作させることができるPlayerを実装できます。

例:

import org.nisshiee.towerdefensescala._

class MyPlayer(name: String) extends Player[Int](name) {

  def init: Int = 0

  def action: ((Snapshot, Int)) => ((Seq[Command], Int)) = {
    case (snapshot, turn) =>
      List(Command(Point(turn, 1), WeakTower)) -> (turn + 1)
  }
}

デフォルトコンストラクタの引数 name: String は、 Javaからの呼び出しに合わせるため、おそらく必須です。

Player abstract classは、型パラメータAを持っています。 Aは、actionの呼び出しを超えて引き継げる"状態"の型です。 この例ではIntを指定していますが、独自の型を指定できます。

initには、初回のaction呼び出し時に渡される"状態"を指定します。

actionが、AI部分です。 「ゲームの状態と、Playerの状態を受け取り、Commandと次のPlayerの状態を返す」関数を実装します。