インスタンスメソッドとして設定することなく、ループ内でplayer_1_symbol(およびplayer_2_symbol)にアクセスする方法を教えてください。ループの途中でnew_methodを呼び出して、player_1_symbolを渡す必要があります。インスタンス変数を使用せずにメソッドループ内の変数にアクセスするruby
def select_player_symbol(player_1, player_2)
loop do
puts "What symbol would you like #{player_1} to be?"
player_1_symbol = gets.chomp
puts "What symbol would you like #{player_2} to be?"
player_2_symbol = gets.chomp
if player_2_symbol != player_1_symbol
puts "player 1: #{player_1_symbol}"
puts "player_2: #{player_2_symbol}"
break
end
puts "Please pick different symbols for each player"
end
new_method{player_1,
player_2,
player_1_symbol,
player_2_symbol}" # How to access these last two variables
end
これは事前に私のコードでしたが、私はそれをリファクタリングしたかったのです。私は、もっと「正しい」方法が何であるかは分かりません。しかし、ループの外にある変数をインスタンスメソッドとして設定せずにどうやって呼び出す必要があるのか、将来を知ることに本当に関心がありました。
def select_player_symbol(player_1, player_2)
puts "What symbol would you like #{player_1} to be?"
player_1_symbol = gets.chomp
puts "What symbol would you like #{player_2} to be?"
player_2_symbol = gets.chomp
while player_2_symbol == player_1_symbol
puts "#{player_1} has already picked that symbol,"
puts "please pick another symbol."
player_2_symbol = gets.chomp
end
new_method{player_1,
player_2,
player_1_symbol,
player_2_symbol}
end
正しいそれを試してみて、おそらくOPはこの作品理由として説明の恩恵を受けるだろう。 –
さんがコメントを追加しました – Mircea