プログラミング初心者のブログ

プログラミング初心者がプログラミングについて勉強したことをアウトプットするブログ

プログラミング初心者がJavaで簡単なゲームをつくってみた(その1)

プログラミング初心者がJavaで簡単なゲームをつくってみたので紹介します。

どれくらい簡単かというと、コマンドプロンプト上で動く程度のものです。

もっと別にいい方法があるとかあるかもしれませんが、プログラミング初心者がはじめてつくったものなのでご了承ください。

 

 

 

戦闘のシステムをつくった

はじめに戦闘時のシステムをつくりました。

冒険者(プレイヤー)と敵を一人ずつに設定します。

ステータスはHP(体力)のみ。

こんな感じで書き出しました。

f:id:pbsb:20181009141345p:plain

 コンパイルするとこんな感じ。

f:id:pbsb:20181009141733p:plain

 

とりあえず書き出してみた

次に戦闘で体力が減っていく様(?)をSystem.out.printlnだけで書き出してみました。

f:id:pbsb:20181009142223p:plain

冒険者のHPを10、敵のHPを3に設定してあるので、冒険者が3回攻撃した時点で終了。

コンパイルしたもの。

f:id:pbsb:20181009142611p:plain

なんとなくできたけど、これだと冒険者のHPが10で敵のHPが3の時しか使えないし、冒険者が倒される場合もあるのでif文を使って条件分岐させます。

 

if文を使って条件分岐させた

 if文を使って条件分岐させます。

f:id:pbsb:20181009144003p:plain

先に冒険者が攻撃するので、そのあとの

if(mhp != 0){}

 の{}内に敵のHPが0じゃない場合を書きます。

敵が冒険者に1回攻撃したら、次は冒険者が敵に攻撃する番ですが、敵に攻撃された時点で冒険者のHPが0になる場合もありますから、ここで

if(php == 0){} 

 として冒険者のHPが0になった場合を書きます。

最後に

if(mhp != 0){}

 じゃない場合(敵のHPが0になった場合)を

else{}

 に書きます。

これで冒険者のHPと敵のHPが入れ替わったりしても使えるようになりましたが、コンパイルしてみると

f:id:pbsb:20181009145548p:plain

if文で条件分岐させただけなので途中で終わってしまいます。

なので次にwhile文を使ってループさせます。

 

while文を使ってループさせた

 while文を使ってループさせます。

はじめはfor文を使おうと思ったのですが、うまくいきませんでした。

ここら辺の使い分けは初心者なのでよくわからん状態。

でも、なんとなく条件分岐の条件式の変数が2つ以上あるものはwhile文の方が使いやすそうな感じ?

f:id:pbsb:20181009150544p:plain

while内がtrueの場合にループさせるようにしました。

冒険者か敵のHPが0になった場合にループが止まるように、それぞれに

break;

 を書き足しました。

これでコンパイルすると

f:id:pbsb:20181009150920p:plain

ちゃんとループしました。

冒険者と敵のHPを入れ替えると、

f:id:pbsb:20181009151316p:plain

ちゃんと条件分岐できました。

 

まとめ

最終的な全文はこんな感じ。

f:id:pbsb:20181009152645p:plain

とりあえず、戦闘はこんな感じで完成です。