演習課題「RPGの戦闘シーン」
右のコードには、RPGの攻撃シーンを表示するプログラムで、enemiesの要素に順番に、「戦士はxxxと戦った」と表示するようになっています。
これを、player変数に代入されているメンバーが戦ったとなるように、修正してください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
勇者は、スライムと戦った。
勇者は、モンスターと戦った。
勇者は、ドラゴンと戦った。
勇者は、すべての敵を倒した。
#07:ブロックを理解しよう
ここでは、プログラミング言語Rubyの特徴的な仕組みである、コードブロックについて学習します。コードブロックは、Rubyのループ処理などに登場する重要な機能なので、しっかりと理解しましょう。
ブロックとは、メソッド呼び出しの時に、対象データに渡すことのできる処理のかたまりです。この例では、eachメソッドで、team配列にブロックのコードを渡しています。そして、team配列が、ひとづずつ要素を取り出して、person変数に代入して、ブロックのコードを実行しています。# ブロックを理解する
team = ["勇者", "戦士", "魔法使い"]
p team
team.each do |person|
puts "#{person}は、スライムと戦った"
end
- ブロック変数は、ブロック外では使えない
- ブロック内のローカル変数も、ブロック外では使えない
- ブロック外のローカル変数は、ブロック内で使える
# ブロックを理解する
team = ["勇者", "戦士", "魔法使い"]
team.each { |person|
puts "#{person}は、スライムと戦った"
}
- Ruby ブロックについて学ぶ - Qiita
http://qiita.com/naotospace@github/items/3bbef4015c4390182915
- [Ruby] ブロック変数とブロック引数とProc引数の違い
https://techracho.bpsinc.jp/hachi8833/2017_03_30/32954
- Rubyでの変数スコープ(クラス、メソッド、制御構文、ブロック)について - Qiita
http://qiita.com/ktarow/items/80ae8d720d54b2f682dc
- Rubyのブロック構文の書き分け(do end,{}) - ぬいぐるみライフ(仮)
http://d.hatena.ne.jp/mickey24/20100914/1284475769