如何根据用户的文本输入动态重新分配变量?

时间:2013-10-28 14:49:47

标签: ruby

我有

board_a1 = " [ ] "
board_a2 = " [ ] "
board_a3 = " [ ] "

等。我提示用户,并获得输入:

puts "Choose your square"
user_input = gets.chomp.downcase

如果用户输入"a2",我需要重新分配board_a2

board_a2 = " [X] "

如何匹配用户输入以重新分配正确的电路板方块?我以为我可以像这样连接各个部分:

board_assignment = "board_#{user_input}"

然后使用

board_assignment = " [X] "

但是board_assignment != board_a2。这是一个新变量。我需要在用户输入后立即根据用户输入重新分配正确的变量。是否有一些特殊的语法来连接可以表示现有变量的字符串?你怎么称呼这种情况,我将如何设置动态变量?

1 个答案:

答案 0 :(得分:2)

您应该使用包含哈希的单个变量,将空间名称映射到其当前状态:

board = {
  "a1" => " [ ] ",
  "a2" => " [ ] ",
  "a3" => " [ ] "
}

其余的变得非常明显。当用户输入"a2"时,请修改board["a2"]处的值。