我正在創建一個遊戲,以便練習一些基本的Ruby。在我的二十一點遊戲中,我創建了一副撲克牌。我已經成功地混淆了陣列的唯一方法,從陣列汲取並從原來的牌陣是除去兩張牌如下:爲什麼Ruby方法不會改變原始數組?
player_cards = cards.shuffle!.shift(2)
我試圖用移並與洗牌沿彈出,像這樣:
player_cards = cards.shuffle.shift
player_cards = cards.shuffle.pop
在IRB,如果我用流行和換擋不洗牌,數組我試圖從(陣列哈希)拉離甲板刪除這些卡。只要我添加洗牌,卡片不再永久地從甲板上移開。我必須使用洗牌!爲了完成我的任務。
我想知道的是,爲什麼不按預期隨着隨機播放和輪班工作?我對Ruby中鏈接的基本理解是,cards數組首先被洗牌並返回,然後數組中的元素被移除。
我只想到我的錯誤可能是洗牌洗牌數組並返回一個洗牌數組,但不是原始卡陣列。當我從該混洗陣列中彈出或移動一張或兩張卡片時,它是通過洗牌而不是原始卡片陣列返回的數組。那是對的嗎?
對不起,我不明白這個問題。你能指點我嗎? – Aleksey
@Aleksey這個問題清楚地說明了,我沒有看到任何理由來澄清更多。 – mudasobwa
對不起,今天有點不舒服,也許是因爲這個。 – Aleksey