最后一个元素未在循环中删除

恰兰

@hand如果与给定的输入具有相同的等级,我想从阵列中删除卡我在遍历整个阵列,为什么它没有摆脱最后一张卡?任何帮助是极大的赞赏!

输出:

2 of Clubs
2 of Spades
2 of Hearts
2 of Diamonds
3 of Clubs
3 of Spades
------------
2 of Clubs
2 of Spades
2 of Hearts
2 of Diamonds
3 of Spades

代码:

deck = Deck.new
hand = Hand.new(deck.deal, deck.deal, deck.deal, deck.deal, deck.deal, deck.deal)
puts hand.to_s
hand.remove_cards("3")
puts "------------"
puts hand.to_s

手课:

class Hand

    def initialize(*cards)
        @hand = cards
    end

    def remove_cards(value)

        @hand.each_with_index do |hand_card, i|

            if hand_card.rank == value
                @hand.delete_at(i)
            end

        end
    end

    def to_s
        output = ""

        @hand.each do |card|
            output += card.to_s + "\n"
        end

        return output
    end
end

卡类:

class Card

    attr_reader :rank, :suit

    def initialize(rank, suit)
        @rank = rank
        @suit = suit
    end

    def to_s
        "#{@rank} of #{@suit}"
    end
end
阿列克谢·马蒂什金(Alexei Matiushkin)

remove_cards(value)有一个问题:delete在迭代期间不应该这样做。正确的方法是Array#reject!用手抓牌:

def remove_cards(value)
  @hands.reject! { |hand_card| hand_card.rank == value }
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用数组删除for循环中的最后一个逗号

删除for循环中的最后一个逗号(java)

如何从foreach循环中删除最后一个逗号?

如何删除for循环中的最后一个逗号

从php foreach循环中删除最后一个逗号

如何在最后一个循环中删除“AND”(每个)

循环中的onclick仅引用循环中的最后一个元素

在循环中删除向量的一个元素

在一个循环中,innerHTML 只插入最后一个被调用的元素

React,为循环中的最后两个元素插入一个包装器

如何以一种简单的方式从C ++循环中删除最后一个逗号?

通过 for 循环向元素添加事件会导致所有元素仅影响循环中的最后一个元素

为什么我在每个循环中只添加最后一个元素?

如何在foreach循环中定义最后一个元素?

Scrapy item 只保存循环中的最后一个元素

在R循环中创建Plotly显示了所有元素的最后一个图表

检测“ for”循环中最后一个元素的pythonic方法是什么?

为什么Toast跳到该循环中的最后一个元素?

将类“ last”添加到while循环中数组的最后一个元素

不要在for循环中的最后一个元素之后写逗号

为每个循环中的最后一个元素去除逗号

.push在循环中创建的数组是正确的长度,但仅在重复时推送最后一个元素

每个循环中只有数组的最后一个元素被连接

使用 Phaser JS 在 Javascript 循环中每次点击最后一个元素

for循环中的功能。仅最后一个元素受影响

如何在C中的循环中包含最后一个元素?

如何在for循环中从列表中选择最后一个元素?

如何检查 item 是否是循环中满足特定条件的最后一个元素

去模板删除范围循环中的最后一个逗号