2014-10-06 99 views
-1

我正在嘗試使用Ruby創建蜘蛛紙牌。我只想在屏幕上顯示數組中的第一個元素。例如...Ruby:更改外觀字符串而不更改其原始值

a = ["AH", "1H", "2H", "3H", "4H", "5H"] 

這個數組代表一堆從心臟到西裝的卡牌。 我想程序在屏幕上打印...

a = ["AH", "CARD", "CARD", "CARD", "CARD", "CARD"] 

但我仍然希望有一個[1]返回「1H」,而不是「卡」。有沒有辦法改變字符串的外觀而不改變它們的原始值?

+0

你可以寫你自己的事情顯示方法,你不會被迫'提出了'。 – 2014-10-07 00:56:46

回答

3
puts a.map.with_index{|e, i| i.zero? ? e : "CARD"} 
0

爲什麼不製作兩個數組:一個真實且不變的表示法,僅對遊戲可見,另一個表示法顯示允許玩家看到的牌。

game_deck = ["AH", "1H", "2H", "3H", "4H", "5H"] 
display_deck = ["AH", "CARD", "CARD", "CARD", "CARD", "CARD"] 

隨着遊戲的進行,你可以通過諮詢game_deck揭示出display_deck新卡。

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"]