aoitaku/8 — pull request #10 by shinokaro (2014-12-12 05:54:12+00:00)
Title: Create Shooter module

Shooter, Gun　弾道設定プロセスの分離。
Enemy, EnemySpawner　インデント
main.rb　shooter.rb読み込み

Gun#fireの内容をShooterへ移動したものです。
今回の消極的な変更には理由がありあます。

*Gunインスタンスは射撃プロセス選択のためのプロクシーとして機能している。*
ということです。main.rb から行われる設定の幅を広げるためにこうなっているのだと思われます。

Enemyの設定に、どの程度の自由度を与えるべきか判断しかねたため、今回はプロセスの分離にとどめました。

なお、Shooterのメソッド群の引数形式ですが、第１通常引数はshooter（射撃者）としました。
残りの引数はすべてオプション引数としました。射撃の意図はゲームデザイナーによって人為的に決定される、と考えたからです。

帰り値ですが、最初はArrayと述べていましたが、RubyのEnumrableのパターンでは「1つの場合はオブジェクト、複数の場合は配列」とありました。
当初と設計を変更しRubyのEnumrableのパターンに従う形としました。