60日間全力プログラミング

プログラミング初心者が二ヶ月間でどこまでいけるかを記録したプログラミング学習ブログ

課題2 モンスターのHPを0にすることができた!

■ゲームの流れ
1. モンスターが現れる。
2. 勇者はどのモンスターを攻撃するか選ぶ。
3. 勇者の攻撃が実行される。
4. 全てのモンスターのHPが0になった場合ゲーム終了。
そうでない場合、1に戻る。
 
※モンスターからの攻撃はない。
※モンスターは複数体現れる。
※ダメージは(攻撃力 - 防御力)である。
 
■実装条件
・生物クラス、モンスタークラス、勇者クラスをつくる
・モンスタークラス、勇者クラスは生物クラスを継承する
オーバーライドを使う
複数のモンスターを管理するのにListクラスを使う
 
 
HP0にするまで攻撃はfor文を使って実行してみました。
モンスターを複数体作ってListクラスを使うですね、
Listクラスとは使ってことありませんが、何かを並列で管理るために便利なものでしょう。
 
やってみます!
 
 
Main
public class Main {
   
public static void main(String[] args) {
       
//勇者を作成
      
        Character c =
new Character();
       
        c.name =
"やっつん";
        System.out.println(
"生物" + c.name + "が第一世界に召喚された。");
       
        Hero h =
new Hero();
        h.name =
"マッサル";
        h.hp =
100;
        h.power =
20;
       
        Goblin g1 =
new Goblin();
        g1.name =
"ゴブリン";
        g1.hp =
50;
        g1.defence =
10;
        g1.suffix =
'A';
        System.out.println(
"ゴブリン" + g1.suffix + "が現れた!!");
        g1.dance();
        g1.die();
       
        h.damage = h.power - g1.defence;
        h.sleep(
10);
        h.attack(g1);
       
        h.finish();
       
        h.Status();
        g1.Status();
    }
}
Character
public class Character {

    String name;
   
int hp;
   
int power;
   
int damage;
   
int defence;
   
int recover;
   
   
}
Hero
public class Hero extends Character {

   
   
   
void sleep(int hour){
        recover =
10 * hour;
       
this.hp += recover;
        System.out.println(
this.name + "は、" + hour + "時間眠って" + recover + "回復した。");
        System.out.println(
this.name + "の現在のHP" + this.hp + "です。");
       
    }
   
   
void attack(Goblin g1){
       
for(int i=0; i<g1.hp; i++){
           
        System.out.println(
this.name + "は、" + g1.name + "" + damage + "ダメージを与えた");
        g1.hp -= damage;
        System.out.println(g1.name +
"の現在のHP" + g1.hp + "です。");
        System.out.println(
"-----------------------------");
           
if(g1.hp>0){
                System.out.println(
"激しい戦いは続く");
            }
else{
                System.out.println(
"ゴブリン死亡");
            }
       
        }
    }
   
   
void finish(){
        System.out.println(
"マッサルは次の冒険へと旅立った。");
    }
   
   
public void Status(){
        System.out.println(
"###ステータス###");
        System.out.println(
"勇者:"+this.name+" HP:"+this.hp);
    }
   
//読み込み可能
   
public int getHp(){
       
return this.hp;
    }
   
//書き込み可能
   
public void setHp(int hp){
       
this.hp=hp;
    }
}
Goblin
public class Goblin extends Character{

   
char suffix;
   
   
void dance(){
        System.out.println(
"ゴブリンは無我夢中でダンスした");
    }
   
void die(){
       
if(hp<0){
            System.out.println(
"ゴブリンは動かなくなった。");
        }
    }
   
public void Status(){
        System.out.println(
"###ステータス###");
        System.out.println(
"ゴブリン:"+this.name+" HP:"+this.hp);
    }
   
//読み込み可能
   
public int getHp(){
       
return this.hp;
    }
   
//書き込み可能
   
public void setHp(int hp){
       
this.hp=hp;
    }
}