Class: Bridge::Score
- Inherits:
-
Object
- Object
- Bridge::Score
- Defined in:
- lib/bridge/score.rb
Instance Attribute Summary collapse
-
#contract ⇒ Object
readonly
Returns the value of attribute contract.
-
#tricks_number ⇒ Object
readonly
Returns the value of attribute tricks_number.
-
#vulnerable ⇒ Object
readonly
Returns the value of attribute vulnerable.
Class Method Summary collapse
-
.with_points(points) ⇒ Object
Returns all possible contracts with given points.
Instance Method Summary collapse
-
#initialize(contract, vulnerable, tricks) ⇒ Score
constructor
Creates new score object.
-
#made? ⇒ Boolean
Returns true if contract was made, false otherwise.
-
#points ⇒ Object
Returns points achieved by declarer: + for made contract - if conctract wasn’t made.
-
#result ⇒ Object
Returns nr of overtricks or undertricks.
-
#result_string ⇒ Object
Returns string with nr of tricks relative to contract level.
-
#vulnerable? ⇒ Boolean
Returns if declarer side is vulnerable.
Constructor Details
#initialize(contract, vulnerable, tricks) ⇒ Score
9 10 11 12 13 |
# File 'lib/bridge/score.rb', line 9 def initialize(contract, vulnerable, tricks) @contract = contract @vulnerable = vulnerable @tricks_number = calculate_tricks(tricks) end |
Instance Attribute Details
#contract ⇒ Object (readonly)
Returns the value of attribute contract.
3 4 5 |
# File 'lib/bridge/score.rb', line 3 def contract @contract end |
#tricks_number ⇒ Object (readonly)
Returns the value of attribute tricks_number.
3 4 5 |
# File 'lib/bridge/score.rb', line 3 def tricks_number @tricks_number end |
#vulnerable ⇒ Object (readonly)
Returns the value of attribute vulnerable.
3 4 5 |
# File 'lib/bridge/score.rb', line 3 def vulnerable @vulnerable end |
Class Method Details
.with_points(points) ⇒ Object
Returns all possible contracts with given points
16 17 18 |
# File 'lib/bridge/score.rb', line 16 def self.with_points(points) all_contracts.select { |contract, result| result == points }.keys.sort end |
Instance Method Details
#made? ⇒ Boolean
Returns true if contract was made, false otherwise
35 36 37 |
# File 'lib/bridge/score.rb', line 35 def made? result >= 0 end |
#points ⇒ Object
Returns points achieved by declarer: + for made contract - if conctract wasn’t made
40 41 42 |
# File 'lib/bridge/score.rb', line 40 def points made? ? (made_contract_points + overtrick_points + bonus) : undertrick_points end |
#result ⇒ Object
Returns nr of overtricks or undertricks. 0 if contract was made without them
21 22 23 |
# File 'lib/bridge/score.rb', line 21 def result tricks_number - tricks_to_make_contract end |
#result_string ⇒ Object
Returns string with nr of tricks relative to contract level
26 27 28 29 30 31 32 |
# File 'lib/bridge/score.rb', line 26 def result_string case when result > 0 then "+#{result}" when result == 0 then "=" when result < 0 then result.to_s end end |
#vulnerable? ⇒ Boolean
Returns if declarer side is vulnerable
45 46 47 48 49 50 51 52 |
# File 'lib/bridge/score.rb', line 45 def vulnerable? case vulnerable when "BOTH" then true when "NONE" then false else vulnerable.split("").include?(declarer) end end |