PROGRAM PYTHON

Pythonスクリプト【スレッドを使ったチーム戦闘シミレーション②】

 

 

キャラクターに防御力を設定して、相手の攻撃を相殺しよう

今回は前回のプログラムからキャラクターに防御力を設定して、相手の攻撃を相殺する処理を追加します。
ただし、攻撃を防御で相殺してしまうと相手に与えるダメージが少なくなってしまうので、一定の確率でダメージが2倍、3倍になるように調整します。

 

実行イメージ

ダメージが0の時は、「〇〇は△△の攻撃をかわした!」と表示するようにします。

 実行例
C:\>python battle4-1.py
戦士A Aチーム HP[48] 攻撃力[ 2] 防御力[ 7] 敏捷性[ 5]
戦士B Aチーム HP[32] 攻撃力[15] 防御力[13] 敏捷性[13]
戦士C Aチーム HP[23] 攻撃力[ 4] 防御力[ 8] 敏捷性[19]
戦士D Bチーム HP[16] 攻撃力[14] 防御力[ 9] 敏捷性[12]
戦士E Bチーム HP[29] 攻撃力[11] 防御力[10] 敏捷性[ 7]
戦士F Bチーム HP[72] 攻撃力[20] 防御力[ 9] 敏捷性[ 8]
戦士Cは戦士Eに20のダメージ
→ 戦士Eの残HP[9]
戦士Fは戦士Aに18のダメージ
→ 戦士Aの残HP[30]
戦士Dは戦士Bに42のダメージ
.... 戦士Bは倒された ....
→ 戦士Bの残HP[0]
戦士Cは戦士Fに2のダメージ
→ 戦士Fの残HP[70]
戦士Eは戦士Aに11のダメージ
戦士Fは戦士Cの攻撃をかわした!
→ 戦士Aの残HP[19]
戦士Dは戦士Cに22のダメージ
→ 戦士Cの残HP[1]
戦士Fは戦士Aの攻撃をかわした!
戦士Cは戦士Dに30のダメージ
戦士Fは戦士Aに44のダメージ
→ 戦士Dの残HP[0]
→ 戦士Aの残HP[0]
.... 戦士Dは倒された ....
戦士Eは戦士Cに16のダメージ
→ 戦士Cの残HP[0]
.... 戦士Cは倒された ....
.... 戦士Aは倒された ....
++ Bチーム 戦士Fの勝利! ++
++ Bチーム 戦士Eの勝利! ++

 

Pythonスクリプト

前回の違いとして、Playerクラスに防御力(self.dfn)を追加します。
random.choices()を使って、攻撃力が一定の確率で2倍、3倍となるようにしています。

 

 

-PROGRAM, PYTHON
-