Sha256: 23c31f71d43da6087a757c8adb748e063d83867e91060994c53f780d40051bf1
Contents?: true
Size: 708 Bytes
Versions: 1
Compression:
Stored size: 708 Bytes
Contents
# frozen_string_literal: true module Rb21 class Card SUITS = %w[Clubs Diamonds Hearts Spades].freeze FACES = %w[Jack Queen King].freeze NORMALS = (2..9).map(&:to_s).freeze ACE = "Ace" TEN_VALUES = (["10"] + FACES).freeze ALL_NAMES = (TEN_VALUES + NORMALS + [ACE]).freeze attr_reader :name, :suit def initialize(name, suit) raise ArgumentError, "Invalid name" unless ALL_NAMES.include?(name) raise ArgumentError, "Invalid suit" unless SUITS.include?(suit) @name = name @suit = suit end def value case @name when ACE [1, 11] when *TEN_VALUES [10] else [@name.to_i] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rb21-0.1.0 | lib/rb21/card.rb |