Skip to content

Instantly share code, notes, and snippets.

@znd-milktea
Last active August 29, 2015 14:04
Show Gist options
  • Save znd-milktea/483893d875ff7e350ef1 to your computer and use it in GitHub Desktop.
Save znd-milktea/483893d875ff7e350ef1 to your computer and use it in GitHub Desktop.

#超簡易ドラクエ戦闘シミュレータ

##内容 勇者(Warrior)は、属性値として「攻撃力(attack)」を持ちます。 モンスター(Monster)は、属性値として「HP(hitPoint)」「守備力(defence)」を持ちます。

勇者の攻撃(Attack)の種類として「攻撃(Normal)」「会心の一撃(Critical)」「ギラ(Gira)」「ベギラマ(Begirama)」があります。 各攻撃について、モンスターに与えるダメージ(damage)は下記の通りです。

  • 攻撃 = (勇者の攻撃力 - (モンスターの守備力 / 2)) / 2 ※但し結果が1未満になる場合は1
  • 会心の一撃 = 勇者の攻撃力
  • ギラ = 常に12
  • ベギラマ = 常に65

上記の条件で、 ある一連の勇者の攻撃を与えた後の、モンスターの残りHPを計算する関数battleを定義してください。

なお、各属性値はInt型とし、ダメージ計算の端数は切り捨てとします。 また、攻撃中にモンスターのHPが0以下になっても、勇者の攻撃は最後まで継続され、その際のモンスターのHPはマイナスになっていくものとします。

##例 ###ケース1 勇者の攻撃力=5、モンスターのHP=80、守備力=5 勇者の攻撃=[ギラ(12)、ベギラマ(65)、ギラ(12)] →モンスターの残りHPは-9 ※倒した

###ケース2 勇者の攻撃力=30、モンスターのHP=100、守備力=10 勇者の攻撃=[攻撃(12)、会心の一撃(30)、ベギラマ(65)] →モンスターの残りHPは-7 ※倒した

###ケース3 勇者の攻撃力=40、モンスターのHP=200、守備力=100 勇者の攻撃=[攻撃(1)、ギラ(12)、攻撃(1)、会心の一撃(40)、ギラ(12)、ベギラマ(65)] →モンスターの残りHPは69 ※倒せていない

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment