Games::Cards::Bridge::Rubber - Object for Bridge (card game) Rubber scoring


Games-Cards-Bridge-Contract documentation  | view source Contained in the Games-Cards-Bridge-Contract distribution.

Index


NAME

Top

Games::Cards::Bridge::Rubber - Object for Bridge (card game) Rubber scoring

VERSION

Top

Version 0.01

SYNOPSIS

Top

This module provides a class for creating Bridge rubber objects, including the results and scoring and current state of the rubber.

  use Games::Cards::Bridge::Rubber;
  sub show_score {
    my $rubber = shift;
    printf "Totals (above/below): We = %d/%d \t They = %d/%d\n", $rubber->we_above, $rubber->we_below, $rubber->they_above, $rubber->they_below; 
    printf "  Legs:  We = %d \t They = %d\n", $rubber->we_leg, $rubber->they_leg;
    printf "  Vul:  We = %d \t They = %d\n", $rubber->we_vul, $rubber->they_vul;
    printf "==COMPLETE==\n\tWe: %d\tThey: %d\n", $rubber->we_score, $rubber->they_score if $rubber->complete;
  }
  my $rubber = Games::Cards::Bridge::Rubber->new;

  show_score($rubber);
  foreach my $opts (
    { direction => 'we', trump => 'H', bid => '2', made => '4' },
    { direction => 'they', trump => 'S', bid => '4', down => '2', dbl => 1 },
    { direction => 'they', trump => 'N', bid => '3', made => '4' },
    { direction => 'they', trump => 'S', bid => '3', made => '3' },
    { direction => 'they', trump => 'D', bid => '2', down => '2'  },
    { direction => 'we', trump => 'H', bid => '6', made => '7', dbl => 1 },
    { direction => 'they', trump => 'N', bid => '1', made => '2' },
    { direction => 'we', trump => 'C', bid => '3', made => '3' },
    { direction => 'they', trump => 'H', bid => '3', made => '3' },
  ){
    $rubber->contract( %$opts );
    show_score($rubber);
  }




METHODS

Top

new

No parameters needed.

contract

Add a contract to the rubber. This needs the same arguments as Games::Cards::Bridge::Contract's constructor, as well as a direction parameter of 'we' or 'they' (and the declarer parameter is not used). This method is also responsible for internally updating the attributes. See also http://www.acbl.org/learn/scoreRubber.html

we_score

Gives the current total 'We' score.

they_score

Gives the current total 'They' score.

both_vul

Alias to returns true iff ->we_vul() and ->they_vul().

ATTRIBUTES

Top

These are all auto-calculated/maintained; their current values are available from the accessor method provided by Class::Accessor.

contracts

Array ref holding all the contracts added by the contract() method.

we_above

Current above-the-line score for 'We'.

we_below

Current below-the-line score for 'We'.

we_leg

The current "leg" for 'We'.

they_leg

The current "leg" for 'They'.

they_above

Current above-the-line score for 'They'.

they_below

Current below-the-line score for 'They'.

we_vul

Returns true if the 'We' side is vulnerable (has one "game").

they_vul

Returns true if the 'They' side is vulnerable (has one "game").

complete

Returns true if the rubber has concluded (one side got two "games").

PREREQUISITES

Top

TODO

Top

AUTHOR

Top

David Westbrook, <dwestbrook at gmail.com>

BUGS & SUPPORT

Top

See Games::Cards::Bridge::Contract

COPYRIGHT & LICENSE

Top


Games-Cards-Bridge-Contract documentation  | view source Contained in the Games-Cards-Bridge-Contract distribution.