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 NT
|
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 |
Pass
|
Pass |
2 ♠
|
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 NT
|
Pass |
3 ♠
|
Pass |
4 ♣
|
Pass |
4 ♦
|
Pass |
5 ♦
|
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.