PROGRAM PYTHON

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

 

 

ジョブを設定して戦闘にバリエーションをつけよう

今回はキャラクターを戦士、盗賊、術師というジョブに分けて、そのジョブに対応したパラメーターを設定してみましょう。
戦士はHPや防御力は高いが敏捷性が低く、盗賊は敏捷性は高いがその他は平均的なステータス、術師は攻撃力は高いがHPや防御力が低くなるようにしています。

 

実行イメージ

実行イメージは、以下の通りです。
画面の表示は、前回と同様です。

 実行例
C:\>python battle5-1.py
戦士A Aチーム HP[69] 攻撃力[17] 防御力[15] 敏捷性[ 3]
盗賊B Aチーム HP[67] 攻撃力[ 7] 防御力[11] 敏捷性[20]
術師C Aチーム HP[45] 攻撃力[26] 防御力[ 3] 敏捷性[ 7]
戦士D Bチーム HP[78] 攻撃力[14] 防御力[15] 敏捷性[ 5]
盗賊E Bチーム HP[68] 攻撃力[ 7] 防御力[10] 敏捷性[14]
術師F Bチーム HP[30] 攻撃力[26] 防御力[ 5] 敏捷性[10]
盗賊Eは盗賊Bの攻撃をかわした!
術師Fは戦士Aに28のダメージ
→ 戦士Aの残HP[41]
盗賊Eは盗賊Bに3のダメージ
→ 盗賊Bの残HP[64]
戦士Dは盗賊Bの攻撃をかわした!
術師Cは盗賊Eに44のダメージ
戦士Dは術師Cに25のダメージ
→ 盗賊Eの残HP[24]
→ 術師Cの残HP[20]
 
中略
 
術師Cは盗賊Eに44のダメージ
→ 盗賊Eの残HP[0]
.... 盗賊Eは倒された ....
盗賊Bは術師Fに20のダメージ
→ 術師Fの残HP[10]
戦士Dは術師Cに30のダメージ
→ 術師Cの残HP[0]
盗賊Bは戦士Dに2のダメージ
→ 戦士Dの残HP[35]
術師Fは盗賊Bに40のダメージ
→ 盗賊Bの残HP[0]
.... 術師Cは倒された ....
.... 盗賊Bは倒された ....
戦士Aは術師Fに20のダメージ
→ 術師Fの残HP[0]
戦士Dは戦士Aに33のダメージ
→ 戦士Aの残HP[0]
.... 術師Fは倒された ....
.... 戦士Aは倒された ....
++ Bチーム 戦士Dの勝利! ++

 

Pythonスクリプト

Playerクラスに新たにself.jobという変数を追加して、ジョブによってパラメーターの値を変えるようにしています。
戦士のみ攻撃が確率でクリティカルになるように設定しています。(96行目)
また、術師の攻撃は防御力が無効となります。(100行目)

 

-PROGRAM, PYTHON
-