.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DEALER 6" .TH DEALER 6 "2022-08-23" "Dealer" "User Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" dealer \- bridge hand generator .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBdealer\fR [\-023ehuvmqV] [\-p \fIn\fR] [\-g \fIn\fR] [\-s \fIseed\fR] [\-l \fIn\fR] [\fIinputfile\fR] .SH "DESCRIPTION AND EXAMPLE" .IX Header "DESCRIPTION AND EXAMPLE" The program dealer can be used to generate hands for partnerships bidding training or for generating statistics that can be used to design conventions, or win postmortems. .PP Running the program involves 3 steps. First, the user has to write an input file containing hand-descriptions and action. A very simple example would look something like: .PP .Vb 2 \& condition shape(north, any 4333 + any 4423) and hcp(north)>=19 \& action printall .Ve .PP The first line specifies a condition for the north hand, in this case, a hand with 4333 or 4432 shape and at least 19 high card points. The second line tells the program to print the 4 hands. The program reads from standard input, so in principle, it is possible to enter the conditions directly into the program. Using a file is a lot more practical though, as it allows the user to re-use conditions and fine-tune the conditions. .PP Then the program has to be run, it reads the file, looks at the various command line switches and then produces a number of hands. The output appears on the screen but can be re-directed to a file. .PP Finally, the user has to look at output and analyze the produced hands. Alternatively, the output can be used for a playing program. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-e\fR" 4 .IX Item "-e" Exhaust mode (alpha version). .IP "\fB\-g\fR \fInumber\fR" 4 .IX Item "-g number" Maximum number of hands to generate (default is 1000000). .IP "\fB\-l\fR \fInumber\fR" 4 .IX Item "-l number" Instead of shuffling, deals are read from the file library.dat by M. Ginsberg (see [1]). When using this, the \fBtricks()\fR function is quite fast and bridge.exe from \s-1GIB\s0 is not used. .Sp [1] ftp://ftp.cirl.uoregon.edu/pub/users/ginsberg/bridge/ .IP "\fB\-m\fR" 4 .IX Item "-m" Shows a progress meter. .IP "\fB\-p\fR \fInumber\fR" 4 .IX Item "-p number" Maximum number of hands to produce (default is 40). .IP "\fB\-q\fR" 4 .IX Item "-q" Suppress \s-1PBN\s0 output (useful for testing, then switch it back on when generating the \*(L"final\*(R" sample). .IP "\fB\-s\fR \fInumber\fR" 4 .IX Item "-s number" Uses number as the seed for the random generator, running the program twice with the same seed will produce the same sequence of hands. .IP "\fB\-u\fR" 4 .IX Item "-u" Select uppercase for the symbols \*(L"\s-1AKQJT\*(R"\s0 (default is lowercase). .IP "\fB\-v\fR" 4 .IX Item "-v" Toggle verbose output, prints statistics at the end of the run (default is on). .IP "\fB\-V\fR" 4 .IX Item "-V" Emit a version-identification string and exit. .IP "\fB\-h\fR" 4 .IX Item "-h" Help, prints the syntax. .IP "\fB\-0\fR" 4 .IX Item "-0" No swapping, each deal is generated normally (shuffling) (default). .IP "\fB\-2\fR" 4 .IX Item "-2" 2\-way swapping, after each shuffle another deal is generated by permuting E and W, leaving N and S in place (\s-1NB:\s0 not fully compatible with predeal). .IP "\fB\-3\fR" 4 .IX Item "-3" 3\-way swapping, after each shuffle another 5 deals are generated by permuting E, W, and S every which way, leaving N in place (\s-1NB:\s0 not fully compatible with predeal). .SH "BUGS" .IX Header "BUGS" I would prefer if you did \fBnot\fR use this program for generating hands for tournaments. I have not investigated the random number generation closely enough for me to be comfortable with that thought. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fI/usr/share/doc/dealer/Manual\fR, \&\fBdealer.dpp\fR\|(6), \&\fBdeal\fR\|(6). .SH "AUTHORS" .IX Header "AUTHORS" .IP "Hans van Staveren " 4 .IX Item "Hans van Staveren " .PD 0 .IP "Henk Uijterwaal " 4 .IX Item "Henk Uijterwaal " .IP "Manpage: Christoph Berg " 4 .IX Item "Manpage: Christoph Berg " .PD .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This program is hereby put in the public domain. Do with it whatever you want, but I would like you not to redistribute it in modified form without mentioning the fact of modification. I will accept bug reports and modification requests, without any obligation of course, but fixing bugs someone else put in is beyond me.