重新启动迭代并提示用户输入,直到满足给定的哈希值

时间:2017-08-02 03:40:45

标签: ruby

这是tic tac toe计划的开始。我希望程序循环,然后重置以获得更多输入,直到满足给定的哈希值方案。到目前为止,它要求输入并在我的网格上显示一次。如果我尝试将它包装在循环中,程序将打印第一个输入,直到它崩溃。

@entries = {1=>" ", 2=>" ", 3=>" ", 4=>" ", 5=>" ", 6=>" ", 7=>" ", 8=>" ",9=>" "}

def choice(n)
  puts "pick a space!"
  name = gets.chomp
  name2 = name.to_i
  n.each do |key,value|
    if name2 == key 
      @entries[key]= "X"
      puts "\t\t #{@entries[1]} | #{@entries[2]} | #{@entries[3]} "
      puts "\t\t-----------"
      puts "\t\t #{@entries[4]} | #{@entries[5]} | #{@entries[6]} "
      puts "\t\t-----------"
      puts "\t\t #{@entries[7]} | #{@entries[8]} | #{@entries[9]} "
    end
  end
end

choice(@entries)

1 个答案:

答案 0 :(得分:1)

choice函数当前需要一个从未使用过的参数。目前还不清楚你想要实现什么,但当然,该函数应该使用接收的参数,或者它根本不应该接收参数。

如果目标是填充所有套接字,则可以迭代,除非它们被填充:

loop do
  break "Completed!" if @entries.all? { |k, v| k == v }

  choice()
end