電子書籍の厳選無料作品が豊富!

現在、勉強のためJavaを使ってポケモンのバトルシステムのデモを作成しています。

ポケモンの技を実装したいのですが、ポケモンの技の内容(処理内容)にバリエーションが多すぎて困っています。
多かれ少なかれ、技には似たような性質があるのでポリモーフィズムを使えばよいと思っているのですが、
「次のターン必ず相手がねむる」
「相手の攻撃をすべて自分に向ける」
「敵に同じ技をださせなくする」
など、イレギュラーな要素も多くて実装方法に困っています。

どのようにすればスマートに実装できるか、お力を貸して頂けたら幸いです。

A 回答 (3件)

>それとも、プログラム自体をデータベースに登録するということでしょうか?


そんなわけはない。

>イレギュラーの要素に対応しようとすると属性が増えたり正規化が辛そうだと考えたのですが
イレギュラーが発生する値は単純に○%とかでいいのでは?
    • good
    • 1
この回答へのお礼

パソコンが故障していたため返信がおくれてしまいました、すみません。

イレギュラーというのはクラスの構造的なもので、技をによって色々なデータが必要になるとポリモーフィズムも意味がなくなるのではないか、という意味でした。
説明不足でした。

地道に少しずつ実装していくことにします。
ありがとうございました。

お礼日時:2012/08/21 05:17

>いっそのこと 「skill パッケージに全スキル手書きでプログラム書いてしまう」というのも手だと思います。


個人的にはここはデータベースを利用するかな。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
DBの利用も考えたのですが、イレギュラーの要素に対応しようとすると属性が増えたり正規化が辛そうだと考えたのですが、その程度ならDB構築としては許容範囲内でしょうか?
それとも、プログラム自体をデータベースに登録するということでしょうか?

お礼日時:2012/07/24 21:32

interface BattleSkill {


void act( BattleCondition cond )
}

という感じで、戦闘の状況を自由にいじれるようにしておくとよいのではないでしょうか。同じようなものをまとめても構いませんが、逆に複雑化する可能性があるので、いっそのこと 「skill パッケージに全スキル手書きでプログラム書いてしまう」というのも手だと思います。
    • good
    • 0
この回答へのお礼

まとめて複雑になると本末転倒なので、1つ1つ書いていくというのも手なのですね。
ご回答ありがとうございました。

お礼日時:2012/07/24 21:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!