こんにちは、私はRubyに慣れています。これは愚かな質問のように思えますが、私が間違っていたことを理解できないようです。Ruby - ループが正しく動作していないようですね
私はこの問題について小説を書かずに何を検索すればいいのか本当に分かりませんでした。
コードの目的は、文字を入力するまでユーザーに入力を依頼することです。ユーザーの入力が「アルファベット」の配列であるかどうかをチェックし、そうであればチェックします手紙は私がランダムに(ちょうど文脈のために、私は絞首刑執行人をコーディングしようとしている)他の場所を選択ワード内であるかどうかを確認するには、「単語」
はここのコードです:
コンソールでdef Check_Alph(word)
until $alphabet.include? 'guess' == true
puts "Please guess a letter from the alphabet"
guess = gets.chomp
puts "#{guess}"
end
if $alphabet.include? 'guess' == true
puts "valid letter entered, checking.."
$guessed_Letters << guess
if word.include? 'guess' == true
puts "good guess! That letter was in the word!"
puts "Letters confirmed to be in word: #{correct_Letters}"
end
end
end
、それ"アルファベットの手紙を推測してください"というメッセージが表示されたら、手紙を入力するだけで質問が返されます。私は値を正しく取得していることを確認するために "推測"を出力しようとしましたが、実際に何が起こっているかは分かりませんでした。
ご協力いただければ幸いです!
編集:$アルファベットは、文字列 "推測" が含まれるまで
def Check_Alph()
guess == nil
until $alphabet.include?(guess)
puts "Please guess a letter from the alphabet"
guess = gets.chomp
puts "#{guess}"
end
end
'== true'は余計なことではありません。この例(括弧なし)では、 '=='はメソッド呼び出しよりも強い束縛を持っているため、実際にはエラーにつながります。 Rubyは '$ alphabet.include?( 'guess' == true)'のようにその行を読み込みます。 '$ alphabet.include?(false)'と同じです。 '$ alphabet'には文字が含まれているので、常に' false'を返します。 – spickermann