https://paiza.io/ja ← サイトを開いてください。
今回は複数のインスタンスを使ったプログラムを作って見たいと思います。
インスタンスを使うと、動的なプログラムが作りやすくなります。
バトルシーン
関数で表示
関数を使って単純に表示してみます。
fun main() { battle() } fun battle(){ println("おばけの攻撃") println("勇者は20のダメージ") println("勇者のHPが280になった") println("おばけは勇者を倒した!!") }
変数の作成
変数を使って表示してみます。
変数でプログラミングすると、管理が大変です。
fun main() { var mName = "おばけ" var pName = "勇者" var mHp = 100 var pHp = 300 var mAp = 20 var pAp = 40 battle( mName , pName ,mHp , pHp ,mAp ,pAp ) } fun battle( MNAME:String , PNAME:String ,MHP:Int ,PHP:Int , MAP:Int ,PAP:Int ) { println("${ MNAME }の攻撃") println("${ PNAME }は${ MAP }のダメージ") println("${ PNAME }のHPが${ PHP - MAP }になった") println("${ MNAME }は${ PNAME }を倒した!!") }
変数が多くなると、プログラムが複雑になる。
インスタンスの利用
インスタンスを使ってプログラムします。
インスタンスにすると、動的なプログラムが楽に作れます。
fun main() { val ghost:Character = Character() val player:Character = Character() player.name = "勇者" player.hp = 300 player.ap = 40 battle( ghost, player ) battle( ghost, player ) battle( ghost, player ) } fun battle( M:Character , P:Character ) { println("${ M.name }の攻撃") println("${ P.name }は${ M.ap }のダメージ") P.hp -= M.ap println("${ P.name }のHPが${ P.hp }になった") println("${ M.name }は${ P.name }を倒した!!") } class Character { var name = "おばけ" var hp = 100 var ap = 20 }
死亡判定
fun main() { val ghost:Character = Character() val player:Character = Character() player.name = "勇者" player.hp = 300 player.ap = 40 battle( ghost, player ) battle( ghost, player ) battle( ghost, player ) } fun battle( M:Character , P:Character ) { println("${ M.name }の攻撃") println("${ P.name }は${ M.ap }のダメージ") P.hp -= M.ap println("${ P.name }のHPが${ P.hp }になった") if( P.hp <= 0){ println("${ M.name }は${ P.name }を倒した!!") } } class Character { var name = "おばけ" var hp = 100 var ap = 20 }
ドラゴンの追加
クラスとインスタンスを使うと、キャラクターを簡単に追加できます。
fun main() { val ghost:Character = Character() val player:Character = Character() player.name = "勇者" player.hp = 300 player.ap = 40 val dragon:Character = Character() dragon.name = "ドラゴン" dragon.hp = 10000 dragon.ap =500 battle( ghost, dragon ) battle( dragon, ghost ) battle( player, dragon ) battle( dragon, player ) } fun battle( M:Character , P:Character ) { println("${ M.name }の攻撃") println("${ P.name }は${ M.ap }のダメージ") P.hp -= M.ap println("${ P.name }のHPが${ P.hp }になった") if( P.hp <= 0){ println("${ M.name }は${ P.name }を倒した!!") } } class Character { var name = "おばけ" var hp = 100 var ap = 20 }
まとめ
・ 複数のインスタンスを使ったプログラムを作ってみました。
・ 変数で作るより、インスタンス化して作る方がメリットがあります。
- プログラムがシンプルになる。
- インスタンスを簡単に増やせる。
- 動的なプログラムが作りやすい。
- 安定した規模の大きなアプリが作りやすくなる。