お昼休みのあいだにストラウストラップスの本をみながら飛来物を格納するためのリストを完成させる。 でもたぶん、このたぐいのクラスって、きっとsunが、あらかじめ用意してくれてるんだろうけど。
さっそく帰ってきてから、その飛来物格納リストをつかって矢を描画できるようにしてみたけど、おもすぎる…。 動作も不安定だし、ときどきフリーズするし、ていうかこれってブラクラ? やっぱり矢の一本一本、兵士の一人一人にまでスレッドわりふっているのが原因なのかなあ…。 それか、なんらかのポインタがnullになっているか、オブジェクトが破棄されずに使用メモリがふくれあがってるのかもだけど…。
とりあえず対策として矢の一本一本にスレッドをわりふるのをやめる。 あくまでスレッドは飛来物格納リストひとつだけにわりふり、 矢の座標移動は、このリストから移動用のメソッドを呼び出すことで対応しよう。 でも、どこかに虫たんがひそんでるらしく、うまく、うごいてくれないよ。(ノ_・、)くすん
飛来物リストのメソッドをいくつか修正して、やっと、うまく矢が描画できた。 やっぱり虫さん、飛来物リストのなかに潜んでいたのね。…だけど疲れた。 にしても、ひとつ気になるのは、たまに弓兵がユニットのいないところめがけて矢を射放つこと。 おそらく原因は攻撃範囲に敵兵がいないか探索するメソッドなんだろうけど…。
さて一区切りついたので各クラスの再設計をしようかと思う。 そして、できうるならば、この戦術ゲームをもとに戦略ゲームを作ってみようかと思う。
世界には味方の軍事ユニット、敵の軍事ユニット、そして中立の「町の人」がいる。 町の人を支配すると定期的に金銭・農作物が手に入る。 これを元手に武器を買い、町の人の一部を徴兵しつつ自軍を増強。 最終的には敵の軍事ユニットをすべて打ちやぶり天下統一をはたす。
基本的に内政は、コンピュータあやつる町の人まかせ。 プレイヤーのすることは軍隊・官僚を編成することで町の人から徴税。 あとは敵国の軍事ユニットを撃破し敵の支配する町の人を獲得してゆき天下を統一。
町の人は、かってに町を発展させたり田畑を耕したりしている。 町の人の増減は世界の農地の増減に比例する。
しまった。コンパイル済みのインナークラスは名前に「$」が、はいってるから、うまくアップできない…。 しょうがない、あした朝おきたら、ぜんぶまとめてアーカイブ化しよう…。
朝にしようとおもったけど、けっきょく夜中のうちにアーカイブ化。 動いてくれて、よかったよかった。それに圧縮してアーカイブ化したほうがダウンロードも速いしね。v(=∩_∩=)ぶいぶい
クラスとか全体的な構造の見直し。とりあえず兵士たち一人一人にスレッドをわりふることをやめる。 かわりにRunnableインターフェイスをインプリメントしたリストクラスをつくった。 矢とおなじく兵士たちも、このリストクラスから仮想的なrunメソッドをよびだすことにしよう。
あとあと完成にむけて地形クラスもつくって、boardクラスも改造してみようかとおもう。 たぶん、つぎの土曜日か日曜日までは、とうぶんコンパイルできそうにないや。
先日トムキャットをダウンロードした。トムキャットというのはJavaサーブレット。 Javaサーブレットっていうのは、はやい話、サーバー上でうごくアプレットみたいなもの。(ってずいぶん、いいかげんな説明だな。。。)
で、そのトムキャットをセットアップしてみた。すべて英文だから翻訳ソフトおおいそがし。 べんりな世の中ですね。って、おれこんなことしてる場合じゃないや。せめて今週中にはクラスの再設計おわらせなきゃ。。。
とりあえず、前の日記で書いた戦略シミュレーション。イメージが、よりいっそう明確になるように文章にしてみた。 ついでに新ディレクトリも作ってみたよ。「三国志みたいななにか」