我在试着模拟一副牌被切掉所以我提示玩家选择一个介于1和32之间的数字(这个牌组中的牌数)存储在$cut_the_deck_number变量中。
然后我需要设法把卡片(从那个号码移到牌堆的末端)移到牌堆的前面。
这段代码有点工作,但是不太好,当我只需要一个列表时,它会创建一个2D数组。
我需要$deck
$deck = ["2 of diamonds", "5 of clubs", etc]
而不是
$deck = [["2 of diamonds, "5 of clubs"], ["8 of spades", etc, etc]]
我知道还有其他方法,但它不起作用,因为我正在使用RUBY 1.8.7

def cuttingthedeck
  bottomcut = $deck.pop($cut_the_deck_number)
  topcut = $deck.pop($deck.length)
  $deck.push(bottomcut)
  $deck.push(topcut)
end

最佳答案

把两半加起来:

$deck = bottomcut + topcut

在Ruby中,添加数组相当于连接它们的元素:
irb(main):001:0> [1, 2, 3] + [3, 4, 5]
=> [1, 2, 3, 3, 4, 5]

关于ruby - 在Ruby中重新排列一维列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20645590/

10-11 18:27