2016-11-03 16 views
3

私は単純なボキャブラリークイズを作成しています。このクイズは、ユーザーに所定のハッシュから値を提供し、その応答を入力として受け取ります。ユーザーの入力が値の対応するキーと一致する場合、プログラムは次の値に移動し、ハッシュのすべてのキーと値のペアが考慮されるまでこのプロセスを繰り返します。ハッシュからのキーと値のペアのランダム化

現在の状態では、クイズは最初から最後まで順番にハッシュの値をユーザーに入力するよう促します。

しかし、クイズをさらに難しくするために、クイズは特定の順序ではなく、ハッシュからRANDOM値を提供したいと思います。

Plain English ...毎回同じ定義を同じ順序で印刷するのではなく、ライブラリからランダムな定義を吐き出すためにvocabクイズを取得するにはどうすればよいですか?

私のコードは以下の通りです。みなさんの助けに大変感謝しています!

vocab_words = { 
    "class" => "Tell Ruby to make a new type of thing", 
    "object" => "Two meanings: The most basic type of thing, and any instance of some thing", 
    "instance" => "What you get when you tell Ruby to create a class", 
    "def" => "How you define a function inside a class" 
} 

vocab_words.each do |word, definition| 
    print vocab_words[word] + ": " 
    answer = gets.to_s.chomp.downcase 

    while answer != "%s" %word 
     if answer == "help" 
     print "The answer is \"%s.\" Type it here: " %word 
     answer = gets.to_s.chomp.downcase 
     else 
     print "Nope. Try again: " 
     answer = gets.to_s.chomp.downcase 
     end 
    end 
    end 

答えて

1

用途:random_keys = vocab_words.keys.shuffleそうのような:

vocab_words = { 
    "class" => "Tell Ruby to make a new type of thing", 
    "object" => "Two meanings: The most basic type of thing, and any instance of some thing", 
    "instance" => "What you get when you tell Ruby to create a class", 
    "def" => "How you define a function inside a class" 
} 

random_keys = vocab_words.keys.shuffle 
random_keys.each do |word| 
    print vocab_words[word] + ": " 
    answer = gets.to_s.chomp.downcase 

    if answer == "help" 
    print "The answer is \"%s.\" Type it here: " %word 
    answer = gets.to_s.chomp.downcase 
    else 
    while answer != "%s" %word 
     print "Nope. Try again: " 
     answer = gets.to_s.chomp.downcase 
    end 
    end 
end 
+0

本当にありがとうございました!あなたの提案を使用し、それは完全に働いた。ヘルプをよろしくお願いいたします。 – and1ball0032

関連する問題