プログラミング初心者がJavaで簡単なゲームをつくってみた(その1)
プログラミング初心者がJavaで簡単なゲームをつくってみたので紹介します。
どれくらい簡単かというと、コマンドプロンプト上で動く程度のものです。
もっと別にいい方法があるとかあるかもしれませんが、プログラミング初心者がはじめてつくったものなのでご了承ください。
戦闘のシステムをつくった
はじめに戦闘時のシステムをつくりました。
冒険者(プレイヤー)と敵を一人ずつに設定します。
ステータスはHP(体力)のみ。
こんな感じで書き出しました。
コンパイルするとこんな感じ。
とりあえず書き出してみた
次に戦闘で体力が減っていく様(?)をSystem.out.printlnだけで書き出してみました。
冒険者のHPを10、敵のHPを3に設定してあるので、冒険者が3回攻撃した時点で終了。
コンパイルしたもの。
なんとなくできたけど、これだと冒険者のHPが10で敵のHPが3の時しか使えないし、冒険者が倒される場合もあるのでif文を使って条件分岐させます。
if文を使って条件分岐させた
if文を使って条件分岐させます。
先に冒険者が攻撃するので、そのあとの
if(mhp != 0){}
の{}内に敵のHPが0じゃない場合を書きます。
敵が冒険者に1回攻撃したら、次は冒険者が敵に攻撃する番ですが、敵に攻撃された時点で冒険者のHPが0になる場合もありますから、ここで
if(php == 0){}
として冒険者のHPが0になった場合を書きます。
最後に
if(mhp != 0){}
じゃない場合(敵のHPが0になった場合)を
else{}
に書きます。
これで冒険者のHPと敵のHPが入れ替わったりしても使えるようになりましたが、コンパイルしてみると
if文で条件分岐させただけなので途中で終わってしまいます。
なので次にwhile文を使ってループさせます。
while文を使ってループさせた
while文を使ってループさせます。
はじめはfor文を使おうと思ったのですが、うまくいきませんでした。
ここら辺の使い分けは初心者なのでよくわからん状態。
でも、なんとなく条件分岐の条件式の変数が2つ以上あるものはwhile文の方が使いやすそうな感じ?
while内がtrueの場合にループさせるようにしました。
冒険者か敵のHPが0になった場合にループが止まるように、それぞれに
break;
を書き足しました。
これでコンパイルすると
ちゃんとループしました。
冒険者と敵のHPを入れ替えると、
ちゃんと条件分岐できました。
まとめ
最終的な全文はこんな感じ。
とりあえず、戦闘はこんな感じで完成です。