Package: dealer / 20161012-4

manpages Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
--- dealer-0.20040530.orig/dealer.dpp.pod
+++ dealer-0.20040530/dealer.dpp.pod
@@ -0,0 +1,167 @@
+=head1 NAME
+
+dealer.dpp - preprocessor for dealer scripts
+
+=head1 SYNOPSIS
+
+B<dealer.dpp> [I<inputfile>]
+
+=head1 DESCRIPTION
+
+dealer.dpp stands for dealer-pre-processor. Its main purpose it to preprocess
+input files for Hans van Staveren's great dealer program.
+
+=head1 SYNTAX
+
+The program expands shape specifications of the form:
+
+    shape{COMPASS, shp1 + shp2 + ... + shpM - shm1 - ... - shmN}
+
+=head2 regular shapes
+
+7xxx, 4432, 4xx5 have the same meaning as in original dealer.
+
+=head2 the `at least' operator
+
+whenever you put a `+' after a suit-length, it means `at least'.
+
+    shape{north, 5+xx5+}: at least 5/5 in the blacks,
+ -->shape(north,5xx5 + 5xx6 + 6xx5 + 5xx7 + 6xx6 + 7xx5 + 5008 + 6007
+                + 7006 + 8005)
+
+=head2 the `at most' operator:
+
+same as the `at least', just use a `-':
+
+    shape{north, 2-xxx}: at most 2 spades,
+ -->shape(north,0xxx + 1xxx + 2xxx)
+
+=head2 the `range' operator:
+
+the range operator operates on a single suit. It comes with [],
+like in Perl.
+
+    shape{north, x[3-5]x[13]}: (3 to 5) hearts, and one or 3 clubs 
+ -->shape(north,x3x1 + x4x1 + x3x3 + x5x1 + x4x3 + x5x3)
+
+Note that shape{north, 3-xxx} is equivalent to shape{north,[0-3]xxx}
+You can write compound ranges if you want:
+
+    shape{north, [013-68]xxx} means: 0,1,3,4,5,6 or 8 spades.
+
+=head2 the `permutation' operator:
+
+the permutation operator will appears as () like in the WBF rules
+of specifying shapes.
+
+    shape{north, (4432)}: any 4432 hand.
+ -->shape(north,any 4432)
+
+what's best is that the () operator can operate on restricted groups
+of cards:
+
+    shape{north, 5s(431)}: 5 spades, the others suits being (431).
+ -->shape(north,5134 + 5314 + 5143 + 5341 + 5413 + 5431)      
+
+What you have to do is:
+
+=over
+
+=item *
+
+specify the suit names (s,h,d,c in english) in the left part of
+the shape, in any order,
+
+=item *
+
+and enclose the rest of the permutation into () in the right part.
+
+=back
+
+A (complicated) example:
+
+    shape{north, 4+c3+d(2+2+)}: at least 5 clubs, at least 3 diamonds, 
+                               and no short major.
+ -->shape(north,3334 + 4234 + 2434 + 3244 + 2344 + 2254 + 3235 + 2335 + 2245 + 2236)
+
+=head2 the `Major' operator:
+
+has to be used together with the () operator. `M' stands for `a major'
+The `M' operator can only be used in the left part (never put a M
+inside the parens)
+
+    shape{north, 5M(xxx)}
+ -->shape(north,x5xx + 5xxx)
+
+    shape{north, 5+M3+c(31)}
+ -->shape(north,1534 + 3514 + 1633 + 3613 + 5134 + 5314 + 6133 + 6313)
+
+=head2 the `minor' operator:
+
+same as the `Major' operator, but in lowercase `m'.
+
+    shape{north, 5M5m(xx)}
+ -->shape(north,x5x5 + 5xx5 + x55x + 5x5x)
+
+=head2 the `conditional' operator:
+
+you've got the possibility of specifying complex conditions to be
+verified that cannot be simply expressed by other operators. In
+order  to do that, you use the `:' operator, just after the
+atomic-shape specification:
+
+    shape{north, shp1:condition1,condition2,...}
+
+The conditions use the letters (s,h,d,c) as variables for the suit
+lengths, and the usual C-operators (*,+,-,/,>,<,==,!,?, and so on).
+Note that the `,' stands for the `and-logical' operator. You can
+use `or' for the `or-logical' operator.
+
+    shape{north, 4+s4+h(xx):d>c,h+s==10}
+ -->shape(north,6421 + 6430 + 5521 + 5530 + 4621 + 4630)
+
+=head1 EXAMPLES
+
+=over
+
+=item a balanced hand
+
+ (3+3+3+2+)
+
+=item a french 1H opening
+
+ x5+xx:h>s,h>=d,h>=c
+
+=item my No_trump opening
+
+ hn = hcp(north)
+ n1NT = (hn > 14 and hn < 18 and shape{north, 5m(332) + 5m2s(42)} )
+     or (hn > 13 and hn < 17 and shape{north, 6m(322)}            )
+     or (hn > 15 and hn < 18 and shape{north, 5M(332)}            )
+     or (hn > 15 and hn < 19 and shape{north, (4432) + (4333)}    )
+
+=back
+
+=head1 SEE ALSO
+
+dealer(6),
+F</usr/share/doc/dealer/Manual>.
+
+=head1 AUTHORS
+
+=over
+
+=item Francois Dellacherie
+
+=item Manpage: Christoph Berg <cb@df7cb.de>
+
+=back
+
+=head1 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.
+
--- dealer-0.20040530.orig/dealer.pod
+++ dealer-0.20040530/dealer.pod
@@ -0,0 +1,133 @@
+=head1 NAME
+
+dealer - bridge hand generator
+
+=head1 SYNOPSIS
+
+B<dealer> [-023ehuvmqV] [-p I<n>] [-g I<n>] [-s I<seed>] [-l I<n>] [I<inputfile>]
+
+=head1 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.
+
+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:
+
+    condition shape(north, any 4333 + any 4423) and hcp(north)>=19
+    action printall
+
+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.
+
+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.
+
+Finally, the user has to look at output and analyze the produced hands. Alternatively, the output can
+be used for a playing program.
+
+=head1 OPTIONS
+
+=over
+
+=item B<-e>
+
+Exhaust mode (alpha version).
+
+=item B<-g> I<number>
+
+Maximum number of hands to generate (default is 1000000).
+
+=item B<-l> I<number>
+
+Instead of shuffling, deals are read from the file library.dat by M. Ginsberg
+(see [1]). When using this, the tricks() function is quite fast and bridge.exe
+from GIB is not used.
+
+[1] ftp://ftp.cirl.uoregon.edu/pub/users/ginsberg/bridge/
+
+=item B<-m>
+
+Shows a progress meter.
+
+=item B<-p> I<number>
+
+Maximum number of hands to produce (default is 40).
+
+=item B<-q>
+
+Suppress PBN output (useful for testing, then switch it back on when generating the "final" sample).
+
+=item B<-s> I<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.
+
+=item B<-u>
+
+Select uppercase for the symbols "AKQJT" (default is lowercase).
+
+=item B<-v>
+
+Toggle verbose output, prints statistics at the end of the run (default is on).
+
+=item B<-V>
+
+Emit a version-identification string and exit.
+
+=item B<-h>
+
+Help, prints the syntax.
+
+=item B<-0>
+
+No swapping, each deal is generated normally (shuffling) (default).
+
+=item B<-2>
+
+2-way swapping, after each shuffle another deal is generated by permuting E and
+W, leaving N and S in place (NB: not fully compatible with predeal).
+
+=item B<-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 (NB: not fully compatible with
+predeal).
+
+=back
+
+=head1 BUGS
+
+I would prefer if you did B<not> 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.
+
+=head1 SEE ALSO
+
+F</usr/share/doc/dealer/Manual>,
+dealer.dpp(6),
+deal(6).
+
+=head1 AUTHORS
+
+=over
+
+=item Hans van Staveren <sater@sater.home.cs.vu.nl>
+
+=item Henk Uijterwaal <henk@ripe.net>
+
+=item Manpage: Christoph Berg <cb@df7cb.de>
+
+=back
+
+=head1 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.
+