/*
 * =================
 *  クラスの定義
 * =================
 */
// バラモスクラスの定義
var Baramos = function(){
  this.monstername = "バラモス"; // モンスターの名前。これはプロパティ
  this.nigechi = 0; // 逃げ値。これはプロパティ
  this.attack = function(lv){ // 攻撃。これはメソッド
    if(lv < 20 ){ // 勇者のレベルが低ければやさしい攻撃、高ければイオナズン
      return "やさしい攻撃。ダメージ10";
    } else {
      return "イオナズン。ダメージ150";
    }
  }
}
// スライムクラスの定義
var Slime = function(){
  this.monstername = "スライム";
  this.nigechi = 100;
  this.attack = function(lv){
    return "ぽよんっ。ダメージ1";
  }
}

/*
 * =================
 *  動作開始。ここから実際の挙動になる。
 * =================
 */
var level = 40; // 勇者のレベル。ここをいろいろな値に変えてみると動作がなんとなくわかるかも
var d = new Date(); // Dateはもともと用意されているクラスなので上部で改めて定義しなくても良い
var second = d.getSeconds(); // Dateで予め定義されているgetSeconds()メソッドを利用し、現在秒を取り出す

// モンスターに出会う。
var souguuMonster; // この変数に、遭遇するモンスターのオブジェクトを入れる
if(second > 30 ){ // 現在秒が30秒以降ならスライムに遭遇、それ以外ならバラモスに遭遇
  souguuMonster = new Slime();
}else{
  souguuMonster = new Baramos();
}
// どのモンスターに出会ったかを表示する
document.write(souguuMonster.monstername + "に出会った
"); // 逃げてみる. // ここではモンスターが持っているnigechiの値が50を超えていたら必ず逃げられるものとする if(souguuMonster.nigechi > 50){ document.write("逃げ成功
"); } else if( (souguuMonster.nigechi > 30) && (second % 2 == 1) ) { // nigechiが50以下30超えの値の場合、かつ、現在秒が奇数の場合 document.write("なんとか逃げ成功
"); } else { document.write("逃げられなかったorz
"); // 逃げられなかった場合はそのまま攻撃を食らうペナルティ document.write(souguuMonster.attack(level)); // モンスターによっては勇者のレベルで攻撃を変えてくる } // 参考データを表示 document.write("

-[参考]------------
"); document.write("勇者のレベル:" + level + "
"); document.write("現在秒:" + second + "
"); document.write("逃げ値:" + souguuMonster.nigechi + "
");