スッキリわかるPython入門 第2版

【スッキリ分かるPython入門 第2版: Puzmon】課題9 攻撃処理の実装

0. Puzmonとは

このページは、スッキリ分かるPython入門第2版に掲載されている「Puzmon」の続きです。ゲームの仕様や課題1~5は本書を確認してください。また、課題8のリンクはこちらです。課題8 宝石消滅判定の実装

1.  完成動作イメージ

 

2. 課題9のゴール

  1.  基本的には課題8の仕様を踏襲する。
  2.  宝石消滅の際、属性に対応した攻撃が正しい計算式に基づいて行われる。
  3.  「命」属性の宝石を消した時には、回復処理が正しい計算式に基づいて行われる。
  4.  敵が攻撃する時のダメージも、正しい計算式に基づいて計算される。
  5.  コンボについては実装しなくて良い。

3. 課題9 突破ポイント

課題9で作成する関数

開発対象 概要
ELEMENT_BOOST リスト 2つの属性を添え字に指定すると、ダメージ増幅率を取り出せる
blur_damage 関数 指定した値を中心に指定した範囲で数値をランダムにブレさせるユーティリティ関数
 do_recover 関数

パーティのHPを回復する関数

必要に応じて既存関数を修正したり、表にない関数を新規作成しても構いません。

 

課題9 シーケンス図

 

課題9 突破のポイント

check_banishable 関数、shift_gems 関数 の2つについては、制御構文を活用してかなり複雑な処理が求められる高難度の課題となっています。いずれも力業による書き方からエレガントな書き方まで、開発者の腕が如実にコードに反映されるでしょう。シーケンス図では可能な限りシンプルな構成にしましたが必要に応じてオリジナルの関数を定義しても構いません。ただ、自分でもあまりに複雑すぎるコードになりそうと感じたときは、手を止めて、もっと良いやり方はないか、知恵を絞ってみるのをお勧めします。そのような思考と試行の時間がスキルの大幅な向上につながることも少なくありません。

 

課題 10 のリンク

次の課題10が最後の課題です。課題10 コンボ処理の実装

 

-スッキリわかるPython入門 第2版
-,