Sha256: ad22aed57401bbbb251b73b4bb5a977593bb1a598664cd569e5f450fc84cc5af

Contents?: true

Size: 484 Bytes

Versions: 19

Compression:

Stored size: 484 Bytes

Contents

module Bridge
  class Trick
    attr_reader :cards, :suit

    def initialize(*args)
      @cards = args.flatten.map { |c| Bridge::Card.new(c.to_s) }
      @suit = @cards.first.suit
    end

    def winner(trump = nil)
      winner_in_suit(trump) || winner_in_suit(@suit)
    end

    def complete?
      @cards.size == 4
    end

    def incomplete?
      !complete?
    end

    private

    def winner_in_suit(suit)
      @cards.select { |c| c.suit == suit }.max
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
bridge-0.1.4 lib/bridge/trick.rb
bridge-0.1.3 lib/bridge/trick.rb
bridge-0.1.2 lib/bridge/trick.rb
bridge-0.1.1 lib/bridge/trick.rb
bridge-0.1.0 lib/bridge/trick.rb
bridge-0.0.26 lib/bridge/trick.rb
bridge-0.0.25 lib/bridge/trick.rb
bridge-0.0.24 lib/bridge/trick.rb
bridge-0.0.23 lib/bridge/trick.rb
bridge-0.0.22 lib/bridge/trick.rb
bridge-0.0.21 lib/bridge/trick.rb
bridge-0.0.20 lib/bridge/trick.rb
bridge-0.0.19 lib/bridge/trick.rb
bridge-0.0.18 lib/bridge/trick.rb
bridge-0.0.17 lib/bridge/trick.rb
bridge-0.0.16 lib/bridge/trick.rb
bridge-0.0.15 lib/bridge/trick.rb
bridge-0.0.14 lib/bridge/trick.rb
bridge-0.0.13 lib/bridge/trick.rb