我正在尝试用Ruby创建蜘蛛纸牌。我想只在屏幕上显示数组中的第一个元素。例如......
a = ["AH", "1H", "2H", "3H", "4H", "5H"]
这个阵列代表一堆牌从Ace到5的心脏套装。 我希望程序能在屏幕上打印......
a = ["AH", "CARD", "CARD", "CARD", "CARD", "CARD"]
但我仍然希望[1]返回“1H”,而不是“CARD”。有没有办法在不改变原始值的情况下改变字符串的外观?
答案 0 :(得分:3)
puts a.map.with_index{|e, i| i.zero? ? e : "CARD"}
答案 1 :(得分:0)
为什么不制作两个阵列:一个只对游戏可见的牌组的真实和未改变的表示,以及显示玩家可以看到的牌的第二个表示。
game_deck = ["AH", "1H", "2H", "3H", "4H", "5H"]
display_deck = ["AH", "CARD", "CARD", "CARD", "CARD", "CARD"]
随着游戏的进行,您可以通过咨询display_deck
在game_deck
中展示新卡片。
答案 2 :(得分:0)
字面答案:
def print_mostly_cards(a)
print "a = \"[#{a.first}\""
(a.size-1).times { print ', "CARD"' }
puts "]"
end
a = ["AH", "1H", "2H", "3H", "4H", "5H"]
print_mostly_cards(a)
a = "[AH", "CARD", "CARD", "CARD", "CARD", "CARD"]