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