Ruby 按颜色顺序输出结果。从用户输入一个接一个

Ruby 按颜色顺序输出结果。从用户输入一个接一个,ruby,arrays,Ruby,Arrays,目标是让计算机从播放器中正确猜出4种颜色序列。玩家通过循环的每个实例猜测一种颜色。如果计算机猜测正确,那么最终输出应该从播放器输出4个正确的颜色序列。允许重复。我正在考虑设置一个数组,并用第一个元素存储它。然后进行推送以添加下一个正确的颜色。或者另一种方法是使用| item,index |执行each.index colors = %w(red green orange yellow blue purple) guess_counter = 0 while guess_counter <

目标是让计算机从播放器中正确猜出4种颜色序列。玩家通过循环的每个实例猜测一种颜色。如果计算机猜测正确,那么最终输出应该从播放器输出4个正确的颜色序列。允许重复。我正在考虑设置一个数组,并用第一个元素存储它。然后进行推送以添加下一个正确的颜色。或者另一种方法是使用| item,index |执行each.index

colors = %w(red green orange yellow blue purple)

guess_counter = 0

while guess_counter < 4 do
  comp_guess = colors.sample 
  puts "Enter your guess: "
  guess = gets.chomp
  puts "Computer guessed: " + comp_guess
  if(guess == comp_guess)
    puts "You got it right."
    puts
  else
    puts "You got it wrong. Guess again."
    puts
  end
end

因此,输出应该是“正确的顺序是红、蓝、绿、红”

似乎您也忘记了递增
guess\u计数器(似乎只有在猜测正确的情况下才应该递增),如果存储正确的猜测,实际上不需要递增。否则,只要在每次正确猜测时附加到猜测数组,然后使用
join
方法打印:

colors = %w(red green orange yellow blue purple)

correct_guesses = []

while correct_guesses.size < 4 do
  comp_guess = colors.sample 
  puts "Enter your guess: "
  guess = gets.chomp
  puts "Computer guessed: " + comp_guess
  if(guess == comp_guess)
    puts "You got it right."
    puts
    correct_guesses << guess
  else
    puts "You got it wrong. Guess again."
    puts
  end
end

puts "The correct sequence is #{correct_guesses.join(', ')}"
颜色=%w(红绿橙黄蓝紫)
正确的猜测=[]
而正确的猜测。尺寸<4
comp_guess=colors.sample
输入“输入您的猜测:”
guess=get.chomp
放入“计算机猜测:”+comp_猜测
如果(猜测=comp_猜测)
写着“你做对了”
放

正确的猜测如何存储每个正确的猜测,然后将其输出?如何添加第二个循环以将正确的猜测计数到4。然后将整个循环作为总次数的猜测停在10?
colors = %w(red green orange yellow blue purple)

correct_guesses = []

while correct_guesses.size < 4 do
  comp_guess = colors.sample 
  puts "Enter your guess: "
  guess = gets.chomp
  puts "Computer guessed: " + comp_guess
  if(guess == comp_guess)
    puts "You got it right."
    puts
    correct_guesses << guess
  else
    puts "You got it wrong. Guess again."
    puts
  end
end

puts "The correct sequence is #{correct_guesses.join(', ')}"