Sample Program to Evaluate Solitaire Poker by Eiji Sugino (sugino@jaist.ac.jp) at Jul.17.1997 Functions: This program evaluate a board generated as a result of the 'Solitaire Poker'. And this program includes a ordinary poker game additionally. Files: This package contains following files; README.e Now you are reading. README.j Japanese version of this file. Makefile make file for installation main.kl1 program driver dealer.kl1 cards generation program eval.kl1 evaluation program Installation: You complete with following command. % make Usage: You can start this program with just following command, % ./pk [Seed] where you can omit 'Seed' for the random number generator and start with a default value. Then you can put commands with '.' at the end after the prompt '>'. This program provide following commands. quit or exit : quits this program. open(N) : provides a new deck of cards with N as a random number seed. 5 : deals five cards and you can play the ordinary poker. 25 : deals twenty-five cards. [card(..),...] : is set as the current cards. (The notation is based on the one in the problem material.) show : shows the current cards you have. ch(List) : changes cards specified in the 'List'. In the 'List', you can mark the first card, second card and following cards as 0,1, and so on respectively. Example Expression of Cards: Case 1: The ordinary poker (with five cards) C6 C2 C3 S4 H5 ... 10787 / straight(20) The cards, score and hand are displayed like the above. Every card is specified as the suit and rank. The suits, spades,hearts,diamonds and clubs are specified as 'S','H','D' and 'C', and the rank, 10,jack,queen,king and ace as 'T','J','Q','K' and 'A' respectively. A number bracketed after a hand is used for counting the additional score at the inside. Case 2: The solitaire poker (with twenty five cards) 104 0 0 118 112 *1 ST CA C6 H9 HA ... 128 *2 S4 SJ H7 DT D5 ... 0 D2 DQ SQ S9 H6 ... 124 S2 S8 H8 S7 DK ... 116 C8 D7 H3 C3 S6 ... 106 21546 / 116 *3 --------------------------- TOTAL=22470 *4 (*1) It shows scores for the columns. (*2) It shows an each score after the line cards. (*3) It shows scores for diagonal lines; the back-slanting line and slanting line (*4) It shows the total score. Example Usage: % ./pk opens a game. > 5. deals five cards. CK C2 C3 S4 H5 ... 0 / no_pair TIME=0 > ch([0]). changes a card (CK). D9 C2 C3 S4 H5 ... 0 / no_pair TIME=0 ....... > ch([0]). C6 C2 C3 S4 H5 ... 10787 / straight(20) TIME=0 =-=-=-=-=-=-=-=-=- > open(17). opens a new deck TIME=0 > 5. deals five cards. SQ D8 SA HA HT ... 128 / one_pair(14) TIME=0 > ch([0,1,4]). changes three cards (SQ,D8,HT). D2 D6 SA HA S9 ... 128 / one_pair(14) TIME=0 > ch([0,1,4]). H5 DT SA HA D5 ... 926 / two_pairs(5,14) TIME=0 > ch([1]). H5 H4 SA HA D5 ... 926 / two_pairs(5,14) TIME=0 ........ > ch([1]). H5 C5 SA HA D5 ... 29376 / full_house(5,14) TIME=0 =-=-=-=-=-=-=-=-=- > open(7). opens a new deck. TIME=0 > 25. deals 25 cards. 104 0 0 0 112 HT CA S5 D8 HA ... 128 S4 SJ H7 DT D5 ... 0 D2 CT SQ S9 H6 ... 0 S2 S8 H8 S7 DK ... 116 C8 CQ DJ C3 S6 ... 0 0 / 116 --------------------------- TOTAL=576 TIME=0 > ch([0,2,3]). changes three cards (HT,S5,D8). 104 0 0 118 112 ST CA C6 H9 HA ... 128 S4 SJ H7 DT D5 ... 0 D2 CT SQ S9 H6 ... 0 S2 S8 H8 S7 DK ... 116 C8 CQ DJ C3 S6 ... 0 21546 / 116 --------------------------- TOTAL=22240 TIME=0 > ch([11,21]). changes two cards (CT,CQ). 104 0 0 118 112 ST CA C6 H9 HA ... 128 S4 SJ H7 DT D5 ... 0 D2 DQ SQ S9 H6 ... 124 S2 S8 H8 S7 DK ... 116 C8 H4 DJ C3 S6 ... 0 21546 / 116 --------------------------- TOTAL=22364 TIME=16