ユーザー入力とハッシュ値の値を比較しようとしています。ユーザー入力をハッシュ値と比較する方法
たとえば、IRBで"e".scrabble()
を実行した場合、ハッシュの "e"の値が返されます。
ハッシュ内にあるかどうか、ハッシュ内のキーのいずれかと等しいかどうかを調べる方法を知りました。
class String
define_method(:scrabble) do
value_for_letters = {
"A"=> 9,"B" => 2,"C" => 2,"D" => 4,"E" => 12,"F" => 2,
"G" => 3, "H" => 2, "I" => 9,"J" => 1, "K" => 1,
"L" => 4,"M" => 2,"N" => 6,"O" => 8,"P" => 2,"Q" => 1,
"R" => 6,"S" => 4,"T" => 6,"U" => 4,"V" => 2,"W" => 2,
"X" => 1,"Y" => 2,"Z" => 1
}
value_for_letters.keys().==(self.capitalize())
"true"
end
end
私は単純に二つのスペースをインデントのRubyの規則に適合するように、わずかにあなたのコードを再フォーマット。単純に 'def scrabble ...'ではなく 'define_method'を使うことを選択し、' String#== 'メソッドを正式な方法('。 ==(...) ')を使うのではなく、"構文糖 "keys()== self.capitalize'を使用します(余分な括弧は必要ありません、btw)。 Rubyの学習の初期段階で教えられているのはそれが非常に良いことだと思います!あなたはすぐに従来の方法を学ぶでしょう。 –
ヒント@CarySwoveland –