1

この単純なハイ/ロー推測ゲームで、ユーザーが 1 から 100 までの正の整数のみを入力できるようにする方法を見つけようとしています。1 から 100 までの整数以外は、すべての入力に対してそれを実行できないことをユーザーに通知するようにしたいと思います。これを行う簡単な方法はありますか?

私が今持っているもの:

count=0
play = true
while play == true

print "Give me a random number between 1 and 100: "
    max= gets.to_i
    num= rand(max)
puts "Now guess between 1 and " + max.to_s + 
"."
print "What is your guess?: "
    guess=gets.to_i

    while guess != num && play != false 
        if guess > num
         print "Too high! "
            guess=gets.to_i
            count+=1
    elsif guess < num
        print "Too low! "
            guess=gets.to_i
             count+=1
        else
            break
        end
end

puts "Good Job! You figured it out in " + count.to_s + " attempts!"
print "Want to try again? y/n "

answer=gets.chomp!
    if answer  == 'n'
        play = false
        break
    end

if 
    answer == 'y'
    play = true
end 


end
puts "Maybe next time..."
4

2 に答える 2

0
if (1..100).include?(guess) && 0 == guess % 1
  # ...
end
于 2013-06-05T00:22:17.460 に答える
0

これを行う最も簡単な方法は、正規表現と範囲を使用することです。

guess = gets.chomp
if(guess =~ /\A\d+\Z/ && (1..100) === guess.to_i)
  #do stuff
else
  puts "Please enter a valid number"
end

正規表現により、数字 (整数) のみで構成された入力を取得し、それが 1 から 100 の間であるかどうかを確認する範囲チェックが行われます。

于 2013-06-05T01:27:14.283 に答える