1
2(********************************************************************)
3(*                                                                  *)
4(*  cards.s7i     Playing card pictures of a french deck            *)
5(*  Copyright (C) 2006, 2013  Thomas Mertes                         *)
6(*                                                                  *)
7(*  This file is part of the Seed7 Runtime Library.                 *)
8(*                                                                  *)
9(*  The Seed7 Runtime Library is free software; you can             *)
10(*  redistribute it and/or modify it under the terms of the GNU     *)
11(*  Lesser General Public License as published by the Free Software *)
12(*  Foundation; either version 2.1 of the License, or (at your      *)
13(*  option) any later version.                                      *)
14(*                                                                  *)
15(*  The Seed7 Runtime Library is distributed in the hope that it    *)
16(*  will be useful, but WITHOUT ANY WARRANTY; without even the      *)
17(*  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR *)
18(*  PURPOSE.  See the GNU Lesser General Public License for more    *)
19(*  details.                                                        *)
20(*                                                                  *)
21(*  You should have received a copy of the GNU Lesser General       *)
22(*  Public License along with this program; if not, write to the    *)
23(*  Free Software Foundation, Inc., 51 Franklin Street,             *)
24(*  Fifth Floor, Boston, MA  02110-1301, USA.                       *)
25(*                                                                  *)
26(********************************************************************)
27
28
29include "pic_util.s7i";
30
31
32const array string: black_A_sign is [](
33  "     X     ",
34  "     X     ",
35  "    XXX    ",
36  "    XXX    ",
37  "   XX XX   ",
38  "   XX XX   ",
39  "  XX   XX  ",
40  "  XXXXXXX  ",
41  " XXXXXXXXX ",
42  " XX     XX ",
43  "XXXX   XXXX",
44  "XXXX   XXXX");
45
46const array string: black_K_sign is [](
47  "XXXX XXXX ",
48  "XXXX XXXX ",
49  " XX  XX   ",
50  " XX XX    ",
51  " XXXX     ",
52  " XXX      ",
53  " XXXX     ",
54  " XX XX    ",
55  " XX  XX   ",
56  " XX   XX  ",
57  "XXXX XXXX ",
58  "XXXX XXXX ");
59
60
61const array string: black_Q_sign is [](
62  "  XXXXX   ",
63  " XXXXXXX  ",
64  " XX   XX  ",
65  " XX   XX  ",
66  " XX   XX  ",
67  " XX   XX  ",
68  " XX   XX  ",
69  " XX   XX  ",
70  " XX   XX  ",
71  " XX   XX  ",
72  " XXXXXXX  ",
73  "  XXXXX   ",
74  "     XXX  ",
75  "      XX  ");
76
77
78const array string: black_J_sign is [](
79  "    XXXX  ",
80  "    XXXX  ",
81  "     XX   ",
82  "     XX   ",
83  "     XX   ",
84  "     XX   ",
85  "     XX   ",
86  "     XX   ",
87  " XX  XX   ",
88  " XX  XX   ",
89  " XXXXXX   ",
90  "  XXXX    ");
91
92
93const array string: black_10_sign is [](
94  " XX  XXXX ",
95  " XX XXXXXX",
96  " XX XX  XX",
97  " XX XX  XX",
98  " XX XX  XX",
99  " XX XX  XX",
100  " XX XX  XX",
101  " XX XX  XX",
102  " XX XX  XX",
103  " XX XX  XX",
104  " XX XXXXXX",
105  " XX  XXXX ");
106
107
108const array string: black_9_sign is [](
109  "  XXXXX   ",
110  " XXXXXXX  ",
111  " XX   XX  ",
112  " XX   XX  ",
113  " XX   XX  ",
114  " XX   XX  ",
115  " XXXXXXX  ",
116  "  XXXXXX  ",
117  "      XX  ",
118  "     XXX  ",
119  "  XXXXX   ",
120  "  XXXX    ");
121
122
123const array string: black_8_sign is [](
124  "  XXXXX   ",
125  " XXXXXXX  ",
126  " XX   XX  ",
127  " XX   XX  ",
128  " XX   XX  ",
129  "  XXXXX   ",
130  " XXXXXXX  ",
131  " XX   XX  ",
132  " XX   XX  ",
133  " XX   XX  ",
134  " XXXXXXX  ",
135  "  XXXXX   ");
136
137
138const array string: black_7_sign is [](
139  " XXXXXXX  ",
140  " XXXXXXX  ",
141  " XX   XX  ",
142  "     XX   ",
143  "     XX   ",
144  "    XX    ",
145  "    XX    ",
146  "    XX    ",
147  "   XX     ",
148  "   XX     ",
149  "   XX     ",
150  "   XX     ");
151
152
153const array string: black_6_sign is [](
154  "   XXXX   ",
155  "  XXXXX   ",
156  " XXX      ",
157  " XX       ",
158  " XXXXXX   ",
159  " XXXXXXX  ",
160  " XX   XX  ",
161  " XX   XX  ",
162  " XX   XX  ",
163  " XX   XX  ",
164  " XXXXXXX  ",
165  "  XXXXX   ");
166
167
168const array string: black_5_sign is [](
169  " XXXXXXX  ",
170  " XXXXXXX  ",
171  " XX       ",
172  " XX       ",
173  " XXXXXX   ",
174  " XXXXXXX  ",
175  "      XX  ",
176  "      XX  ",
177  " XX   XX  ",
178  " XX   XX  ",
179  " XXXXXXX  ",
180  "  XXXXX   ");
181
182
183const array string: black_4_sign is [](
184  "     XX   ",
185  "    XXX   ",
186  "   XXXX   ",
187  "  XXXXX   ",
188  " XXX XX   ",
189  "XXX  XX   ",
190  "XXXXXXXXX ",
191  "XXXXXXXXX ",
192  "     XX   ",
193  "     XX   ",
194  "    XXXX  ",
195  "    XXXX  ");
196
197
198const array string: black_3_sign is [](
199  " XXXXXXX  ",
200  " XXXXXXX  ",
201  " XX  XX   ",
202  "    XX    ",
203  "   XX     ",
204  "  XXXXX   ",
205  "  XXXXX   ",
206  "      XX  ",
207  "      XX  ",
208  " XX   XX  ",
209  " XXXXXXX  ",
210  "  XXXXX   ");
211
212
213const array string: black_2_sign is [](
214  "  XXXXX   ",
215  " XXXXXXX  ",
216  " XX   XX  ",
217  "      XX  ",
218  "     XXX  ",
219  "    XXX   ",
220  "   XXX    ",
221  "  XXX     ",
222  " XXX  XX  ",
223  " XX   XX  ",
224  " XXXXXXX  ",
225  " XXXXXXX  ");
226
227
228const array string: red_A_sign is [](
229  "     R     ",
230  "     R     ",
231  "    RRR    ",
232  "    RRR    ",
233  "   RR RR   ",
234  "   RR RR   ",
235  "  RR   RR  ",
236  "  RRRRRRR  ",
237  " RRRRRRRRR ",
238  " RR     RR ",
239  "RRRR   RRRR",
240  "RRRR   RRRR");
241
242const array string: red_K_sign is [](
243  "RRRR RRRR ",
244  "RRRR RRRR ",
245  " RR  RR   ",
246  " RR RR    ",
247  " RRRR     ",
248  " RRR      ",
249  " RRRR     ",
250  " RR RR    ",
251  " RR  RR   ",
252  " RR   RR  ",
253  "RRRR RRRR ",
254  "RRRR RRRR ");
255
256
257const array string: red_Q_sign is [](
258  "  RRRRR   ",
259  " RRRRRRR  ",
260  " RR   RR  ",
261  " RR   RR  ",
262  " RR   RR  ",
263  " RR   RR  ",
264  " RR   RR  ",
265  " RR   RR  ",
266  " RR   RR  ",
267  " RR   RR  ",
268  " RRRRRRR  ",
269  "  RRRRR   ",
270  "     RRR  ",
271  "      RR  ");
272
273
274const array string: red_J_sign is [](
275  "    RRRR  ",
276  "    RRRR  ",
277  "     RR   ",
278  "     RR   ",
279  "     RR   ",
280  "     RR   ",
281  "     RR   ",
282  "     RR   ",
283  " RR  RR   ",
284  " RR  RR   ",
285  " RRRRRR   ",
286  "  RRRR    ");
287
288
289const array string: red_10_sign is [](
290  " RR  RRRR ",
291  " RR RRRRRR",
292  " RR RR  RR",
293  " RR RR  RR",
294  " RR RR  RR",
295  " RR RR  RR",
296  " RR RR  RR",
297  " RR RR  RR",
298  " RR RR  RR",
299  " RR RR  RR",
300  " RR RRRRRR",
301  " RR  RRRR ");
302
303
304const array string: red_9_sign is [](
305  "  RRRRR   ",
306  " RRRRRRR  ",
307  " RR   RR  ",
308  " RR   RR  ",
309  " RR   RR  ",
310  " RR   RR  ",
311  " RRRRRRR  ",
312  "  RRRRRR  ",
313  "      RR  ",
314  "     RRR  ",
315  "  RRRRR   ",
316  "  RRRR    ");
317
318
319const array string: red_8_sign is [](
320  "  RRRRR   ",
321  " RRRRRRR  ",
322  " RR   RR  ",
323  " RR   RR  ",
324  " RR   RR  ",
325  "  RRRRR   ",
326  " RRRRRRR  ",
327  " RR   RR  ",
328  " RR   RR  ",
329  " RR   RR  ",
330  " RRRRRRR  ",
331  "  RRRRR   ");
332
333
334const array string: red_7_sign is [](
335  " RRRRRRR  ",
336  " RRRRRRR  ",
337  " RR   RR  ",
338  "     RR   ",
339  "     RR   ",
340  "    RR    ",
341  "    RR    ",
342  "    RR    ",
343  "   RR     ",
344  "   RR     ",
345  "   RR     ",
346  "   RR     ");
347
348
349const array string: red_6_sign is [](
350  "   RRRR   ",
351  "  RRRRR   ",
352  " RRR      ",
353  " RR       ",
354  " RRRRRR   ",
355  " RRRRRRR  ",
356  " RR   RR  ",
357  " RR   RR  ",
358  " RR   RR  ",
359  " RR   RR  ",
360  " RRRRRRR  ",
361  "  RRRRR   ");
362
363
364const array string: red_5_sign is [](
365  " RRRRRRR  ",
366  " RRRRRRR  ",
367  " RR       ",
368  " RR       ",
369  " RRRRRR   ",
370  " RRRRRRR  ",
371  "      RR  ",
372  "      RR  ",
373  " RR   RR  ",
374  " RR   RR  ",
375  " RRRRRRR  ",
376  "  RRRRR   ");
377
378
379const array string: red_4_sign is [](
380  "     RR   ",
381  "    RRR   ",
382  "   RRRR   ",
383  "  RRRRR   ",
384  " RRR RR   ",
385  "RRR  RR   ",
386  "RRRRRRRRR ",
387  "RRRRRRRRR ",
388  "     RR   ",
389  "     RR   ",
390  "    RRRR  ",
391  "    RRRR  ");
392
393
394const array string: red_3_sign is [](
395  " RRRRRRR  ",
396  " RRRRRRR  ",
397  " RR  RR   ",
398  "    RR    ",
399  "   RR     ",
400  "  RRRRR   ",
401  "  RRRRR   ",
402  "      RR  ",
403  "      RR  ",
404  " RR   RR  ",
405  " RRRRRRR  ",
406  "  RRRRR   ");
407
408
409const array string: red_2_sign is [](
410  "  RRRRR   ",
411  " RRRRRRR  ",
412  " RR   RR  ",
413  "      RR  ",
414  "     RRR  ",
415  "    RRR   ",
416  "   RRR    ",
417  "  RRR     ",
418  " RRR  RR  ",
419  " RR   RR  ",
420  " RRRRRRR  ",
421  " RRRRRRR  ");
422
423
424const array string: small_spades_sign is [](
425  "    X    ",
426  "   XXX   ",
427  "  XXXXX  ",
428  " XXXXXXX ",
429  "XXXXXXXXX",
430  "XXXXXXXXX",
431  "XXXXXXXXX",
432  " XX X XX ",
433  "    X    ",
434  "   XXX   ");
435
436const array string: small_hearts_sign is [](
437  " RRR RRR ",
438  "RRRR RRRR",
439  "RRRRRRRRR",
440  "RRRRRRRRR",
441  "RRRRRRRRR",
442  " RRRRRRR ",
443  "  RRRRR  ",
444  "   RRR   ",
445  "    R    ",
446  "         ");
447
448
449const array string: small_diamonds_sign is [](
450  "    R    ",
451  "   RRR   ",
452  "  RRRRR  ",
453  " RRRRRRR ",
454  " RRRRRRR ",
455  " RRRRRRR ",
456  "  RRRRR  ",
457  "   RRR   ",
458  "    R    ",
459  "         ");
460
461
462const array string: small_clubs_sign is [](
463  "   XXX   ",
464  "  XXXXX  ",
465  "  XXXXX  ",
466  " X XXX X ",
467  "XXXXXXXXX",
468  "XXXXXXXXX",
469  "XXXXXXXXX",
470  " XX X XX ",
471  "    X    ",
472  "   XXX   ");
473
474
475const array string: big_spades_sign is [](
476  "       X       ",
477  "      XXX      ",
478  "     XXXXX     ",
479  "    XXXXXXX    ",
480  "   XXXXXXXXX   ",
481  "  XXXXXXXXXXX  ",
482  " XXXXXXXXXXXXX ",
483  " XXXXXXXXXXXXX ",
484  "XXXXXXXXXXXXXXX",
485  "XXXXXXXXXXXXXXX",
486  "XXXXXXXXXXXXXXX",
487  "XXXXXX X XXXXXX",
488  " XXXX  X  XXXX ",
489  "      XXX      ",
490  "     XXXXX     ",
491  "               ",
492  "               ");
493
494
495const array string: big_hearts_sign is [](
496  "               ",
497  "               ",
498  "  RRRR   RRRR  ",
499  " RRRRRR RRRRRR ",
500  "RRRRRRR RRRRRRR",
501  "RRRRRRRRRRRRRRR",
502  "RRRRRRRRRRRRRRR",
503  "RRRRRRRRRRRRRRR",
504  "RRRRRRRRRRRRRRR",
505  " RRRRRRRRRRRRR ",
506  " RRRRRRRRRRRRR ",
507  "  RRRRRRRRRRR  ",
508  "   RRRRRRRRR   ",
509  "    RRRRRRR    ",
510  "     RRRRR     ",
511  "      RRR      ",
512  "       R       ");
513
514
515const array string: big_diamonds_sign is [](
516  "               ",
517  "       R       ",
518  "      RRR      ",
519  "     RRRRR     ",
520  "    RRRRRRR    ",
521  "   RRRRRRRRR   ",
522  "   RRRRRRRRR   ",
523  "  RRRRRRRRRRR  ",
524  " RRRRRRRRRRRRR ",
525  "  RRRRRRRRRRR  ",
526  "   RRRRRRRRR   ",
527  "   RRRRRRRRR   ",
528  "    RRRRRRR    ",
529  "     RRRRR     ",
530  "      RRR      ",
531  "       R       ",
532  "               ");
533
534
535const array string: big_clubs_sign is [](
536  "      XXX      ",
537  "     XXXXX     ",
538  "    XXXXXXX    ",
539  "    XXXXXXX    ",
540  "    XXXXXXX    ",
541  "     XXXXX     ",
542  "  XXX XXX XXX  ",
543  " XXXXXXXXXXXXX ",
544  "XXXXXXXXXXXXXXX",
545  "XXXXXXXXXXXXXXX",
546  "XXXXXXXXXXXXXXX",
547  " XXXXX X XXXXX ",
548  "  XXX  X  XXX  ",
549  "      XXX      ",
550  "     XXXXX     ",
551  "               ",
552  "               ");
553
554
555const array string: king_of_spades_pic is [](
556  "               XYYYYYYYYYYYYYYYYYYYYX        ",
557  "        X       XYYYYYYYXYXYXYXYXYXX         ",
558  "       XXX       XXYXYXYXRXRXRXRXRX          ",
559  "      XXXXX       XRXRXRRRRRRRRRRX          X",
560  "     XXXXXXX      XRRRRRXXXXXXXXXX         XX",
561  "    XXXXXXXXX     XXXXXXX        XX       XYX",
562  "   XXXXXXXXXXX    X X X X        X X      XYX",
563  "  XXXXXXXXXXXXX   X X X XXXXX XXXX X      XYX",
564  "  XXXXXXXXXXXXX   X X X XX XXX XXXX       XYX",
565  " XXXXXXXXXXXXXXX  X X X X    X   X X      XYX",
566  " XXXXXXXXXXXXXXX  X X X X    X   X X      XYX",
567  " XXXXXXXXXXXXXXX  X X X X    X   X X      XYX",
568  " XXXXXX X XXXXXX  X X X X   XXX  X X      XYX",
569  "  XXXX  X  XXXX   X X X X XX   X X X      XYX",
570  "       XXX      XXX X X X X XXX  XX XX    XYX",
571  "      XXXXX    X  X X X X        X X  X   XYX",
572  "              X X X X X X  X   X X X  X   XYX",
573  "            XXX XX  X X XX X X X X  XXYXX XYX",
574  "          XXXYXX   X  X X  X XXX  XXXYXX XXYX",
575  "        XXYXRYXXXXX XX X  X X XYXRXXYXX XRXYX",
576  "      XXXXYXXXYXXYXXXXXXXX X XXYXXXYXX XXXXYX",
577  "    XXYXYXXYXXYXRXXYXYXYXXXXXXYXRXYXX XRRRXYX",
578  "  XXRRXXXXXYXRXYXRRXXXXXXYXYXXYXXXYXX XRXXXYX",
579  " XRYYXXYXXXYXXXYXRRRYYYYXXXXXYXRXYXX XRRRRXYX",
580  "XYRRXXXXXYXXYXXYXRRRYXXXYYRRXYXXXYXX XRXXXXYX",
581  "RYYRXXYXYXYXYXRXYXRRYYYYYYRRXYXXYXX XRRRRRXYX",
582  "RRYXXXXXYXXXYXXXYXXXXXXXXXXXYXRXYXX XRXXXXXXX",
583  "YRRXXYXYXYYYXYXXYXX   X   XXYXXXYXX XRXYYYYXX",
584  "YYRXXXXYXYXXXYXXYX  X   X  XYXXYXX XRXYXXXYYY",
585  "RYYXXYXYXYYYXYXRXYX X X X  XYXXYXX XRXYYX XYY",
586  "RRYXXXXYXYXXXYXXXYX   X   XYXRXYXXXXRRXXXX XX",
587  "YRRXXYXYXYYYYXYXXYX X   X XYXXXYXYXXXRRRRRXXX",
588  "RYRXXXXYXYXXXXYXXYXXXXXXXXXYXXYXXXXXXXXXXX   ",
589  "RRYXXYXXYXYYYXYXXYXYYYYYYYYYXXYXXXXXXXX   XXX",
590  "XXRXXXXXYXYXXXYXXYXXXXXXXXXYXXYXYYXXXYXX X   ",
591  "  X XXYXXYXYYXYXRYXXXRRRXXXYXXYXXXYYXXXX  XXX");
592
593
594const array string: queen_of_spades_pic is [](
595  "          XX XX X X RXYXXYYYYX               ",
596  "  X      XXXXX X XX RXYYXYYYX       X        ",
597  "  X      XX X XX  X RXYYYYYYX      XXX       ",
598  "  X      XXX X  X  XRXYXXYYX      XXXXX      ",
599  " XYX     X XX    X XRXYYXYYX     XXXXXXX     ",
600  " XYX    XX X      XXRRXYYYYYX   XXXXXXXXX    ",
601  " XYX    XR XXXX XXXXRRXYXXYYX  XXXXXXXXXXX   ",
602  " XYX    XR XXX XXX XRRRXYXYX  XXXXXXXXXXXXX  ",
603  "XYYYX   XR X   X   X RRXYYX   XXXXXXXXXXXXX  ",
604  "XYXYX   XR X   X    XRRRXYX  XXXXXXXXXXXXXXX ",
605  "XYYYX  XRR X   X    X RRRXX  XXXXXXXXXXXXXXX ",
606  " XYX   XR XX  XXX    XRRRXX  XXXXXXXXXXXXXXX ",
607  " XYX   XR XX         X RRRX  XXXXXX X XXXXXX ",
608  "XXXXX  X XXXX XXX   XRX RRRX  XXXX  X  XXXX  ",
609  "XYYYX XR XXXX  X   XRXX RRRXX      XXX       ",
610  " XXX  XR XXXYX    XXXYXX RRRXX    XXXXX      ",
611  "XYYYX XR XYXXYXXXXYXYXYYX RRRXX              ",
612  "XYYYX XXXXYYXXYXYXYXXYYXXX    XX       RR    ",
613  " XXX  XXXXYYYYXXXXXYYYXXXXXXXXRXX    RRXXRR  ",
614  " XRX XXX XXYXYYYYYYXYXXX  XXRRRRXY  RRXYYXRR ",
615  " XYXXYXX XXYYXYXYXYYXX  XXXRRR XYXX  RRXXRR X",
616  " XYXRYYXXXXXYYYYYYYXX XXXRRRR XYXXYXX  RR  XR",
617  "XXYXRRYXX XXYXYXYYXX XXXRRR  XYXXXYYYX X  XYR",
618  "XXYXRRYXXXXXXYYYYXX XXRRRR  XYXRXXXYYYXX XXXY",
619  "XXYXRRYYXX XXYYYXX XXRRRR RRXYXXXXXXXXYXXXXXY",
620  "XXYX RRYXXX XXXYX XXRRR  RRRXYXRRRXXXXX    XY",
621  "XXYXXRRYYXXXXYYX XXRRR RRRXXXYXXXXXXXX     XY",
622  "XXYX XRRYXXXYRRYXXRRR RRXXXXXYYXRRRRX      XY",
623  "XXYXX RRYYXXYRRYXRRR RXXX  XXXYXXXXX  X  XXYR",
624  "XXYX XXRRYYXYRRYXRR RXX     XXXYXRRX XXXXXXXR",
625  "XXYXX XRRRYYXYYXRR XXX  XXX  XXXYXXXXXYXXXXXX",
626  "XXYX X XRRRYYXXXR XXX  XXXXX  XXXYXRXYYXYXXXY",
627  "XXYXX X XRRRRRRRRXXX           XXXYXYYYXYYYYX",
628  "XXYX X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYXXY",
629  "XXYXX X XRRRRRRRRRRRRRRRRRRRRRRRRRRRXXXXXXYYX",
630  "XXYX X XXX XXX XXX XXX XXX XXX XXX XXXYYYYXXX");
631
632
633const array string: jack_of_spades_pic is [](
634  "   XX   XRRXRRRXRXRRXRXRRRXRRX               ",
635  "  XYYX   XRRXRRXRXRRXRXRRXRRX       X        ",
636  " XYXRYX   XRRXXXRXXXXRXXXRRX       XXX       ",
637  " XYXRYX    XRRRRRRRRRRRRRRX       XXXXX      ",
638  " XYXRYX    XXXXXXXXXXXXXXX       XXXXXXX     ",
639  "  XYYX     X     XYXYXYXYX      XXXXXXXXX    ",
640  "   XX      X XX  XYXYXYXYX     XXXXXXXXXXX   ",
641  "  XYYX     X X XX XYXYXYXYX   XXXXXXXXXXXXX  ",
642  " XYXRYX    X      XYXYXYXYX   XXXXXXXXXXXXX  ",
643  "  XYYX    X       XYXYXYXYX  XXXXXXXXXXXXXXX ",
644  "   XX    X        XYXYXYXYX  XXXXXXXXXXXXXXX ",
645  "  XYYX   XX  XX X XYXYXYXYX  XXXXXXXXXXXXXXX ",
646  " XYXRYX    X  XXX XYXYXYXYX  XXXXXX X XXXXXX ",
647  " XYXRYX    X      XYXYXYXYYXX XXXX  X  XXXX  ",
648  " XYXRYX    XXX   XYYXYXYXYYYYX     XXX       ",
649  "  XYYX     X     XYYXYYXYXYXYYX   XXXXX      ",
650  " XXXXX    XX     RXXYXYXYXYYXYX              ",
651  " X   XX XXXXX  RRRRXYXXYXYXXYYX              ",
652  "  XX  XXXXXXXXRRRRRXXYYXYXYYYXX              ",
653  " X  XXXX XXXXXXXXXXXXXXXXXXXXXXXX            ",
654  " X XXX X XXXXXXXXXXXXXXXXXXXX X XXX          ",
655  " XXX XXXX XYXYXYXYXYXYXYXYXYX XXX XXX        ",
656  "XRXXX X X XXXXXXXXXXXXXXXXXXX X X XXRXX      ",
657  "RXXRX XXXX XRRRRRRRRRRRRRRRRX XXX XRRRXXX  XX",
658  "XXRXXX X X XXRYRRYRRYRRYRRYRX X X XRXXXRRXXYX",
659  "XRXXYX XXXX XRRRYXYRYRYXYRRRX XXX XXXRRXXYYYX",
660  "RXXYXYX X X XXRYXYRYYYRYXYRRX X X XRRXXYYXXXX",
661  "XXYXYXX XXXXXYXRYRRYXYRRYRRRX XXX XXXXYYYYYXX",
662  "XYXYXYXX XXYXXXXXX XXX XXX XX X X XXXYYXXXXXY",
663  "YXYXYXXXXXYXXYX X X X X X X X XXXXXXYYYYYYXXY",
664  "XYXYXXRXXYXXYYXX XXX XXX XXXX X XXXYYXYXXXXYX",
665  "YYYXX RXYXXXXYXXXXXXXXXXXXXXXXXXXXYYYYYYYXXYX",
666  "YXXXRRXYXXYYYYX                  XYYXYXXXXYXR",
667  "XXX RXYXXYXXXYXRRRRRRRRRRRRRRRRRXYYYYYYYXXYRR",
668  "XXRRXYXXYYYYYXXXXXXXXXXXXXXXXXXXXYXYXXXXXYXRR",
669  "XYRXYXXXXYXXYXXXYXX X   XX XX XXYYYYYYYXYRRRR");
670
671
672const array string: king_of_hearts_pic is [](
673  "               XYXYYYXYYYXYYYXYYYYYYX        ",
674  "   RRRR   RRRR  XXXYXXXYXXXYXXXYXXYX         ",
675  "  RRRRRR RRRRRR  XYYYYYYYYYYYYXYYXX  XX      ",
676  " RRRRRRR RRRRRRR  XRRRRRRRRRYYYYYX  XYYX     ",
677  " RRRRRRRRRRRRRRR  XXXXXXXXXXRRRRRX  XYYXXX   ",
678  " RRRRRRRRRRRRRRR  X        XXXXXXXXXXYX  XX  ",
679  " RRRRRRRRRRRRRRR  X        X X X X  XYX  XYX ",
680  " RRRRRRRRRRRRRRR XXXXX XXXXX X X XXXYYXXXXYX ",
681  "  RRRRRRRRRRRRR X XXX XXX XX X X XXXYYXX  X  ",
682  "  RRRRRRRRRRRRR X X   X    X X X X XYYX   X  ",
683  "   RRRRRRRRRRR  X X   X    X X X X  XXXXXXX  ",
684  "    RRRRRRRRR   X X   X    X X X  X  XRRRRX  ",
685  "     RRRRRRR   X X   XXX    X X X X XXXXXXXX ",
686  "      RRRRR    X X          X  X X XXRXRXRXRX",
687  "       RRR      XX X XXX     X X X XRRRRRRRXX",
688  "        R   XXXXX  X      X X X X  XXRRRRRX  ",
689  "          XXXRXX  X X   X X X X   X  XXXRX RR",
690  "       XXXXXXXRXXX  X X X XXX   XX X   XXXRRX",
691  "     XXXRX  XXRRX XX  X X  X XXX     XXRXXXXX",
692  "   XX  XRX   XXRRXX  XX XX XYYX  X  XRXRXYXXX",
693  " XXX X XRX X  XXRRXXXYXX XXYYYX X  XRYXRXXXYX",
694  "XYYRX X XRX X  XRRXXYXYXXYYYYX    XRYXRXXXXXY",
695  "YRRRXX  XRX    XXRRXXYXXYYYYYXX   XYRXRXYXXXX",
696  "RRXXXXX  XRX X  XRRRXXXYYYYYYX   XYRXRXXRYYXX",
697  "RXXXXXRX XRRX X XXRRXXYYYYYYX  X XRXRRXXXXYYX",
698  "XYXXXRRRX XRRX   XRRRXYYYYYXX X  XXRRXXXXRRYY",
699  "YRRYXXXRRX XRRRX XXRXYYYYYXRX   XXRRXXXXRRRRY",
700  "RRYYYRXXXXX XXRRXX XXYYYYYXX  XXRRXXXXXRRYRXY",
701  "RYYYXRYYXXXX  XXXXXXXXXXXXXXXXRRXXXXXXRRRRRYY",
702  "YYYXRXXXYXXXXX     RRRRRRRRRRRXXXXXXXRRYRXYYX",
703  "YYYXRYYYYXYX    RXXXXXXXXXXXXX XXXXXRRRRRYYYX",
704  "YYYXRXXXYXYX         XRRRRX    XXXXRRYRXYYYXX",
705  "YYYXRYYYYXYX       XXX RRRX X XXXXRYRRRYYYXXX",
706  "XYYYXRYYXXXXXXXXXXX XXXXXRXX XXXXXXXRXYYYXXXR",
707  "XXYYYYXXXXXXXXX   XXYYYYYXX  XXXXRRXYYYYXXXRX",
708  "RXXYXXXXXYYYYYX   XXYXRXYX  X XYYYYYYYYXXXXRR");
709
710
711const array string: queen_of_hearts_pic is [](
712  "           XX X X  XXXRYYYYYX                ",
713  "          XX X X X XXXRYXYYX   RRRR   RRRR   ",
714  "         XXXX XX   XXXRYYYYX  RRRRRR RRRRRR  ",
715  "         XYX X  X   XXRYXYX  RRRRRRR RRRRRRR ",
716  "        XXYXX    XX XXRRYYX  RRRRRRRRRRRRRRR ",
717  "        XYRX       XXXXRYYX  RRRRRRRRRRRRRRR ",
718  "       XXYRXXXX XXX XXXRRYYX RRRRRRRRRRRRRRR ",
719  "       XYRRXXX XXX XXXXXRRYX RRRRRRRRRRRRRRR ",
720  "      XXYRRX   X    X XXXRX   RRRRRRRRRRRRR  ",
721  "      XYRRYX   X    X XXXX    RRRRRRRRRRRRR  ",
722  "      XYRRYX   X    X  XXXX    RRRRRRRRRRR   ",
723  "      XYRRYX  XXX    X XXXXX    RRRRRRRRR    ",
724  "     XYRRYYX         X  XXXXX    RRRRRRR     ",
725  "     XYRRYXXX XXX   XYX  XXXXX    RRRRR      ",
726  "     XYRRXXYX  X   XYYX   XXXXXX   RRR       ",
727  "     XYRXYXXYX    XYYXXX   XXXXXXX  R        ",
728  "     XYX YXXXYXXXXYYXXXYX   XXXXXX           ",
729  "     XXY XYXXXYYYYXXXXYX X   XXXX    XX XX   ",
730  "    XXYXYR YXXXXXXXXXYR YXXX   X    XYYXYYX  ",
731  "   XYYYYXY XYYXXXXYYYX YXXXXXXXX    XYRRRX   ",
732  "  XXXYXXYXYR XYYYYX RYYXXXX     X    XYRYYX  ",
733  " XYYYYYYYYXYYYR XRYYYXX XX  X X XX XXXXYYX X ",
734  "XXXXYXXXYYXXXXYYYYXXXXYXX X    XRRXYYYXXXYXX ",
735  "YYYYYYYYYXX  XXXXXYXXXYXX    XXRRXYYYX  XXYX ",
736  "XXXYXXXXYX X XXXXXXYXYXX X XXRRXXXXXX   XYYX ",
737  "YYYYYYYYXX XXXX  XXYXYXX  XRRRXYYYX XXXXXYX  ",
738  "XYXYXXXYXXX XX  X XXYXX X XRRXYRRRX XRX XX   ",
739  "YYYYYYYYX X XRXX  XXYXX  XRRXYRRYRXX XX XX   ",
740  "XXYXYXXYXXX XYRRX  XYX X XRRXYRRRXXX X X  X  ",
741  "YYYYYYYYXX XXYYRRX XXX  XRRXYRRYRXX XX X  X  ",
742  "XYXXXXYXX XXYXYYRXXXXX  XRRXYRRRRX XXX  XXX  ",
743  "YYYYYYYXX XXYXXYRXXYYXXXXRRXYRYRRX X X   XRX ",
744  "XYXXYYXXX XXYRXYYRXXXYYYXXRXYRRXXX XXX XXRRRX",
745  "YYYYYXRXXX XYRXYRRXYXXXXYYXXXXXRRXX XXXRRRRRR",
746  "XXXYXRRX X XYXXYYRXYXYYYXXYYXRRRYX X XRRRRRRX",
747  "YYYXRRRXX XXYXYYRXYXYRRRYXXXRRYYYXXX XRRRRXXY");
748
749
750const array string: jack_of_hearts_pic is [](
751  "        XR RRR RR RR RR RRR RX               ",
752  "X  XXX   XR RR RR RR RR RR RX  RRRR   RRRR   ",
753  "RX  XYX   XR   RR    RR   RX  RRRRRR RRRRRR  ",
754  "RX  XYYX   XRRRRRRRRRRRRRRX  RRRRRRR RRRRRRR ",
755  "RX  XYYX    XXXXXXXXXXXXXXX  RRRRRRRRRRRRRRR ",
756  "XXXX XYYX   XYXYXYXYX     X  RRRRRRRRRRRRRRR ",
757  " R R  XYX   XYXYXYXYX  XX X  RRRRRRRRRRRRRRR ",
758  " R R   XX  XYXYXYXYX XX X X  RRRRRRRRRRRRRRR ",
759  " X X  XYX  XYXYXYXYX      X   RRRRRRRRRRRRR  ",
760  "XXXX XYYX  XYXYXYXYX       X  RRRRRRRRRRRRR  ",
761  "RX  XYYX   XYXYXYXYX        X  RRRRRRRRRRR   ",
762  "RX  XYYX   XYXYXYXYX   XX XXX   RRRRRRRRR    ",
763  "RX  XYX    XYXYXYXYX XXX  X      RRRRRRR     ",
764  "RX XXX   XXXYXYXYXYX      X       RRRRR      ",
765  "RX      XYYYXXYXYXYX    XXX        RRR   X   ",
766  "RX     XYYXYXYXYXXYX      X         R  XXRXX ",
767  "RX     XYXYYXYXYXYXRRR    XXXXXX       XRRRX ",
768  "RX     XYYXXYYXYXXRRRRRXXXYYXYYYX       XRX  ",
769  "RX      XYYYYXYXXRRRRRRRRRXYYXXYX       XRX  ",
770  "RX      XXXXXXXYYXXRRRRRRRXXYYYYX   XXXXXRX  ",
771  "RX    XXR RXYYYYYYYXXXXXXYYYXYYXX  XX    XXX ",
772  "RX  XXXXXXR XXYYYYYYYYYYYYYYYXX RXXX  XX X X ",
773  "RXXX  RRXXXXR XXXYYYYYYYYYXXX RRRXXXX  XXXXX ",
774  "RXRR    RRXXXXR RXXXXXXXXXR RRRXXXXRRX  X  X ",
775  "XXXXRR    RRXXXXR R R R R RRRXXXXRR   XXXXXX ",
776  "YYYXXXRR    RRXXXXRXXXXXXXRXXXXRR    RXX  X  ",
777  "YYXYYYXXRR    RRXXXRX   XRXXXRR    RRXX XXX  ",
778  "YXYYYXYYXXRR    RRXXRX XRXXRR    RRXXYX    X ",
779  "XXXYXYYRXXXXRR    RXXRXRXXR    RRXXYYYX X XXX",
780  "   XYYRXXYYYXXRR   RXXRXXR    RXXYYYYYX    XX",
781  "X   XRXXYYYYYYXRR   RXXXR   RRXYYYYYYYX X XXX",
782  "  X XXXYXXXXXXXXXR   RXR   RXXXXXXXXXYX    XX",
783  "X    XYYX       XRR  XXX  RRX       XYX X XXX",
784  "XX X XYYX XXXXX XXRRX   XRRXX XXXXX XYX    XX",
785  "XX    XYX XYYXXXX XX XXX XX XXXXYYX XYX X XXX",
786  "XXX X XYX XYYXX  XX XRRRX XX  XXYYX XYX    XX");
787
788
789const array string: king_of_diamonds_pic is [](
790  "             XYYYYXYYYXYYYYYYYYYYYYYX        ",
791  "       R      XYYXXXYXXXYYXYYYYYYYYX   XXX  X",
792  "      RRR      XRRRRRRRRYXXXYYXYYYX   XYX  XR",
793  "     RRRRR     XXXXXXXXXRRRRYXXXYXX  XYYX  XR",
794  "    RRRRRRR     XXXXXXXXXXXXRRRRRX   XYYX  XR",
795  "   RRRRRRRRR    X      XX XXXXXXXX  XYYX XXXX",
796  "   RRRRRRRRR    X XX   X X XXXXXXX  XYX  R R ",
797  "  RRRRRRRRRRR   XXX X  X X X X X X  XX   R R ",
798  " RRRRRRRRRRRRR  X      X X X X X X  XYX  X X ",
799  "  RRRRRRRRRRR  X       X X X X X X  XYYX XXXX",
800  "   RRRRRRRRR  X        X X X X X X   XYYX  XR",
801  "   RRRRRRRRR  XXX       X X X X X X  XYYX  XR",
802  "    RRRRRRR     XXXX X  X X X X X X   XYX  XR",
803  "     RRRRR      X  XXX   X X X X X X   XXX XR",
804  "      RRR        XX       X X X X X X      XR",
805  "       R        X      XXX  X X X X X      XR",
806  "  XXX           XX    X   X X X X X X      XR",
807  " X X XXX     XX X     X XX  X X X X X      XR",
808  " XX X X X   X XX      XX   X X X X X       XR",
809  "XX X X X X  X          XXXXXXXXXXXXXXXX    XR",
810  "X X X     XXYX     XXXXXXXXYYX   XYYX  XXXXXX",
811  " X X    XXXXXYXXXXXXXXXXX XXYYX XXXYYX  XYYX ",
812  "  X  XXXXXRRXXYXXXRRXXXX XX XYYXXX XYYX XXYYX",
813  "   XXRXXYXRRXXXYXRXRRXXXXXXXXXXXXXXXXXXXX XY ",
814  " XXRRRRRXYXX XXYXRRXRXXYYYYYYYYYYYYYYXXXXXXXX",
815  "XRRRRRXXYXYXXRRXXXRRXX X X X X X X  XYXXXXXXX",
816  "RRRRXXYYYYXYXRRXYXXX               XYXRRXX  X",
817  "RRXXYYYYXXXXYXXXYX   XXXXXXXXXXX  XYXYXRRXX X",
818  "RXYYYYXXXXXXYX XYX XXYYYYYYYYYYX XYXXRYXRRXXX",
819  "XYYYXXXXX XXYXXXYXXYYXXXXXXXXYX XYXYYXRYXRRXX",
820  "YYYXXXX   XXXYXXXXYXXXXRRRRXYX  XYXXYYXRYXRRX",
821  "YYXRRXXX   XXYXXXYXXXRRRRRRXYX XYXXXXYXXXXXXX",
822  "YXRXRRXXX  XXYXXXYXXXXXXXXXYX  XYXXXXXRYXRYXR",
823  "XYYRXRRXXX XXXYXXYXRRRRRRRXYX XYXXXXYXRYXRYXR",
824  "XRYYRXRRXXX XXYXXYXXXXXXXXYX  XYXXRRYXRXXXXXX",
825  "RRXRYYRXXXXXXXXXXXYX     XYXXXXXXXXXXXRYYRXRR");
826
827
828const array string: queen_of_diamonds_pic is [](
829  " XYYYYYYYYYXRRX  X X XXYX                    ",
830  "  XYYYYYXXYXRRX X X X XYYX           R       ",
831  "  XYYYYYYYYXRRX   XX XXXYX          RRR      ",
832  "   XYYYYXXYXRRX  X  X XXXYX        RRRRR     ",
833  "   XYYYYYYXXRX XX    XXXXXYX      RRRRRRR    ",
834  "   XYYYXXYXRRXX       XRXXYX     RRRRRRRRR   ",
835  "   XYYYYYXXRX  XXX XXXXRXXXYX    RRRRRRRRR   ",
836  "   XYYXXYXRRX X XXX XXXRRXXYX   RRRRRRRRRRR  ",
837  "   XYYYYXXRXX     X   XRRXXXYX RRRRRRRRRRRRR ",
838  "  XYYXXYXRRX X    X   XRRRXXYX  RRRRRRRRRRR  ",
839  "  XYYYYXXRX X X   X   XRRRXXYX   RRRRRRRRR   ",
840  " XYYXYXXRRX XX   XXX  XRRRXXYX   RRRRRRRRR   ",
841  "  XYYXXRRX  X         XRRRRXXYX   RRRRRRR    ",
842  "   XXXRRX  XRX   XXX XYXRRRXXYX    RRRRR     ",
843  "    XRRX   XXRX   X  XYXXRRXXYX     RRR      ",
844  "   XRRX   XYYXXX    XYYX XRXXYX      R       ",
845  "  XRRXXXXX XYYYXXXXXXYYX XXXXYX              ",
846  " XRRXX XXXX XXXXYYYYXXX XXXXXYX      XXX     ",
847  "XRRXX X XXXX    XXXX   XXX XXYX    XXYYXX    ",
848  "RRX XX XXXXXXXX      XXX XXXYXX    XYXXYYX X ",
849  "RXYX XXXX XX XXXXXXXXXX X XXXYX   XYYYYYX  XX",
850  "XXXYX XXXXX X XXXX XXXXX XXX XYX   XXXYX  XYX",
851  "XXYXYX XXXX X X X X X XXXXX XYYXX     XX XYYX",
852  "XYXXXYX  XXX XXXX X XXXXXX XYYXXXX     XXYXX ",
853  "YXXRXXYXX  XXXXXXX XXXXX  XYXYXX XX   XXXXX  ",
854  "XXRXXYXYYXX   XXXXXXXX  XXYXXYX XXXX X   XXX ",
855  "XRXXYXRXXYYXXX        XXYYXXXYX XXXXX  XXX X ",
856  "RXXYXXXR XXYYYXXXXXXXXYYXXXRXYX XXXXYX  X XX ",
857  "XXYXXRXXR XXXXYYYYYYYYXXYXXRXYXX XXYYXX  X X ",
858  "XYXXYXRXXR RXYXXXXXXXXYYYXXR XYXXXYYXXXX X X ",
859  "YXXXYXXRX R XXYXXXXXYYXXYXXR XYYXYYX X XX X  ",
860  " X XXYXRXR R XYX RXXYYYYYXXR RXYYYXXXXXXXX   ",
861  "XXXXXYXRX R XXYX RXXYXXXYXXRXXRXYXXX X X XX  ",
862  " X X XYXXR R XYX RXXYYYYYXXXRRXYXXYXXXXXXXXX ",
863  "XXXXXXYXR R XXYXXXXXXXXXXRRRYRXYXRXYXX X X XX",
864  " X X XXYXR R XYXRRRRRRRRRYYYRXYXX RXYXXXXXXXX");
865
866
867const array string: jack_of_diamonds_pic is [](
868  "         XR RRR RR RR RR RRR RX              ",
869  "          XR RR RR RR RR RR RX       R       ",
870  "           XR   RR    RR   RX       RRR      ",
871  "X           XRRRRRRRRRRRRRRX       RRRRR     ",
872  "XX          XXXXXXXXXXXXXXXX      RRRRRRR    ",
873  "XYX         XXXXXYX        XX    RRRRRRRRR   ",
874  "XYX         XXXYXYX        XX    RRRRRRRRR   ",
875  "XYX         XYXYXYX XXX XXXXYX  RRRRRRRRRRR  ",
876  "XYX    X    XYXYXYXX XXX XXXYX RRRRRRRRRRRRR ",
877  "XYX   XX    XYXYXYX    X   XYX  RRRRRRRRRRR  ",
878  "XYX XXYX    XYXYXYX    X   XYX   RRRRRRRRR   ",
879  "XXXXYYX     XYXYXYX    X   XYX   RRRRRRRRR   ",
880  "RYYYXXX     XYXYXYX   XXX  XYX    RRRRRRR    ",
881  "XYXXXX      XYXYXYX        XYXXX   RRRRR     ",
882  "RYXX      XXYYXYXYX   XXX X YXYYX   RRR      ",
883  "XYX      XYYXYXYXYXX      XXYYXYX    R       ",
884  "RYX      XYXXYXXYXR X    X RXYYYX           X",
885  "XYX      XYYYXYYXRRRRXXXXRRRRXXXXX         XR",
886  "RYX      XXXXXXXXRRRRRRRRRRRXX XYXXX      XYX",
887  "XYX    XXRXXX XXXXXRRRRRRRXXXXXXYX XXX    XYR",
888  "RYX  XXXYXRXXXX XXXXXXXXXXXXX XXYXXXYYXX  XYX",
889  "XYXXXXXXXYXRXXXXX XXXXXXXXX XXXXYX XYYXRXXXYR",
890  "RYXXXXXXXXYXRXXXXXX X X X XXXRXXYXXXXYXRRRXYX",
891  "XYXXXRXXXXXYXRXXXXXXXXXXXXXRXRXXYYX XYYXXRXYR",
892  "XXX XXRXXXXXYXRXXRXRXRXRXRXRXRX XYXXXXYYYXXYX",
893  "  X XYXRXXXXXYXRXXRYRYRYRYRYRYX XYYX XXXYYXYR",
894  "XXX XXYXRXXXXXYXRXXRXRXRXRXRXRX XXYYXX XXXXYX",
895  "  XXXYXYXRXXXXXYXRXXXRXRXRXRXRX XXXYYYXXX XYR",
896  "XXXRRXYXXXYXXXXXYXRXXRXRXRXRXRX XX XXYYYXXXYX",
897  " XX RXYXYYXRXXXXXYXRXXRYRYRYRYX XX X XXYYYXYR",
898  "XYXRRRXYXXXRYXXXXXYXRXXRXRXRXRX XX XXYXXXXXYX",
899  "XYX  RXYXYXRYRXXXXXYXRXXXRXRXRX XX XXXXYXRXYR",
900  "RYXRRRXYXXXRYRYXX XXYXRXXRXRXRX XX XYYXYX XYX",
901  "XYX  RXYXYXRYRXXXXXXRYXRXXRYRYXXXX XXXYXRRXYR",
902  "RYXRRRXYXXXRYXX XXXYRRYXRXXRXRXXXXXYYXYXR XYX",
903  "XYX  RXYXYXRXXXXXXRXYRRYXRXXRXX XXXXXYXRRRXYR");
904
905
906const array string: king_of_clubs_pic is [](
907  "                XYYYXYYYXYYYXYYYYYYYYX       ",
908  "       XXX       XYXXXYXXXYXXXYYXYYYX        ",
909  "      XXXXX       XRRRRRRRRRRRRXXXYX         ",
910  "     XXXXXXX       XXXXXXXXXXXXRRRX        X ",
911  "     XXXXXXX       XXXXXXXXXXXXXXXX       XXX",
912  "     XXXXXXX      XX        X XXXXX      X XR",
913  "      XXXXX      X X        X X XXX      X XR",
914  "   XXX XXX XXX   X XXXX XXXXX X X X      X XR",
915  "  XXXXXXXXXXXXX  XXXXX XXX XX X X X      X XR",
916  " XXXXXXXXXXXXXXX X X   X    X X X X      X XR",
917  " XXXXXXXXXXXXXXX X X   X    X X X X      X XR",
918  " XXXXXXXXXXXXXXX X X   X    X X X X      X XR",
919  "  XXXXX X XXXXX  X X  XXX   X X X X      X XR",
920  "   XXX  X  XXX  X  XXX   XX X X X XXX    X XR",
921  "       XXX      XXXX  XXX   X X X X  X   X XR",
922  "      XXXXX      X X        X X  X X XX  X XR",
923  "               XXX X X   X XX X XXX XXRXXX XR",
924  "              X  X X X X X X XX X X XRRRRX XR",
925  "              X X  X X X X XX X   XXRYRRRX XR",
926  "           XXXX   X X XRX X  XRXXXRRYYRRRX XR",
927  "        XXXXXXXXXXXXRXRRRXRXXRRRRXRRRRRYXX XR",
928  "     XXXRRXYYXX XXYXXRRRRRRRRRRXXRYRRRRX X XR",
929  "    XRRRRRRXYYXXXXXYXXXRRRRRRXXXRYYRRYX  X XR",
930  "  XXR R R R XYYXX XYXYXXXRRXXXYXRRRRRX  XX XR",
931  " XXXRRRRRRRRRXYYXXXXYXYXXXXXXYXRRRRYX  XXX XR",
932  "RXXX R R R R RXYYXXXYXYYXXXXYYXRYRRRX XXXX XR",
933  "RXXXRRRRRRRRRRXXYRXXXYXXYXXYXXRYYRRX  XXXX XR",
934  "RXXXR R R R R XXXYRXXYXYYYYYYXRRRRYX XXRXX XR",
935  "RXXXRRRRRXXXXRXXRXYXXXYXXXRXXXRRRRRX XXXXX XR",
936  "XYYXXR RX    XXXXXXYXXYXYYYYYXRYRYX  XXRXX XR",
937  "YYYYXRRX  XX  XXRRXYXXYXXXRXXRYYRRX XXXXXX XR",
938  "XYYXXXRX XRRX XXXXXXYXXYXYYYXRRRRYX XXXXXXXXR",
939  "XXXXXXXX XRRX XXRRRXYXXYXXRXXRRRRRX XXX  X  X",
940  "XRRXXXXX  XX  XXXXXXXYXYXYYYXRRYRYX XX    XXX",
941  "XXXXXXXXX    XXXXXXXXXXXXXXXXRYYRRX XX XX   X",
942  "X  X  XXXXXXXRRX    XRRRXXXXXXRRRYX XX   XXXX");
943
944
945const array string: queen_of_clubs_pic is [](
946  "YYYYYYYYYYRXXR X X XX X                      ",
947  "XYYYYYYYYYRXXR XX X XXX            XXX       ",
948  " XYYYYYXXYRXXR X  XX XX           XXXXX      ",
949  "  XYYYYXYRRXXR X X  X X          XXXXXXX     ",
950  "  XYYYYYRRXXRR XX    XXX         XXXXXXX     ",
951  "   XYYYYRRXXR  X      XX         XXXXXXX     ",
952  "   XYXXYRXXXR  XXX XXXXRX         XXXXX      ",
953  "   XYXYRRXXRR X XX  XXXRX      XXX XXX XXX   ",
954  "  XYYYRRXXXR  X   X   XXRX    XXXXXXXXXXXXX  ",
955  "  XYYYRRXXRR X    X   XXRX   XXXXXXXXXXXXXXX ",
956  " XYXXRRXXRR  X    X   XXXRX  XXXXXXXXXXXXXXX ",
957  "XYYXRRXXXR  X    XXX  XRXRRX XXXXXXXXXXXXXXX ",
958  " XXRRXXXRR  X         XRRXRRX XXXXX X XXXXX  ",
959  "   XXXXRR  XRX   XXX XXXRXXRRX XXX  X  XXX   ",
960  "    XXXR   XXRX   X  XXXXRXXRRX    XXX       ",
961  "   XXXRR  XXYXXX    XYXXXXRXXRRX  XXXXX      ",
962  "  XXXRR XXRYRYXYXXXXYXRYYRXRRXXRX            ",
963  " XXXRR X  XRYRRYXYXYRRYYRX XRRXXRX   XX      ",
964  "XXXRXXXXXXXXRYYRRRRRYYYRXXXXXRRXRX  XRRXX    ",
965  "XXRYYYXXXXX XXRYYYYYYRRX X XYXRXRX XRXXRRX   ",
966  "XYYXYYYX  X  XXXRXXXRXX  XXYXYXRX XRRRRRX    ",
967  "YYYYXYXYX X XXX XRRRX XXXXYYYXXX   XXXRX XXX ",
968  "RRRRRXYYYXXXX X XRYRX X XYXYXXXYX     X XYYYX",
969  "RRRRRRXYYXYXX X XRRRX XXYYYXRXXYXX XXX XYYXX ",
970  "RRRRRRRXXYYYYXXXXXRXXXXYXYXRRXXYXXXYYYXXXXX  ",
971  "YXYXYXRRRXXYXYYYYXXXYYYYXXXYRXXYXXYYYX X   X ",
972  "XYXYXYXYXRRXXXYYYYYYYYXXXXXYRRXXYXXXXX  XXXX ",
973  "YXYXXXXXXXXRRYXXXXXXXXXXYXXYRRXXXRRXRXX X  X ",
974  "XYXXYYYYYYYXXRRYXXXXYXXYXXYRRRRXR  RXXXXXXXX ",
975  "YXYYYXXXXXYYYXRRXXXXXYXYXXYRRRXYXR RRXRX   X ",
976  "XYYXXXYXYXXXYYXRYXXXXXYXXXYRRXYYXXRRRRXXXXX  ",
977  "RXXXYXYXYXYXXYYXRXXXXYXYXXYRRXYXYYXR  RXRX   ",
978  "RRXXYXXXXXXYYXYXRYXXYXXXYXYRXYYXXXXXR RRXXX  ",
979  "R RXXRRRRRXXXXYYXRXYXXXXXXYRXYXYYXRRXRRRRXRX ",
980  "R  RXR   RRXYYXYXXXXXYYYXXXXXYXXXXR  XR  RXXX",
981  "XRRRRX XX RXXXXYXRRXRRRRRXYYXYXYYXR X XR RRXR");
982
983
984const array string: jack_of_clubs_pic is [](
985  "        XRRXRRRXRXRRXRXRRRXRRX               ",
986  "X        XRRXRRXRXRRXRXRRXRRX      XXX       ",
987  "RX       XXRRXXXRXXXXRXXXRRX      XXXXX      ",
988  "RRX     XGGXRRRRRRRRRRRRRRX      XXXXXXX     ",
989  "RRRX    XGXXXXXXXXXXXXXXXXX      XXXXXXX     ",
990  "XXXXX   GGXX        XYXYXYX      XXXXXXX     ",
991  "YYYX   XGGXX        XYXYXYX       XXXXX      ",
992  "XYYX   XXXYXXXX XXX XYXYXYX    XXX XXX XXX   ",
993  "YYYX     XYXXX XXX XXYXYXYX   XXXXXXXXXXXXX  ",
994  "XYYX     XYX   X    XYXYXYX  XXXXXXXXXXXXXXX ",
995  "YYYX    XXYX   X    XYXYXYX  XXXXXXXXXXXXXXX ",
996  "XYYX   XYXYX   X    XYXYXYX  XXXXXXXXXXXXXXX ",
997  "YYYX   XYXYX  XXX   XYXYXYXX  XXXXX X XXXXX  ",
998  "XXYX   XXXYX        XYXYXXYYX  XXX  X  XXX   ",
999  "YYYX  XYYXY X XXX   XYXXXYYXX      XXX       ",
1000  "XXYX  XYXYYXX      XXYXYYXXXXXX   XXXXX      ",
1001  "YYYX  XYYYXXRX    XRXYXXYXXX X X             ",
1002  "YYYXX  XXXRXRRXXXXRRRXYYYXX XX RXX          X",
1003  "XYX  XXRXRXXRRRRXXRRRXXXXXXXYX RRRXX       XY",
1004  " X    XXRXRXRYYRXXXRXX  XX XYX RRYR XX    XYY",
1005  "XXXXX XRXRXXRRRRX XXX  XX XYYX RYYYR XXXXXYYY",
1006  "  XX  XXRXRXRYYRX  X  XX XYYYX YYRYY XXXXXYYY",
1007  "XXYX  XRXRXXRRRRXX   XX XYYXXX RYYYR XXXXXYYY",
1008  " XYX  XXRXRXRYYRXXX XX RXYYYYX RRYRR XXXXXYYY",
1009  "XYYX  XRXRXXRRRRX XXX RXYYXXXX RRRRR XXXXXYYY",
1010  " XYX XRXRXXXRYYRXX X XXYYYYYYX RRYRR XXXXXYYY",
1011  "XYYXXXXRXXXXRRRRXRX XRXYXYXXXX RYYYR XXXXXYYY",
1012  "YYYXXXXXXXXRYYRXYXRXRXYYYYYYYX YYRYY XXXXXYYY",
1013  "YYYXX XXX XRRRRXXYXRXYXYXXXXXX RYYYRXXXRRXYYY",
1014  "YYYX   X  XRYYRXYYYXYYYYYYYYYX RRYRRXRRRYXYYY",
1015  "YYYX X   XXRRRRXXXXYYXYXXXXXXX XXXXRRYYRRXYYY",
1016  "YYYXX X X XRYYRXYYYYYYYYYYYYYXX  XRRRRRRRXYYY",
1017  "YYYX X X XXRRRRXXYRXYXXXYXRYX   XRRYYRRXXXYYY",
1018  "YYYXX X X RYYRXYYYXRX   XRXX    XRRRRRXX XYYY",
1019  "YYYX X X XRRRRXXYYYX XXX X     XRYYRRX X XYYY",
1020  "YYYXX X XXRYYRXYXXX XRRRX X   XXRRRRX X XXYYY");
1021
1022
1023const array string: backside_pic is [](
1024  "   BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB   ",
1025  "  B B                                                     B B  ",
1026  " B B  BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB  B B ",
1027  "B B  B      B B      B B      B B      B B      B B      B  B B",
1028  "BB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BB",
1029  "B  B  B BB B   B BB B   B BB B   B BB B   B BB B   B BB B  B  B",
1030  "BB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BB",
1031  "BB B BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB B BB",
1032  "BB B BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB B BB",
1033  "BB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BB",
1034  "B  B  B BB B   B BB B   B BB B   B BB B   B BB B   B BB B  B  B",
1035  "BB BB  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  BB BB",
1036  "B  B B      B B      B B      B B      B B      B B      B B  B",
1037  "BB BB  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  BB BB",
1038  "B  B  B BB B   B BB B   B BB B   B BB B   B BB B   B BB B  B  B",
1039  "BB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BB",
1040  "BB B BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB B BB",
1041  "BB B BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB B BB",
1042  "BB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BB",
1043  "B  B  B BB B   B BB B   B BB B   B BB B   B BB B   B BB B  B  B",
1044  "BB BB  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  BB BB",
1045  "B  B B      B B      B B      B B      B B      B B      B B  B",
1046  "BB BB  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  BB BB",
1047  "B  B  B BB B   B BB B   B BB B   B BB B   B BB B   B BB B  B  B",
1048  "BB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BB",
1049  "BB B BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB B BB",
1050  "BB B BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB B BB",
1051  "BB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BB",
1052  "B  B  B BB B   B BB B   B BB B   B BB B   B BB B   B BB B  B  B",
1053  "BB BB  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  BB BB",
1054  "B  B B      B B      B B      B B      B B      B B      B B  B",
1055  "BB BB  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  BB BB",
1056  "B  B  B BB B   B BB B   B BB B   B BB B   B BB B   B BB B  B  B",
1057  "BB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BB",
1058  "BB B BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB B BB",
1059  "BB B BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB B BB",
1060  "BB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BB",
1061  "B  B  B BB B   B BB B   B BB B   B BB B   B BB B   B BB B  B  B",
1062  "BB BB  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  BB BB",
1063  "B  B B      B B      B B      B B      B B      B B      B B  B",
1064  "BB BB  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  B  BBBB  BB BB",
1065  "B  B  B BB B   B BB B   B BB B   B BB B   B BB B   B BB B  B  B",
1066  "BB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BBBB B B BB",
1067  "BB B BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB BBB  BBB B BB");
1068
1069const type: suitSignPosition is array array integer;
1070
1071
1072const proc: drawPic (inout PRIMITIVE_WINDOW: pixmap,
1073    in integer: xPos, in integer: yPos, in array string: pattern,
1074    in integer: scale) is func
1075  local
1076    var integer: line is 0;
1077    var integer: column is 0;
1078    var char: ch is ' ';
1079    var color: col is black;
1080  begin
1081    for line range 1 to length(pattern) do
1082      for column range 1 to length(pattern[1]) do
1083        ch := pattern[line][column];
1084        if ch <> ' ' then
1085          col := charColor(ch, white);
1086          rect(pixmap, (xPos + column) * scale, (yPos + line) * scale,
1087              scale, scale, col);
1088        end if;
1089      end for;
1090    end for;
1091  end func;
1092
1093
1094const proc: drawPic2 (inout PRIMITIVE_WINDOW: pixmap,
1095    in integer: xPos, in integer: yPos, in array string: pattern,
1096    in integer: scale) is func
1097  local
1098    var integer: height is 0;
1099    var integer: width is 0;
1100    var integer: line is 0;
1101    var integer: column is 0;
1102    var char: ch is ' ';
1103    var color: col is black;
1104  begin
1105    height := height(pixmap) div scale;
1106    width := width(pixmap) div scale;
1107    for line range 1 to length(pattern) do
1108      for column range 1 to length(pattern[1]) do
1109        ch := pattern[line][column];
1110        if ch <> ' ' then
1111          col := charColor(ch, white);
1112          rect(pixmap, (xPos + column) * scale, (yPos + line) * scale,
1113              scale, scale, col);
1114          rect(pixmap, pred(width - xPos - column) * scale,
1115              pred(height - yPos - line) * scale,
1116              scale, scale, col);
1117        end if;
1118      end for;
1119    end for;
1120  end func;
1121
1122
1123const func PRIMITIVE_WINDOW: genPixmap (in array string: pattern,
1124    in array string: small_suit_sign, in array string: color_sign,
1125    in integer: scale) is func
1126  result
1127    var PRIMITIVE_WINDOW: pixmap is PRIMITIVE_WINDOW.value;
1128  local
1129    var integer: height is 0;
1130    var integer: width is 0;
1131  begin
1132    height := 2 * (length(pattern) + 12);
1133    width := length(pattern[1]) + 2 * 13;
1134    pixmap := newPixmap(width * scale, height * scale);
1135    clear(pixmap, black);
1136    rectTo(pixmap, 1 * scale, 1 * scale,
1137        pred(pred(width) * scale),
1138        pred(pred(height) * scale), white);
1139    rect(pixmap, scale, scale,
1140        scale, scale, light_gray);
1141    rect(pixmap, (width - 2) * scale, scale,
1142        scale, scale, light_gray);
1143    rect(pixmap, scale, (height - 2) * scale,
1144        scale, scale, light_gray);
1145    rect(pixmap, (width - 2) * scale, (height - 2) * scale,
1146        scale, scale, light_gray);
1147    rectTo(pixmap, 12 * scale, 11 * scale,
1148        pred((width - 12) * scale),
1149        pred((height - 11) * scale), black);
1150    rectTo(pixmap, 13 * scale, 12 * scale,
1151        pred((width - 13) * scale),
1152        pred((height - 12) * scale), white);
1153    drawPic2(pixmap, 12, 11, pattern, scale);
1154    drawPic2(pixmap,  1,  3, small_suit_sign, scale);
1155    drawPic2(pixmap,  1, 18, color_sign, scale);
1156  end func;
1157
1158
1159const func PRIMITIVE_WINDOW: genPixmap (in array string: big_suit_sign,
1160    in array string: small_suit_sign, in array string: color_sign,
1161    in suitSignPosition: positions, in integer: scale) is func
1162  result
1163    var PRIMITIVE_WINDOW: pixmap is PRIMITIVE_WINDOW.value;
1164  local
1165    var integer: height is 0;
1166    var integer: width is 0;
1167    var color: col is black;
1168    var integer: index is 0;
1169  begin
1170    height := 96;
1171    width := 71;
1172    pixmap := newPixmap(width * scale, height * scale);
1173    clear(pixmap, black);
1174    rectTo(pixmap, 1 * scale, 1 * scale,
1175        pred(pred(width) * scale),
1176        pred(pred(height) * scale), white);
1177    rect(pixmap, scale, scale,
1178        scale, scale, light_gray);
1179    rect(pixmap, (width - 2) * scale, scale,
1180        scale, scale, light_gray);
1181    rect(pixmap, scale, (height - 2) * scale,
1182        scale, scale, light_gray);
1183    rect(pixmap, (width - 2) * scale, (height - 2) * scale,
1184        scale, scale, light_gray);
1185    for index range 1 to length(positions) do
1186      if positions[index][3] = 2 then
1187        drawPic2(pixmap, positions[index][1], positions[index][2],
1188            big_suit_sign, scale);
1189      else
1190        drawPic(pixmap, positions[index][1], positions[index][2],
1191            big_suit_sign, scale);
1192      end if;
1193    end for;
1194    drawPic2(pixmap,  1,  3, small_suit_sign, scale);
1195    drawPic2(pixmap,  1, 18, color_sign, scale);
1196  end func;
1197
1198
1199(**
1200 *  Describes the suits of a french deck.
1201 *)
1202const type: cardSuit is new enum
1203    clubs, diamonds, hearts, spades
1204  end enum;
1205
1206const func string: str (in cardSuit: suit) is
1207  return [] ("clubs", "diamonds", "hearts", "spades") [succ(ord(suit))];
1208
1209const set of cardSuit: blackCardSuit is {clubs, spades};
1210const set of cardSuit: redCardSuit is {diamonds, hearts};
1211
1212
1213(**
1214 *  Describes the ranks of a french deck.
1215 *)
1216const type: cardRank is new enum
1217    two, three, four, five, six, seven, eight, nine, ten, jack, queen, king, ace
1218  end enum;
1219
1220const func string: str (in cardRank: rank) is
1221  return [] ("two", "three", "four", "five", "six", "seven",
1222             "eight", "nine", "ten", "jack", "queen", "king", "ace") [succ(ord(rank))];
1223
1224
1225(**
1226 *  Create a pixmap with a card from the french deck.
1227 *  @return the created pixmap.
1228 *)
1229const func PRIMITIVE_WINDOW: cardPixmap (in cardSuit: suit, in cardRank: rank, in integer: scale) is func
1230  result
1231    var PRIMITIVE_WINDOW: pixmap is PRIMITIVE_WINDOW.value;
1232  local
1233    const suitSignPosition: ACE_POS   is []([](27, 39, 1));
1234    const suitSignPosition: TEN_POS   is []([](13,  8, 2), [](41,  8, 2), [](13, 28, 2), [](41, 28, 2), [](27, 18, 2));
1235    const suitSignPosition: NINE_POS  is []([](13,  8, 2), [](41,  8, 2), [](13, 28, 2), [](41, 28, 2), [](27, 39, 1));
1236    const suitSignPosition: EIGHT_POS is []([](13,  8, 2), [](41,  8, 2), [](13, 39, 1), [](41, 39, 1), [](27, 23, 2));
1237    const suitSignPosition: SEVEN_POS is []([](13,  8, 2), [](41,  8, 2), [](13, 39, 1), [](41, 39, 1), [](27, 23, 1));
1238    const suitSignPosition: SIX_POS   is []([](13,  8, 2), [](41,  8, 2), [](13, 39, 1), [](41, 39, 1));
1239    const suitSignPosition: FIVE_POS  is []([](13,  8, 2), [](41,  8, 2), [](27, 39, 1));
1240    const suitSignPosition: FOUR_POS  is []([](13,  8, 2), [](41,  8, 2));
1241    const suitSignPosition: THREE_POS is []([](27,  8, 2), [](27, 39, 1));
1242    const suitSignPosition: TWO_POS   is []([](27,  8, 2));
1243  begin
1244    case suit of
1245      when {clubs}:
1246        case rank of
1247          when {ace}:   pixmap := genPixmap(big_clubs_sign,     black_A_sign,  small_clubs_sign, ACE_POS,   scale);
1248          when {king}:  pixmap := genPixmap(king_of_clubs_pic,  black_K_sign,  small_clubs_sign, scale);
1249          when {queen}: pixmap := genPixmap(queen_of_clubs_pic, black_Q_sign,  small_clubs_sign, scale);
1250          when {jack}:  pixmap := genPixmap(jack_of_clubs_pic,  black_J_sign,  small_clubs_sign, scale);
1251          when {ten}:   pixmap := genPixmap(big_clubs_sign,     black_10_sign, small_clubs_sign, TEN_POS,   scale);
1252          when {nine}:  pixmap := genPixmap(big_clubs_sign,     black_9_sign,  small_clubs_sign, NINE_POS,  scale);
1253          when {eight}: pixmap := genPixmap(big_clubs_sign,     black_8_sign,  small_clubs_sign, EIGHT_POS, scale);
1254          when {seven}: pixmap := genPixmap(big_clubs_sign,     black_7_sign,  small_clubs_sign, SEVEN_POS, scale);
1255          when {six}:   pixmap := genPixmap(big_clubs_sign,     black_6_sign,  small_clubs_sign, SIX_POS,   scale);
1256          when {five}:  pixmap := genPixmap(big_clubs_sign,     black_5_sign,  small_clubs_sign, FIVE_POS,  scale);
1257          when {four}:  pixmap := genPixmap(big_clubs_sign,     black_4_sign,  small_clubs_sign, FOUR_POS,  scale);
1258          when {three}: pixmap := genPixmap(big_clubs_sign,     black_3_sign,  small_clubs_sign, THREE_POS, scale);
1259          when {two}:   pixmap := genPixmap(big_clubs_sign,     black_2_sign,  small_clubs_sign, TWO_POS,   scale);
1260        end case;
1261      when {diamonds}:
1262        case rank of
1263          when {ace}:   pixmap := genPixmap(big_diamonds_sign,     red_A_sign,  small_diamonds_sign, ACE_POS,   scale);
1264          when {king}:  pixmap := genPixmap(king_of_diamonds_pic,  red_K_sign,  small_diamonds_sign, scale);
1265          when {queen}: pixmap := genPixmap(queen_of_diamonds_pic, red_Q_sign,  small_diamonds_sign, scale);
1266          when {jack}:  pixmap := genPixmap(jack_of_diamonds_pic,  red_J_sign,  small_diamonds_sign, scale);
1267          when {ten}:   pixmap := genPixmap(big_diamonds_sign,     red_10_sign, small_diamonds_sign, TEN_POS,   scale);
1268          when {nine}:  pixmap := genPixmap(big_diamonds_sign,     red_9_sign,  small_diamonds_sign, NINE_POS,  scale);
1269          when {eight}: pixmap := genPixmap(big_diamonds_sign,     red_8_sign,  small_diamonds_sign, EIGHT_POS, scale);
1270          when {seven}: pixmap := genPixmap(big_diamonds_sign,     red_7_sign,  small_diamonds_sign, SEVEN_POS, scale);
1271          when {six}:   pixmap := genPixmap(big_diamonds_sign,     red_6_sign,  small_diamonds_sign, SIX_POS,   scale);
1272          when {five}:  pixmap := genPixmap(big_diamonds_sign,     red_5_sign,  small_diamonds_sign, FIVE_POS,  scale);
1273          when {four}:  pixmap := genPixmap(big_diamonds_sign,     red_4_sign,  small_diamonds_sign, FOUR_POS,  scale);
1274          when {three}: pixmap := genPixmap(big_diamonds_sign,     red_3_sign,  small_diamonds_sign, THREE_POS, scale);
1275          when {two}:   pixmap := genPixmap(big_diamonds_sign,     red_2_sign,  small_diamonds_sign, TWO_POS,   scale);
1276        end case;
1277      when {hearts}:
1278        case rank of
1279          when {ace}:   pixmap := genPixmap(big_hearts_sign,     red_A_sign,  small_hearts_sign, ACE_POS,   scale);
1280          when {king}:  pixmap := genPixmap(king_of_hearts_pic,  red_K_sign,  small_hearts_sign, scale);
1281          when {queen}: pixmap := genPixmap(queen_of_hearts_pic, red_Q_sign,  small_hearts_sign, scale);
1282          when {jack}:  pixmap := genPixmap(jack_of_hearts_pic,  red_J_sign,  small_hearts_sign, scale);
1283          when {ten}:   pixmap := genPixmap(big_hearts_sign,     red_10_sign, small_hearts_sign, TEN_POS,   scale);
1284          when {nine}:  pixmap := genPixmap(big_hearts_sign,     red_9_sign,  small_hearts_sign, NINE_POS,  scale);
1285          when {eight}: pixmap := genPixmap(big_hearts_sign,     red_8_sign,  small_hearts_sign, EIGHT_POS, scale);
1286          when {seven}: pixmap := genPixmap(big_hearts_sign,     red_7_sign,  small_hearts_sign, SEVEN_POS, scale);
1287          when {six}:   pixmap := genPixmap(big_hearts_sign,     red_6_sign,  small_hearts_sign, SIX_POS,   scale);
1288          when {five}:  pixmap := genPixmap(big_hearts_sign,     red_5_sign,  small_hearts_sign, FIVE_POS,  scale);
1289          when {four}:  pixmap := genPixmap(big_hearts_sign,     red_4_sign,  small_hearts_sign, FOUR_POS,  scale);
1290          when {three}: pixmap := genPixmap(big_hearts_sign,     red_3_sign,  small_hearts_sign, THREE_POS, scale);
1291          when {two}:   pixmap := genPixmap(big_hearts_sign,     red_2_sign,  small_hearts_sign, TWO_POS,   scale);
1292        end case;
1293      when {spades}:
1294        case rank of
1295          when {ace}:   pixmap := genPixmap(big_spades_sign,     black_A_sign,  small_spades_sign, ACE_POS,   scale);
1296          when {king}:  pixmap := genPixmap(king_of_spades_pic,  black_K_sign,  small_spades_sign, scale);
1297          when {queen}: pixmap := genPixmap(queen_of_spades_pic, black_Q_sign,  small_spades_sign, scale);
1298          when {jack}:  pixmap := genPixmap(jack_of_spades_pic,  black_J_sign,  small_spades_sign, scale);
1299          when {ten}:   pixmap := genPixmap(big_spades_sign,     black_10_sign, small_spades_sign, TEN_POS,   scale);
1300          when {nine}:  pixmap := genPixmap(big_spades_sign,     black_9_sign,  small_spades_sign, NINE_POS,  scale);
1301          when {eight}: pixmap := genPixmap(big_spades_sign,     black_8_sign,  small_spades_sign, EIGHT_POS, scale);
1302          when {seven}: pixmap := genPixmap(big_spades_sign,     black_7_sign,  small_spades_sign, SEVEN_POS, scale);
1303          when {six}:   pixmap := genPixmap(big_spades_sign,     black_6_sign,  small_spades_sign, SIX_POS,   scale);
1304          when {five}:  pixmap := genPixmap(big_spades_sign,     black_5_sign,  small_spades_sign, FIVE_POS,  scale);
1305          when {four}:  pixmap := genPixmap(big_spades_sign,     black_4_sign,  small_spades_sign, FOUR_POS,  scale);
1306          when {three}: pixmap := genPixmap(big_spades_sign,     black_3_sign,  small_spades_sign, THREE_POS, scale);
1307          when {two}:   pixmap := genPixmap(big_spades_sign,     black_2_sign,  small_spades_sign, TWO_POS,   scale);
1308        end case;
1309    end case;
1310  end func;
1311
1312
1313(**
1314 *  Create a pixmap with the backside of a card.
1315 *  @return the created pixmap.
1316 *)
1317const func PRIMITIVE_WINDOW: cardBackside (in integer: scale) is func
1318  result
1319    var PRIMITIVE_WINDOW: pixmap is PRIMITIVE_WINDOW.value;
1320  local
1321    var integer: height is 0;
1322    var integer: width is 0;
1323    var integer: xPos is 0;
1324    var integer: yPos is 0;
1325  begin
1326    height := 96;
1327    width := 71;
1328    pixmap := newPixmap(width * scale, height * scale);
1329    clear(pixmap, black);
1330    rectTo(pixmap, 1 * scale, 1 * scale,
1331        pred(pred(width) * scale),
1332        pred(pred(height) * scale), white);
1333    rect(pixmap, scale, scale,
1334        scale, scale, light_gray);
1335    rect(pixmap, (width - 2) * scale, scale,
1336        scale, scale, light_gray);
1337    rect(pixmap, scale, (height - 2) * scale,
1338        scale, scale, light_gray);
1339    rect(pixmap, (width - 2) * scale, (height - 2) * scale,
1340        scale, scale, light_gray);
1341    drawPic2(pixmap, 3, 3, backside_pic, scale);
1342  end func;
1343