https://paiza.io/ja ← サイトを開いてください。
このページでは「ゲームをテーマ」に学習したいと思います。
前回の内容を複雑にして、掘り下げたいと思います。
ゲームで考えてみる
![](https://hakoniwadesign.com/wp-content/uploads/2020/05/97bd7e7a6aa045e4bbd0d01c4bf03135-1024x512.jpg)
関数で表示
fun main() { LevelUp() } fun LevelUp() { println("おばけはレベルが上がった!!") println("レベルが6になった") println("HPが220になった") println("APが11になった") println("DPが4になった") }
変数だと大変・・・
fun main() { val name:String = "おばけ" var level:Int = 5 var hp:Int = 200 var ap:Int = 10 var dp:Int = 3 LevelUp(name,level,hp,ap,dp) } fun LevelUp( NAME:String ,LEVEL:Int ,HP:Int ,AP:Int ,DP:Int ) { println("${ NAME }はレベルが上がった!!") println("レベルが${ LEVEL + 1 }になった") println("HPが${ HP + 20 }になった") println("APが${ AP + 1 }になった") println("DPが${ DP + 1 }になった") }
![](https://hakoniwadesign.com/wp-content/uploads/2020/05/10d60d9b2cb20b36176438cb49190ea9-1024x512.jpg)
変数で管理すると、関数の引数が複雑になる。
- 複数の場所で使いにくくなる。
- 引数の増減も管理しにくくなる。
- 変数の値も変化させにくい。
インスタンスを利用
変数をインスタンスにまとめて、引数に渡す
![](https://hakoniwadesign.com/wp-content/uploads/2020/05/ad1e6f95ade947e134e7ce9a0abbbc3c-1024x512.jpg)
fun main() { val m:Monster = Monster() LevelUp(m) } fun LevelUp( M:Monster ) { println("${ M.name }はレベルが上がった!!") println("レベルが${ M.level + 1 }になった") println("HPが${ M.hp + 20 }になった") println("APが${ M.ap + 1 }になった") println("DPが${ M.dp + 1 }になった") } class Monster { var name:String = "おばけ" var level:Int = 5 var hp:Int = 200 var ap:Int = 10 var dp:Int = 3 }
インスタンス化すると、関数がシンプルになる。
結果的に、読みやすいプログラム、改良修正しやすくなる。
インスタンスの編集
コピーしたインスタンスは同期(シンクロ)している。
![](https://hakoniwadesign.com/wp-content/uploads/2020/05/bd4e9ac82c1bdd2613fb3cbd0b660aeb-1024x512.jpg)
fun main() { val m:Monster = Monster() LevelUp(m) LevelUp(m) LevelUp(m) } fun LevelUp( M:Monster ) { println("${ M.name }はレベルが上がった!!") M.level += 1 M.hp += 20 M.ap += 1 M.dp += 1 println("レベルが${ M.level }になった") println("HPが${ M.hp }になった") println("APが${ M.ap }になった") println("DPが${ M.dp }になった") } class Monster { var name:String = "おばけ" var level:Int = 5 var hp:Int = 200 var ap:Int = 10 var dp:Int = 3 }
インスタンス内の変数は編集可能です。
まとめ
・ 関数にインスタンスを渡すことを学習しました。
・ 変数を渡すより、プログラムが読みやすく、編集しやすくなります。