<< Hands XML Bridge Tests Auctions: Exceptions >>

Auctions

Verbose Auction

Input:
<auction dealer="W">
    <call seat="W" code="P"/> 
    <call seat="N" code="1S"/> 
    <call seat="E" code="2H"/> 
    <call seat="S" code="3C"/>

    <call seat="W" code="X"/>
    <call seat="N" code="XX"/>
    <call seat="E" code="P"/> 
    <call seat="S" code="P"/> 

    <call seat="W" code="P"/>
</auction>
XSL Output:
West North East South
Pass 1 2 3
Dbl Rdbl All Pass
We've specified the seat in each call. In fact, only calls made out of turn are required to have a seat specified - when no seat is present, the XSL script defaults to the next seat in turn.

Simple Auction - No dealer specified

Input:
<auction>
    <call code="P"/> 
    <call code="1S"/> 
    <call code="2H"/> 
    <call code="3C"/>

    <call code="X"/>
    <call code="XX"/>
    <call code="P"/> 
    <call code="P"/> 

    <call code="P"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
Pass 1 2 3
Dbl Rdbl All Pass
When no dealer is specified, we label the hands in the auction as "Dealer," "LHO," "Partner," and "RHO." Dealer is the leftmost label.

Simple Auction - first seat specified

Input:
<auction>
    <call code="P" seat="S"/> 
    <call code="1S"/> 
    <call code="2H"/> 
    <call code="3C"/>

    <call code="X"/>
    <call code="XX"/>
    <call code="P"/> 
    <call code="P"/> 

    <call code="P"/>
</auction>
XSL Output:
South West North East
Pass 1 2 3
Dbl Rdbl All Pass
When no dealer is specified, but the first call has a "seat" id, we assume that seat is dealer.

Simple Auction - West deals

Input:
<auction dealer="W">
    <call code="P"/> 
    <call code="1S"/> 
    <call code="2H"/> 
    <call code="3C"/>

    <call code="X"/>
    <call code="XX"/>
    <call code="P"/> 
    <call code="P"/> 

    <call code="P"/>
</auction>
XSL Output:
West North East South
Pass 1 2 3
Dbl Rdbl All Pass
The style guide suggests that West should always be to the left of East, for easier reading. West is taken as the left-most hand in all cases except when South is dealer - then South is taken as the left-most hand (to avoid the dangling first bid with dealer in the fourth column.)
Note that the 'X' and 'XX' get translated to Dbl and Rdbl.
The white-space in the input above is optional, and used just to clarify the auction to someone stuck reading or writing the XML.
The task of deciding which hand should be left-most in the table is reserved for the XSL formatter - the XML document is meant to represent the play of the deal, and contain as little formatting specifics as possible.

Simple Auction With Names, South Deals

Input:
<auction dealer="S">
    <name seat="S">Andrews</name>
    <name seat="N">Partner</name>
    <call code="P"/> 
    <call code="1S"/> 
    <call code="2H"/> 
    <call code="3C"/>

    <call code="X"/>
    <call code="XX"/>
    <call code="P"/> 
    <call code="P"/> 

    <call code="P"/>
</auction>
XSL Output:
South
Andrews
West North
Partner
East
Pass 1 2 3
Dbl Rdbl All Pass
When names are provided, add them to the auction. Keep seat names in case there are duplicate names (as in all-GIB auctions.)

Simple Auction - East deals

Input:
<auction dealer="E">
    <call code="P"/> 
    <call code="1S"/> 
    <call code="2H"/> 
    <call code="3C"/>

    <call code="X"/>
    <call code="XX"/>
    <call code="P"/> 
    <call code="P"/> 

    <call code="P"/>
</auction>
XSL Output:
West North East South
Pass 1
2 3 Dbl Rdbl
All Pass
When East deals, we put West left-most.

Simple Auction - North deals

Input:
<auction dealer="N">
    <call code="P"/> 
    <call code="1S"/> 
    <call code="2H"/> 
    <call code="3C"/>

    <call code="X"/>
    <call code="XX"/>
    <call code="P"/> 
    <call code="P"/> 

    <call code="P"/>
</auction>
XSL Output:
West North East South
Pass 1 2
3 Dbl Rdbl All Pass
When North deals, West is the left-most hand to keep West's hand to the left of East's hand.

Pass Out Auction

Input:
<auction dealer="S">
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>

<hr/>

<auction dealer="W">
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>

<hr/>

<auction dealer="N">
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>

<hr/>

<auction dealer="E">
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>
XSL Output:
South West North East
Pass Out

West North East South
Pass Out

West North East South
Pass Out

West North East South
Pass Out
These should generate one cell with the text "Pass Out."

Fourth Seat Opener

Input:
<auction dealer="E">
   <call code="P"/>
   <call code="P"/>
   <call code="P"/>
   <call code="1N"/>

   <call code="P"/>
   <call code="P"/>
   <call code="P"/>
</auction>
XSL Output:
West North East South
Pass Pass
Pass 1 NT All Pass
Make sure auctions starting with three passes don't start with "All Pass."

Auctions with Notes

One Note

Input:
<auction dealer="W">
    <call code="1N"><note>15-17</note></call>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>
XSL Output:
West North East South
1 NT* All Pass
*15-17
Adding a note to a call internally makes life simple and natural.

One Note, Multiple Times

Input:
<auction dealer="W">
    <call code="1N"/>
    <call code="P"/>
    <call code="3S"/>
    <call code="P"/>

    <call code="4C"><note id="cue">Cue bid</note></call>
    <call code="P"/>
    <call code="4D"><note ref="cue"/></call>
    <call code="P"/>

    <call code="5D"><note ref="cue"/></call>
    <call code="P"/>
    <call code="6S"/>

    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>
XSL Output:
West North East South
1 NT Pass 3 Pass
4 * Pass 4 * Pass
5 * Pass 6 All Pass
*Cue bid
Easy to write duplicate notes.

Several Notes on One Bid

Input:
<auction>
    <call code="P"/>
    <call code="1N"><note>20 second pause</note>
                <note>12-14</note></call>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
Pass 1 NT1,2 All Pass
1. 20 second pause
2. 12-14
Several notes applied to one tag.

Several Notes on One Bid - Sorting?

Input:
<auction>
    <call code="1N"/>
    <call code="P"><note id="hitch">Hesitation</note></call>
    <call code="P"/>
    <call code="2S"><note>Nominally <spade/> + minor</note><note ref="hitch"/></call>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
1 NT Pass1 Pass 2 2,1
All Pass
1. Hesitation
2. Nominally + minor
Should we sort comments on individual calls? I couldn't quite get the XSL to do it.

Several Notes, Some Duplicated

Input:
<auction dealer="W">
    <call code="1N"><note>15-17</note></call>
    <call code="P"/>
    <call code="3S"><note>Game forcing</note></call>
    <call code="P"/>

    <call code="4C"><note>Good spades, club concentration</note></call>
    <call code="P"/>
    <call code="4D"><note id="cue">Cue bid</note></call>
    <call code="P"/>

    <call code="5D"><note ref="cue"/></call>
    <call code="P"/>
    <call code="6S"/>

    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>
XSL Output:
West North East South
1 NT1 Pass 3 2 Pass
4 3 Pass 4 4 Pass
5 4 Pass 6 All Pass
1. 15-17
2. Game forcing
3. Good spades, club concentration
4. Cue bid
Easy to write duplicate notes.

Note In Last Three Passes

Input:
<auction dealer="W">
    <call code="1N"/>
    <call code="P"><note>Hesitation</note></call>
    <call code="P"/>
    <call code="P"/>
</auction>
<hr/>
<auction dealer="W">
    <call code="1N"/>
    <call code="P"/>
    <call code="P"><note>Hesitation</note></call>
    <call code="P"/>
</auction>
<hr/>
<auction dealer="W">
    <call code="1N"/>
    <call code="P"/>
    <call code="P"/>
    <call code="P"><note>Hesitation</note></call>
</auction>
XSL Output:
West North East South
1 NT Pass* Pass Pass
*Hesitation

West North East South
1 NT Pass Pass* Pass
*Hesitation

West North East South
1 NT Pass Pass Pass*
*Hesitation
If there is a note applied to one of the last three passes, write out the passes explicitly.

Note In Pass-out Auctions

Input:
<auction>
    <call code="P"><note>Hesitation</note></call>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>
<hr/>
<auction>
    <call code="P"/>
    <call code="P"><note>Hesitation</note></call>
    <call code="P"/>
    <call code="P"/>
</auction>
<hr/>
<auction>
    <call code="P"/>
    <call code="P"/>
    <call code="P"><note>Hesitation</note></call>
    <call code="P"/>
</auction>
<hr/>
<auction>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
    <call code="P"><note>Hesitation</note></call>
</auction>
XSL Output:
Dealer LHO Partner RHO
Pass* Pass Pass Pass
*Hesitation

Dealer LHO Partner RHO
Pass Pass* Pass Pass
*Hesitation

Dealer LHO Partner RHO
Pass Pass Pass* Pass
*Hesitation

Dealer LHO Partner RHO
Pass Pass Pass Pass*
*Hesitation
If the auction is passed out and there is a note in one pass, then show all passes.

Editorial Comments with '!' or '?'

Input:
<auction dealer="W">
    <call code="1N" comment="?"/>
    <call code="P"/>
    <call code="7N" comment="!"/>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>
XSL Output:
West North East South
1 NT? Pass 7 NT! All Pass
The comment is meant as inline editorials, rather than the footnote "note" method, above. Pavlicek's style guide suggests that only one '?' or one '!' be used in this instance. My processors don't enforce that rule, but I follow it when writing my documents.

Editorial Comment among the last three passes

Input:
<auction dealer="E">
    <call code="1N"/>
    <call code="P" comment="?"/>
    <call code="P"/>
    <call code="P"/>
</auction>
<hr/>
<auction dealer="E">
    <call code="1N"/>
    <call code="P"/>
    <call code="P" comment="?"/>
    <call code="P"/>
</auction>
<hr/>
<auction dealer="E">
    <call code="1N"/>
    <call code="P"/>
    <call code="P"/>
    <call code="P" comment="?"/>
</auction>
XSL Output:
West North East South
1 NT Pass?
Pass Pass

West North East South
1 NT Pass
Pass? Pass

West North East South
1 NT Pass
Pass Pass?
Show all calls if there is a comment added to one of the last three passes.

Editorial Comment in passed-out auctions

Input:
<auction dealer="E">
    <call code="P" comment="?"/>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>
<hr/>
<auction dealer="E">
    <call code="P"/>
    <call code="P" comment="?"/>
    <call code="P"/>
    <call code="P"/>
</auction>
<hr/>
<auction dealer="E">
    <call code="P"/>
    <call code="P"/>
    <call code="P" comment="?"/>
    <call code="P"/>
</auction>
<hr/>
<auction dealer="E">
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
    <call code="P" comment="?"/>
</auction>
XSL Output:
West North East South
Pass? All Pass

West North East South
Pass Pass?
Pass Pass

West North East South
Pass Pass
Pass? Pass

West North East South
Pass Pass
Pass Pass?
Show all calls if there is a comment in a pass-out auction. Currently, the first case is "broken," or this behavior could be seen as a feature.

Incomplete Auctions

Passes

Input:
<auction>
    <call code="P"/>
</auction>
<hr/>
<auction>
    <call code="P"/>
    <call code="P"/>
</auction>
<hr/>
<auction>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
Pass

Dealer LHO Partner RHO
Pass Pass

Dealer LHO Partner RHO
Pass Pass Pass
Make sure that three passes don't get translated to "All Pass."

No Pass at the End

Input:
<auction>
    <call code="1N"/>
    <call code="P"/>
    <call code="3D"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
1 NT Pass 3
No pass at the end of an auction.

One Pass at the End

Input:
<auction>
    <call code="1N"/>
    <call code="P"/>
    <call code="3D"/>
    <call code="P"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
1 NT Pass 3 Pass
One pass at the end of an auction.

Two Pass at the End

Input:
<auction>
    <call code="1N"/>
    <call code="P"/>
    <call code="3D"/>
    <call code="P"/>
    <call code="P"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
1 NT Pass 3 Pass
Pass
Two passes at the end of an auction.

Incomplete Auctions with Query

Passes

Input:
<auction>
    <call code="P"/>
    <call code="?"/>
</auction>
<hr/>
<auction>
    <call code="P"/>
    <call code="P"/>
    <call code="?"/>
</auction>
<hr/>
<auction>
    <call code="P"/>
    <call code="P"/>
    <call code="P"/>
    <call code="?"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
Pass ?

Dealer LHO Partner RHO
Pass Pass ?

Dealer LHO Partner RHO
Pass Pass Pass ?
Make sure that three passes don't get translated to "All Pass."

No Pass at the End

Input:
<auction>
    <call code="1N"/>
    <call code="P"/>
    <call code="3D"/>
    <call code="?"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
1 NT Pass 3 ?
No pass at the end of an auction.

One Pass at the End

Input:
<auction>
    <call code="1N"/>
    <call code="P"/>
    <call code="3D"/>
    <call code="P"/>
    <call code="?"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
1 NT Pass 3 Pass
?
One pass at the end of an auction.

Two Pass at the End

Input:
<auction>
    <call code="1N"/>
    <call code="P"/>
    <call code="3D"/>
    <call code="P"/>
    <call code="P"/>
    <call code="?"/>
</auction>
XSL Output:
Dealer LHO Partner RHO
1 NT Pass 3 Pass
Pass ?
Two passes at the end of an auction.
<< Hands
Thomas Andrews (bridge@thomasoandrews.com), © 2002-2009.
Auctions: Exceptions >>
Article formatted with BridgeML.