Poker-aiml

This script allows your bot to play "Jacks or Better" video poker.

Say "5CARDPOKER" to start the game.

<?xml version="1.0" encoding="UTF-8"?>
<aiml version="1.0">
 
<!-- Free software (c)2008 Square Bear -->
<!-- This program is open source code released under -->
<!-- the terms of the GNU General Public License -->
<!-- as published by the Free Software Foundation. -->
<!-- Complies with AIML 1.0.1 Tag Set Specification -->
<!-- as adopted by the ALICE A.I. Foundation. -->
<!-- poker.aiml by Square Bear -->
<!-- Play draw poker with your bot -->
 
<!-- Introduce the game -->
 
<category> 
<pattern>5CARDPOKER</pattern>
<template>
Welcome to the <bot name="name"/>version of 5 card "Jacks or Better" draw poker.<br/>
You start with $100 and each game costs $5.<br/><br/>
Type START to play my poker game.
</template>
</category>
 
<!-- First round. Sets up the bank and plays one round. -->
 
<category> 
<pattern>START</pattern>
<that>TYPE START TO PLAY MY POKER GAME</that>
<template>
<think>
    <set name="kount">0</set>
    <set name="bankth">0</set>
    <set name="bankhu">1</set>
    <set name="bankte">0</set>
    <set name="bankon">0</set>
</think>
<srai>PKBANKSUB5</srai>
<srai>PKDRAWNEWDECK</srai>
Bank = $<get name="bankth"/><get name="bankhu"/><get name="bankte"/><get name="bankon"/><br/><br/>
A)<get name="card1"/>of<get name="suit1"/><br/>
B)<get name="card2"/>of<get name="suit2"/><br/>
C)<get name="card3"/>of<get name="suit3"/><br/>
D)<get name="card4"/>of<get name="suit4"/><br/>
E)<get name="card5"/>of<get name="suit5"/><br/><br/>
Which cards do you want to hold?<br/>
Type "N" to hold no cards or "Q" to quit.<br/><br/>
Pay Table:<br/>
Royal Flush ----- $4000<br/>
Straight Flush -- $250<br/>
Four of a Kind -- $125<br/>
Full House ------ $45<br/>
Flush ----------- $30<br/>
Straight -------- $20<br/>
Three of a Kind - $15<br/>
Two Pair -------- $10<br/>
Jacks or Better - $5
<think>
    <set name="topic">5CARDPOKER</set>
</think>
</template>
</category>
 
<!-- Main loop for the game -->
 
<category> 
<pattern>PKMAINLOOP</pattern>
<template>
<think>
    <set name="kount">0</set>
</think>
<srai>PKBANKSUB5</srai>
<srai>PKDRAWNEWDECK</srai>
Bank = $<get name="bankth"/><get name="bankhu"/><get name="bankte"/><get name="bankon"/><br/><br/>
A)<get name="card1"/>of<get name="suit1"/><br/>
B)<get name="card2"/>of<get name="suit2"/><br/>
C)<get name="card3"/>of<get name="suit3"/><br/>
D)<get name="card4"/>of<get name="suit4"/><br/>
E)<get name="card5"/>of<get name="suit5"/><br/><br/>
Which cards do you want to hold?<br/>
Type "N" to hold no cards or "Q" to quit.<br/><br/>
Pay Table:<br/>
Royal Flush ----- $4000<br/>
Straight Flush -- $250<br/>
Four of a Kind -- $125<br/>
Full House ------ $45<br/>
Flush ----------- $30<br/>
Straight -------- $20<br/>
Three of a Kind - $15<br/>
Two Pair -------- $10<br/>
Jacks or Better - $5
<think>
    <set name="topic">5CARDPOKER</set>
</think>
</template>
</category>
 
<!-- Draws out 10 random cards and make sure they are different. If it can't pull 10 different cards after 2 goes then choose a set from the prearranged deck -->
 
<category> 
<pattern>PKDRAWNEWDECK</pattern>
<template>
<think>
    <set name="card1"><srai>PKDRAWCARD</srai></set>
    <set name="card2"><srai>PKDRAWCARD</srai></set>
    <set name="card3"><srai>PKDRAWCARD</srai></set>
    <set name="card4"><srai>PKDRAWCARD</srai></set>
    <set name="card5"><srai>PKDRAWCARD</srai></set>
    <set name="card6"><srai>PKDRAWCARD</srai></set>
    <set name="card7"><srai>PKDRAWCARD</srai></set>
    <set name="card8"><srai>PKDRAWCARD</srai></set>
    <set name="card9"><srai>PKDRAWCARD</srai></set>
    <set name="card10"><srai>PKDRAWCARD</srai></set>
    <set name="suit1"><srai>PKDRAWSUIT</srai></set>
    <set name="suit2"><srai>PKDRAWSUIT</srai></set>
    <set name="suit3"><srai>PKDRAWSUIT</srai></set>
    <set name="suit4"><srai>PKDRAWSUIT</srai></set>
    <set name="suit5"><srai>PKDRAWSUIT</srai></set>
    <set name="suit6"><srai>PKDRAWSUIT</srai></set>
    <set name="suit7"><srai>PKDRAWSUIT</srai></set>
    <set name="suit8"><srai>PKDRAWSUIT</srai></set>
    <set name="suit9"><srai>PKDRAWSUIT</srai></set>
    <set name="suit10"><srai>PKDRAWSUIT</srai></set>
    <srai>PKADDKOUNT</srai>
    <condition name="kount">
        <li value="2"><srai>PKCHOOSEOWNCARDS</srai></li>
    </condition>
    <srai>PKCHECKDIFFCARDS</srai>
</think>
</template>
</category>
 
<!-- Choose a random card number -->
 
<category> 
<pattern>PKDRAWCARD</pattern>
<template>
    <random>
        <li>Two</li>
        <li>Three</li>
        <li>Four</li>
        <li>Five</li>
        <li>Six</li>
        <li>Seven</li>
        <li>Eight</li>
        <li>Nine</li>
        <li>Ten</li>
        <li>Jack</li>
        <li>Queen</li>
        <li>King</li>
        <li>Ace</li>
    </random>
</template>
</category>
 
<!-- Choose a random card suit -->
 
<category> 
<pattern>PKDRAWSUIT</pattern>
<template>
    <random>
        <li>Hearts</li>
        <li>Clubs</li>
        <li>Diamonds</li>
        <li>Spades</li>
    </random>
</template>
</category>
 
<!-- Check that the cards it has pulled out are different -->
 
<category> 
<pattern>PKCHECKDIFFCARDS</pattern>
<template>
<think>
<set name="diffcards">Y</set>
    <set name="checkcards"><get name="card1"/><get name="card2"/></set>
    <set name="checksuits"><get name="suit1"/><get name="suit2"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card1"/><get name="card3"/></set>
    <set name="checksuits"><get name="suit1"/><get name="suit3"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card1"/><get name="card4"/></set>
    <set name="checksuits"><get name="suit1"/><get name="suit4"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card1"/><get name="card5"/></set>
    <set name="checksuits"><get name="suit1"/><get name="suit5"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card1"/><get name="card6"/></set>
    <set name="checksuits"><get name="suit1"/><get name="suit6"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card1"/><get name="card7"/></set>
    <set name="checksuits"><get name="suit1"/><get name="suit7"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card1"/><get name="card8"/></set>
    <set name="checksuits"><get name="suit1"/><get name="suit8"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card1"/><get name="card9"/></set>
    <set name="checksuits"><get name="suit1"/><get name="suit9"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card1"/><get name="card10"/></set>
    <set name="checksuits"><get name="suit1"/><get name="suit10"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card2"/><get name="card3"/></set>
    <set name="checksuits"><get name="suit2"/><get name="suit3"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card2"/><get name="card4"/></set>
    <set name="checksuits"><get name="suit2"/><get name="suit4"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card2"/><get name="card5"/></set>
    <set name="checksuits"><get name="suit2"/><get name="suit5"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card2"/><get name="card6"/></set>
    <set name="checksuits"><get name="suit2"/><get name="suit6"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card2"/><get name="card7"/></set>
    <set name="checksuits"><get name="suit2"/><get name="suit7"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card2"/><get name="card8"/></set>
    <set name="checksuits"><get name="suit2"/><get name="suit8"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card2"/><get name="card9"/></set>
    <set name="checksuits"><get name="suit2"/><get name="suit9"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card2"/><get name="card10"/></set>
    <set name="checksuits"><get name="suit2"/><get name="suit10"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card3"/><get name="card4"/></set>
    <set name="checksuits"><get name="suit3"/><get name="suit4"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card3"/><get name="card5"/></set>
    <set name="checksuits"><get name="suit3"/><get name="suit5"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card3"/><get name="card6"/></set>
    <set name="checksuits"><get name="suit3"/><get name="suit6"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card3"/><get name="card7"/></set>
    <set name="checksuits"><get name="suit3"/><get name="suit7"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card3"/><get name="card8"/></set>
    <set name="checksuits"><get name="suit3"/><get name="suit8"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card3"/><get name="card9"/></set>
    <set name="checksuits"><get name="suit3"/><get name="suit9"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card3"/><get name="card10"/></set>
    <set name="checksuits"><get name="suit3"/><get name="suit10"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card4"/><get name="card5"/></set>
    <set name="checksuits"><get name="suit4"/><get name="suit5"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card4"/><get name="card6"/></set>
    <set name="checksuits"><get name="suit4"/><get name="suit6"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card4"/><get name="card7"/></set>
    <set name="checksuits"><get name="suit4"/><get name="suit7"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card4"/><get name="card8"/></set>
    <set name="checksuits"><get name="suit4"/><get name="suit8"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card4"/><get name="card9"/></set>
    <set name="checksuits"><get name="suit4"/><get name="suit9"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card4"/><get name="card10"/></set>
    <set name="checksuits"><get name="suit4"/><get name="suit10"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card5"/><get name="card6"/></set>
    <set name="checksuits"><get name="suit5"/><get name="suit6"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card5"/><get name="card7"/></set>
    <set name="checksuits"><get name="suit5"/><get name="suit7"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card5"/><get name="card8"/></set>
    <set name="checksuits"><get name="suit5"/><get name="suit8"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card5"/><get name="card9"/></set>
    <set name="checksuits"><get name="suit5"/><get name="suit9"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card5"/><get name="card10"/></set>
    <set name="checksuits"><get name="suit5"/><get name="suit10"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card6"/><get name="card7"/></set>
    <set name="checksuits"><get name="suit6"/><get name="suit7"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card6"/><get name="card8"/></set>
    <set name="checksuits"><get name="suit6"/><get name="suit8"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card6"/><get name="card9"/></set>
    <set name="checksuits"><get name="suit6"/><get name="suit9"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card6"/><get name="card10"/></set>
    <set name="checksuits"><get name="suit6"/><get name="suit10"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card7"/><get name="card8"/></set>
    <set name="checksuits"><get name="suit7"/><get name="suit8"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card7"/><get name="card9"/></set>
    <set name="checksuits"><get name="suit7"/><get name="suit9"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card7"/><get name="card10"/></set>
    <set name="checksuits"><get name="suit7"/><get name="suit10"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card8"/><get name="card9"/></set>
    <set name="checksuits"><get name="suit8"/><get name="suit9"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card8"/><get name="card10"/></set>
    <set name="checksuits"><get name="suit8"/><get name="suit10"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
    <set name="checkcards"><get name="card9"/><get name="card10"/></set>
    <set name="checksuits"><get name="suit9"/><get name="suit10"/></set>
    <srai>PKCHECKDIFFCARDS2</srai>
</think>
<condition name="diffcards">
    <li value="N"><srai>PKDRAWNEWDECK</srai></li>
</condition>
</template>
</category>
 
<!-- If the two cards are the same, check the suits -->
 
<category> 
<pattern>PKCHECKDIFFCARDS2</pattern>
<template>
<think>
    <condition name="checkcards">
        <li value="Two Two"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Three Three"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Four Four"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Five Five"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Six Six"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Seven Seven"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Eight Eight"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Nine Nine"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Ten Ten"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Jack Jack"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Queen Queen"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="King King"><srai>PKCHECKDIFFSUITS</srai></li>
        <li value="Ace Ace"><srai>PKCHECKDIFFSUITS</srai></li>
    </condition>
</think>
</template>
</category>
 
<!-- Check that the suits are different on matching cards otherwise we have drawn two cards the same -->
 
<category> 
<pattern>PKCHECKDIFFSUITS</pattern>
<template>
<think>
    <condition name="checksuits">
        <li value="Hearts Hearts"><set name="diffcards">N</set></li>
        <li value="Clubs Clubs"><set name="diffcards">N</set></li>
        <li value="Diamonds Diamonds"><set name="diffcards">N</set></li>
        <li value="Spades Spades"><set name="diffcards">N</set></li>
    </condition>
</think>
</template>
</category>
 
<!-- The machine couldn't pick 10 random cards so we allocate it 10 from this pre-shuffled deck -->
 
<category> 
<pattern>PKCHOOSEOWNCARDS</pattern>
<template>
<think>
    <random>
        <li><set name="card1">Eight</set><set name="suit1">Hearts</set></li>
        <li><set name="card1">King</set><set name="suit1">Clubs</set></li>
        <li><set name="card1">Three</set><set name="suit1">Diamonds</set></li>
        <li><set name="card1">Ten</set><set name="suit1">Spades</set></li>
        <li><set name="card1">Two</set><set name="suit1">Hearts</set></li>
    </random>
    <random>
        <li><set name="card2">Seven</set><set name="suit2">Clubs</set></li>
        <li><set name="card2">Nine</set><set name="suit2">Diamonds</set></li>
        <li><set name="card2">Five</set><set name="suit2">Spades</set></li>
        <li><set name="card2">Queen</set><set name="suit2">Hearts</set></li>
        <li><set name="card2">Four</set><set name="suit2">Clubs</set></li>
    </random>
    <random>
        <li><set name="card3">Ace</set><set name="suit3">Diamonds</set></li>
        <li><set name="card3">Six</set><set name="suit3">Spades</set></li>
        <li><set name="card3">Jack</set><set name="suit3">Hearts</set></li>
        <li><set name="card3">Eight</set><set name="suit3">Clubs</set></li>
        <li><set name="card3">King</set><set name="suit3">Diamonds</set></li>
    </random>
    <random>
        <li><set name="card4">Three</set><set name="suit4">Spades</set></li>
        <li><set name="card4">Ten</set><set name="suit4">Hearts</set></li>
        <li><set name="card4">Two</set><set name="suit4">Clubs</set></li>
        <li><set name="card4">Seven</set><set name="suit4">Diamonds</set></li>
        <li><set name="card4">Nine</set><set name="suit4">Spades</set></li>
    </random>
    <random>
        <li><set name="card5">Five</set><set name="suit5">Hearts</set></li>
        <li><set name="card5">Queen</set><set name="suit5">Clubs</set></li>
        <li><set name="card5">Four</set><set name="suit5">Diamonds</set></li>
        <li><set name="card5">Ace</set><set name="suit5">Spades</set></li>
        <li><set name="card5">Six</set><set name="suit5">Hearts</set></li>
    </random>
    <random>
        <li><set name="card6">Jack</set><set name="suit6">Clubs</set></li>
        <li><set name="card6">Eight</set><set name="suit6">Diamonds</set></li>
        <li><set name="card6">King</set><set name="suit6">Spades</set></li>
        <li><set name="card6">Three</set><set name="suit6">Hearts</set></li>
        <li><set name="card6">Ten</set><set name="suit6">Clubs</set></li>
    </random>
    <random>
        <li><set name="card7">Two</set><set name="suit7">Diamonds</set></li>
        <li><set name="card7">Seven</set><set name="suit7">Spades</set></li>
        <li><set name="card7">Nine</set><set name="suit7">Hearts</set></li>
        <li><set name="card7">Five</set><set name="suit7">Clubs</set></li>
        <li><set name="card7">Queen</set><set name="suit7">Diamonds</set></li>
    </random>
    <random>
        <li><set name="card8">Four</set><set name="suit8">Spades</set></li>
        <li><set name="card8">Ace</set><set name="suit8">Hearts</set></li>
        <li><set name="card8">Six</set><set name="suit8">Clubs</set></li>
        <li><set name="card8">Jack</set><set name="suit8">Diamonds</set></li>
        <li><set name="card8">Three</set><set name="suit8">Clubs</set></li>
    </random>
    <random>
        <li><set name="card9">Ten</set><set name="suit9">Diamonds</set></li>
        <li><set name="card9">Two</set><set name="suit9">Spades</set></li>
        <li><set name="card9">Seven</set><set name="suit9">Hearts</set></li>
        <li><set name="card9">Nine</set><set name="suit9">Clubs</set></li>
        <li><set name="card9">Five</set><set name="suit9">Diamonds</set></li>
    </random>
    <random>
        <li><set name="card10">Queen</set><set name="suit10">Spades</set></li>
        <li><set name="card10">Four</set><set name="suit10">Hearts</set></li>
        <li><set name="card10">Ace</set><set name="suit10">Clubs</set></li>
        <li><set name="card10">Six</set><set name="suit10">Diamonds</set></li>
        <li><set name="card10">Jack</set><set name="suit10">Spades</set></li>
    </random>
</think>
</template>
</category>
 
<!-- Which cards does the player want to hold. Check that the choice is a valid one -->
 
<topic name="5CARDPOKER"> 
<category>
<pattern>_</pattern>
<template>
<think>
    <set name="inp"><star/></set>
</think>
<condition name="inp">
    <li value="Q"><set name="topic"></set><srai>PKQUITGAME</srai></li>
    <li value="N"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="E"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="D"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="DE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="C"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="CE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="CD"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="CDE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="B"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="BE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="BD"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="BDE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="BC"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="BCE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="BCD"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="BCDE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="A"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="AE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="AD"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ADE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="AC"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ACE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ACD"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ACDE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="AB"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ABE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ABD"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ABDE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ABC"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ABCE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ABCD"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li value="ABCDE"><set name="topic"></set><srai>PKVALIDCHOICE</srai></li>
    <li>
A)<get name="card1"/>of<get name="suit1"/><br/>
B)<get name="card2"/>of<get name="suit2"/><br/>
C)<get name="card3"/>of<get name="suit3"/><br/>
D)<get name="card4"/>of<get name="suit4"/><br/>
E)<get name="card5"/>of<get name="suit5"/><br/><br/>
Sorry but "<star/>" is not a valid choice.<br/>Which of the cards A-E do you want to hold? eg. "ACD" will hold card A, card C and card D. Type "N" to hold no cards or type "Q" to quit.<br/><br/>
Pay Table:<br/>
Royal Flush ----- $4000<br/>
Straight Flush -- $250<br/>
Four of a Kind -- $125<br/>
Full House ------ $45<br/>
Flush ----------- $30<br/>
Straight -------- $20<br/>
Three of a Kind - $15<br/>
Two Pair -------- $10<br/>
Jacks or Better - $5
    </li>
</condition>
</template>
</category>
</topic>
 
<!-- The choice was valid so now swap the cards the player doesn't want to hold -->
 
<category>
<pattern>PKVALIDCHOICE</pattern>
<template>
<think>
<set name="holdcard1">*</set>
<set name="holdcard2">*</set>
<set name="holdcard3">*</set>
<set name="holdcard4">*</set>
<set name="holdcard5">*</set>
    <condition name="inp">
        <li value="N"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
        <li value="E"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai></li>
        <li value="D"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPE</srai></li>
        <li value="DE"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPC</srai></li>
        <li value="C"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
        <li value="CE"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPD</srai></li>
        <li value="CD"><srai>PKSWAPA</srai><srai>PKSWAPB</srai><srai>PKSWAPE</srai></li>
        <li value="CDE"><srai>PKSWAPA</srai><srai>PKSWAPB</srai></li>
        <li value="B"><srai>PKSWAPA</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
        <li value="BE"><srai>PKSWAPA</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai></li>
        <li value="BD"><srai>PKSWAPA</srai><srai>PKSWAPC</srai><srai>PKSWAPE</srai></li>
        <li value="BDE"><srai>PKSWAPA</srai><srai>PKSWAPC</srai></li>
        <li value="BC"><srai>PKSWAPA</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
        <li value="BCE"><srai>PKSWAPA</srai><srai>PKSWAPD</srai></li>
        <li value="BCD"><srai>PKSWAPA</srai><srai>PKSWAPE</srai></li>
        <li value="BCDE"><srai>PKSWAPA</srai></li>
        <li value="A"><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
        <li value="AE"><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPD</srai></li>
        <li value="AD"><srai>PKSWAPB</srai><srai>PKSWAPC</srai><srai>PKSWAPE</srai></li>
        <li value="ADE"><srai>PKSWAPB</srai><srai>PKSWAPC</srai></li>
        <li value="AC"><srai>PKSWAPB</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
        <li value="ACE"><srai>PKSWAPB</srai><srai>PKSWAPD</srai></li>
        <li value="ACD"><srai>PKSWAPB</srai><srai>PKSWAPE</srai></li>
        <li value="ACDE"><srai>PKSWAPB</srai></li>
        <li value="AB"><srai>PKSWAPC</srai><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
        <li value="ABE"><srai>PKSWAPC</srai><srai>PKSWAPD</srai></li>
        <li value="ABD"><srai>PKSWAPC</srai><srai>PKSWAPE</srai></li>
        <li value="ABDE"><srai>PKSWAPC</srai></li>
        <li value="ABC"><srai>PKSWAPD</srai><srai>PKSWAPE</srai></li>
        <li value="ABCE"><srai>PKSWAPD</srai></li>
        <li value="ABCD"><srai>PKSWAPE</srai></li>
        <li value="ABCDE"></li>
    </condition>
</think>
A)<get name="card1"/>of<get name="suit1"/> <get name="holdcard1"/><br/>
B)<get name="card2"/>of<get name="suit2"/> <get name="holdcard2"/><br/>
C)<get name="card3"/>of<get name="suit3"/> <get name="holdcard3"/><br/>
D)<get name="card4"/>of<get name="suit4"/> <get name="holdcard4"/><br/>
E)<get name="card5"/>of<get name="suit5"/> <get name="holdcard5"/><br/><br/>
<srai>PKSORTCARDS</srai>
</template>
</category>
 
<!-- Category to swap card A -->
 
<category> 
<pattern>PKSWAPA</pattern>
<template>
<think>
    <set name="card1"><get name="card6"/></set>
    <set name="suit1"><get name="suit6"/></set>
    <set name="holdcard1"></set>
</think>
</template>
</category>
 
<!-- Category to swap card B -->
 
<category> 
<pattern>PKSWAPB</pattern>
<template>
<think>
    <set name="card2"><get name="card7"/></set>
    <set name="suit2"><get name="suit7"/></set>
    <set name="holdcard2"></set>
</think>
</template>
</category>
 
<!-- Category to swap card C -->
 
<category> 
<pattern>PKSWAPC</pattern>
<template>
<think>
    <set name="card3"><get name="card8"/></set>
    <set name="suit3"><get name="suit8"/></set>
    <set name="holdcard3"></set>
</think>
</template>
</category>
 
<!-- Category to swap card D -->
 
<category> 
<pattern>PKSWAPD</pattern>
<template>
<think>
    <set name="card4"><get name="card9"/></set>
    <set name="suit4"><get name="suit9"/></set>
    <set name="holdcard4"></set>
</think>
</template>
</category>
 
<!-- Category to swap card E -->
 
<category> 
<pattern>PKSWAPE</pattern>
<template>
<think>
    <set name="card5"><get name="card10"/></set>
    <set name="suit5"><get name="suit10"/></set>
    <set name="holdcard5"></set>
</think>
</template>
</category>
 
<!-- Sort the cards out into ascending order. This makes it easier to check for winning combinations -->
 
<category>
<pattern>PKSORTCARDS</pattern>
<template>
<think>
    <set name="sortedcards"></set>
    <set name="samesuit">N</set>
    <condition name="card1"><li value="Two"><set name="sortedcards"><get name="sortedcards"/>2</set><set name="card1">2</set></li></condition>
    <condition name="card2"><li value="Two"><set name="sortedcards"><get name="sortedcards"/>2</set><set name="card2">2</set></li></condition>
    <condition name="card3"><li value="Two"><set name="sortedcards"><get name="sortedcards"/>2</set><set name="card3">2</set></li></condition>
    <condition name="card4"><li value="Two"><set name="sortedcards"><get name="sortedcards"/>2</set><set name="card4">2</set></li></condition>
    <condition name="card5"><li value="Two"><set name="sortedcards"><get name="sortedcards"/>2</set><set name="card5">2</set></li></condition>
    <condition name="card1"><li value="Three"><set name="sortedcards"><get name="sortedcards"/>3</set><set name="card1">3</set></li></condition>
    <condition name="card2"><li value="Three"><set name="sortedcards"><get name="sortedcards"/>3</set><set name="card2">3</set></li></condition>
    <condition name="card3"><li value="Three"><set name="sortedcards"><get name="sortedcards"/>3</set><set name="card3">3</set></li></condition>
    <condition name="card4"><li value="Three"><set name="sortedcards"><get name="sortedcards"/>3</set><set name="card4">3</set></li></condition>
    <condition name="card5"><li value="Three"><set name="sortedcards"><get name="sortedcards"/>3</set><set name="card5">3</set></li></condition>
    <condition name="card1"><li value="Four"><set name="sortedcards"><get name="sortedcards"/>4</set><set name="card1">4</set></li></condition>
    <condition name="card2"><li value="Four"><set name="sortedcards"><get name="sortedcards"/>4</set><set name="card2">4</set></li></condition>
    <condition name="card3"><li value="Four"><set name="sortedcards"><get name="sortedcards"/>4</set><set name="card3">4</set></li></condition>
    <condition name="card4"><li value="Four"><set name="sortedcards"><get name="sortedcards"/>4</set><set name="card4">4</set></li></condition>
    <condition name="card5"><li value="Four"><set name="sortedcards"><get name="sortedcards"/>4</set><set name="card5">4</set></li></condition>
    <condition name="card1"><li value="Five"><set name="sortedcards"><get name="sortedcards"/>5</set><set name="card1">5</set></li></condition>
    <condition name="card2"><li value="Five"><set name="sortedcards"><get name="sortedcards"/>5</set><set name="card2">5</set></li></condition>
    <condition name="card3"><li value="Five"><set name="sortedcards"><get name="sortedcards"/>5</set><set name="card3">5</set></li></condition>
    <condition name="card4"><li value="Five"><set name="sortedcards"><get name="sortedcards"/>5</set><set name="card4">5</set></li></condition>
    <condition name="card5"><li value="Five"><set name="sortedcards"><get name="sortedcards"/>5</set><set name="card5">5</set></li></condition>
    <condition name="card1"><li value="Six"><set name="sortedcards"><get name="sortedcards"/>6</set><set name="card1">6</set></li></condition>
    <condition name="card2"><li value="Six"><set name="sortedcards"><get name="sortedcards"/>6</set><set name="card2">6</set></li></condition>
    <condition name="card3"><li value="Six"><set name="sortedcards"><get name="sortedcards"/>6</set><set name="card3">6</set></li></condition>
    <condition name="card4"><li value="Six"><set name="sortedcards"><get name="sortedcards"/>6</set><set name="card4">6</set></li></condition>
    <condition name="card5"><li value="Six"><set name="sortedcards"><get name="sortedcards"/>6</set><set name="card5">6</set></li></condition>
    <condition name="card1"><li value="Seven"><set name="sortedcards"><get name="sortedcards"/>7</set><set name="card1">7</set></li></condition>
    <condition name="card2"><li value="Seven"><set name="sortedcards"><get name="sortedcards"/>7</set><set name="card2">7</set></li></condition>
    <condition name="card3"><li value="Seven"><set name="sortedcards"><get name="sortedcards"/>7</set><set name="card3">7</set></li></condition>
    <condition name="card4"><li value="Seven"><set name="sortedcards"><get name="sortedcards"/>7</set><set name="card4">7</set></li></condition>
    <condition name="card5"><li value="Seven"><set name="sortedcards"><get name="sortedcards"/>7</set><set name="card5">7</set></li></condition>
    <condition name="card1"><li value="Eight"><set name="sortedcards"><get name="sortedcards"/>8</set><set name="card1">8</set></li></condition>
    <condition name="card2"><li value="Eight"><set name="sortedcards"><get name="sortedcards"/>8</set><set name="card2">8</set></li></condition>
    <condition name="card3"><li value="Eight"><set name="sortedcards"><get name="sortedcards"/>8</set><set name="card3">8</set></li></condition>
    <condition name="card4"><li value="Eight"><set name="sortedcards"><get name="sortedcards"/>8</set><set name="card4">8</set></li></condition>
    <condition name="card5"><li value="Eight"><set name="sortedcards"><get name="sortedcards"/>8</set><set name="card5">8</set></li></condition>
    <condition name="card1"><li value="Nine"><set name="sortedcards"><get name="sortedcards"/>9</set><set name="card1">9</set></li></condition>
    <condition name="card2"><li value="Nine"><set name="sortedcards"><get name="sortedcards"/>9</set><set name="card2">9</set></li></condition>
    <condition name="card3"><li value="Nine"><set name="sortedcards"><get name="sortedcards"/>9</set><set name="card3">9</set></li></condition>
    <condition name="card4"><li value="Nine"><set name="sortedcards"><get name="sortedcards"/>9</set><set name="card4">9</set></li></condition>
    <condition name="card5"><li value="Nine"><set name="sortedcards"><get name="sortedcards"/>9</set><set name="card5">9</set></li></condition>
    <condition name="card1"><li value="Ten"><set name="sortedcards"><get name="sortedcards"/>10</set><set name="card1">10</set></li></condition>
    <condition name="card2"><li value="Ten"><set name="sortedcards"><get name="sortedcards"/>10</set><set name="card2">10</set></li></condition>
    <condition name="card3"><li value="Ten"><set name="sortedcards"><get name="sortedcards"/>10</set><set name="card3">10</set></li></condition>
    <condition name="card4"><li value="Ten"><set name="sortedcards"><get name="sortedcards"/>10</set><set name="card4">10</set></li></condition>
    <condition name="card5"><li value="Ten"><set name="sortedcards"><get name="sortedcards"/>10</set><set name="card5">10</set></li></condition>
    <condition name="card1"><li value="Jack"><set name="sortedcards"><get name="sortedcards"/>J</set><set name="card1">J</set></li></condition>
    <condition name="card2"><li value="Jack"><set name="sortedcards"><get name="sortedcards"/>J</set><set name="card2">J</set></li></condition>
    <condition name="card3"><li value="Jack"><set name="sortedcards"><get name="sortedcards"/>J</set><set name="card3">J</set></li></condition>
    <condition name="card4"><li value="Jack"><set name="sortedcards"><get name="sortedcards"/>J</set><set name="card4">J</set></li></condition>
    <condition name="card5"><li value="Jack"><set name="sortedcards"><get name="sortedcards"/>J</set><set name="card5">J</set></li></condition>
    <condition name="card1"><li value="Queen"><set name="sortedcards"><get name="sortedcards"/>Q</set><set name="card1">Q</set></li></condition>
    <condition name="card2"><li value="Queen"><set name="sortedcards"><get name="sortedcards"/>Q</set><set name="card2">Q</set></li></condition>
    <condition name="card3"><li value="Queen"><set name="sortedcards"><get name="sortedcards"/>Q</set><set name="card3">Q</set></li></condition>
    <condition name="card4"><li value="Queen"><set name="sortedcards"><get name="sortedcards"/>Q</set><set name="card4">Q</set></li></condition>
    <condition name="card5"><li value="Queen"><set name="sortedcards"><get name="sortedcards"/>Q</set><set name="card5">Q</set></li></condition>
    <condition name="card1"><li value="King"><set name="sortedcards"><get name="sortedcards"/>K</set><set name="card1">K</set></li></condition>
    <condition name="card2"><li value="King"><set name="sortedcards"><get name="sortedcards"/>K</set><set name="card2">K</set></li></condition>
    <condition name="card3"><li value="King"><set name="sortedcards"><get name="sortedcards"/>K</set><set name="card3">K</set></li></condition>
    <condition name="card4"><li value="King"><set name="sortedcards"><get name="sortedcards"/>K</set><set name="card4">K</set></li></condition>
    <condition name="card5"><li value="King"><set name="sortedcards"><get name="sortedcards"/>K</set><set name="card5">K</set></li></condition>
    <condition name="card1"><li value="Ace"><set name="sortedcards"><get name="sortedcards"/>A</set><set name="card1">A</set></li></condition>
    <condition name="card2"><li value="Ace"><set name="sortedcards"><get name="sortedcards"/>A</set><set name="card2">A</set></li></condition>
    <condition name="card3"><li value="Ace"><set name="sortedcards"><get name="sortedcards"/>A</set><set name="card3">A</set></li></condition>
    <condition name="card4"><li value="Ace"><set name="sortedcards"><get name="sortedcards"/>A</set><set name="card4">A</set></li></condition>
    <condition name="card5"><li value="Ace"><set name="sortedcards"><get name="sortedcards"/>A</set><set name="card5">A</set></li></condition>
<set name="suits"><get name="suit1"/><get name="suit2"/><get name="suit3"/><get name="suit4"/><get name="suit5"/></set>
</think>
<srai>PKCHECKWINNER</srai>
</template>
</category>
 
<!-- A complicated category to check for winning combinations. It starts at Jacks or Better and works up to Royal Flush so only the highest win is remembered -->
 
<category> 
<pattern>PKCHECKWINNER</pattern>
<template>
<think>
<set name="bestresult">NO</set>
<set name="samesuit">N</set>
    <condition name="suits">
        <li value="Hearts Hearts Hearts Hearts Hearts"><set name="samesuit">Y</set></li>
        <li value="Clubs Clubs Clubs Clubs Clubs"><set name="samesuit">Y</set></li>
        <li value="Diamonds Diamonds Diamonds Diamonds Diamonds"><set name="samesuit">Y</set></li>
        <li value="Spades Spades Spades Spades Spades"><set name="samesuit">Y</set></li>
    </condition>
    <set name="sortedcardssuit"><get name="sortedcards"/><get name="samesuit"/></set>
    <set name="kount">0</set>
    <set name="checkcards"><get name="card1"/><get name="card2"/></set><srai>PKCHECKTWOCARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card3"/></set><srai>PKCHECKTWOCARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
    <set name="checkcards"><get name="card2"/><get name="card3"/></set><srai>PKCHECKTWOCARDS</srai>
    <set name="checkcards"><get name="card2"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
    <set name="checkcards"><get name="card2"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
    <set name="checkcards"><get name="card3"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
    <set name="checkcards"><get name="card3"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
    <set name="checkcards"><get name="card4"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
    <condition name="kount">
        <li value="2"><set name="bestresult">2P</set></li>
    </condition>
    <set name="checkcards"><get name="card1"/><get name="card2"/><get name="card3"/></set><srai>PKCHECKTHREECARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card2"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card2"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card3"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card3"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
    <set name="checkcards"><get name="card2"/><get name="card3"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
    <set name="checkcards"><get name="card2"/><get name="card3"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
    <set name="checkcards"><get name="card2"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
    <set name="checkcards"><get name="card3"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
    <condition name="sortedcards">
        <li value="2 3 4 5 6"><set name="bestresult">ST</set></li>
        <li value="3 4 5 6 7"><set name="bestresult">ST</set></li>
        <li value="4 5 6 7 8"><set name="bestresult">ST</set></li>
        <li value="5 6 7 8 9"><set name="bestresult">ST</set></li>
        <li value="6 7 8 9 10"><set name="bestresult">ST</set></li>
        <li value="7 8 9 10 J"><set name="bestresult">ST</set></li>
        <li value="8 9 10 J Q"><set name="bestresult">ST</set></li>
        <li value="9 10 J Q K"><set name="bestresult">ST</set></li>
        <li value="10 J Q K A"><set name="bestresult">ST</set></li>
    </condition>
    <condition name="samesuit">
        <li value="Y"><set name="bestresult">FL</set></li>
    </condition>
    <set name="full3"><set name="full2">N</set></set>
    <set name="checkcards"><get name="card1"/><get name="card2"/><get name="card3"/></set><srai>PKCHECKTHREECARDS</srai>
        <condition name="full3">
            <li value="Y"><set name="checkcards"><get name="card4"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
                <condition name="full2">
                    <li value="Y"><set name="bestresult">FH</set></li>
                </condition>
            </li>
        </condition>
    <set name="full3"><set name="full2">N</set></set>
    <set name="checkcards"><get name="card1"/><get name="card2"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
        <condition name="full3">
            <li value="Y"><set name="checkcards"><get name="card3"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
                <condition name="full2">
                    <li value="Y"><set name="bestresult">FH</set></li>
                </condition>
            </li>
        </condition>
    <set name="full3"><set name="full2">N</set></set>
    <set name="checkcards"><get name="card1"/><get name="card2"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
        <condition name="full3">
            <li value="Y"><set name="checkcards"><get name="card3"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
                <condition name="full2">
                    <li value="Y"><set name="bestresult">FH</set></li>
                </condition>
            </li>
        </condition>
    <set name="full3"><set name="full2">N</set></set>
    <set name="checkcards"><get name="card1"/><get name="card3"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
        <condition name="full3">
            <li value="Y"><set name="checkcards"><get name="card2"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
                <condition name="full2">
                    <li value="Y"><set name="bestresult">FH</set></li>
                </condition>
            </li>
        </condition>
    <set name="full3"><set name="full2">N</set></set>
    <set name="checkcards"><get name="card1"/><get name="card3"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
        <condition name="full3">
            <li value="Y"><set name="checkcards"><get name="card2"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
                <condition name="full2">
                    <li value="Y"><set name="bestresult">FH</set></li>
                </condition>
            </li>
        </condition>
    <set name="full3"><set name="full2">N</set></set>
    <set name="checkcards"><get name="card1"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
        <condition name="full3">
            <li value="Y"><set name="checkcards"><get name="card2"/><get name="card3"/></set><srai>PKCHECKTWOCARDS</srai>
                <condition name="full2">
                    <li value="Y"><set name="bestresult">FH</set></li>
                </condition>
            </li>
        </condition>
    <set name="full3"><set name="full2">N</set></set>
    <set name="checkcards"><get name="card2"/><get name="card3"/><get name="card4"/></set><srai>PKCHECKTHREECARDS</srai>
        <condition name="full3">
            <li value="Y"><set name="checkcards"><get name="card1"/><get name="card5"/></set><srai>PKCHECKTWOCARDS</srai>
                <condition name="full2">
                    <li value="Y"><set name="bestresult">FH</set></li>
                </condition>
            </li>
        </condition>
    <set name="full3"><set name="full2">N</set></set>
    <set name="checkcards"><get name="card2"/><get name="card3"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
        <condition name="full3">
            <li value="Y"><set name="checkcards"><get name="card1"/><get name="card4"/></set><srai>PKCHECKTWOCARDS</srai>
                <condition name="full2">
                    <li value="Y"><set name="bestresult">FH</set></li>
                </condition>
            </li>
        </condition>
    <set name="full3"><set name="full2">N</set></set>
    <set name="checkcards"><get name="card2"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
        <condition name="full3">
            <li value="Y"><set name="checkcards"><get name="card1"/><get name="card3"/></set><srai>PKCHECKTWOCARDS</srai>
                <condition name="full2">
                    <li value="Y"><set name="bestresult">FH</set></li>
                </condition>
            </li>
        </condition>
    <set name="full3"><set name="full2">N</set></set>
    <set name="checkcards"><get name="card3"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKTHREECARDS</srai>
        <condition name="full3">
            <li value="Y"><set name="checkcards"><get name="card1"/><get name="card2"/></set><srai>PKCHECKTWOCARDS</srai>
                <condition name="full2">
                    <li value="Y"><set name="bestresult">FH</set></li>
                </condition>
            </li>
        </condition>
    <set name="checkcards"><get name="card1"/><get name="card2"/><get name="card3"/><get name="card4"/></set><srai>PKCHECKFOURCARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card2"/><get name="card3"/><get name="card5"/></set><srai>PKCHECKFOURCARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card2"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKFOURCARDS</srai>
    <set name="checkcards"><get name="card1"/><get name="card3"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKFOURCARDS</srai>
    <set name="checkcards"><get name="card2"/><get name="card3"/><get name="card4"/><get name="card5"/></set><srai>PKCHECKFOURCARDS</srai>
    <condition name="sortedcardssuit">
        <li value="2 3 4 5 6 Y"><set name="bestresult">SF</set></li>
        <li value="3 4 5 6 7 Y"><set name="bestresult">SF</set></li>
        <li value="4 5 6 7 8 Y"><set name="bestresult">SF</set></li>
        <li value="5 6 7 8 9 Y"><set name="bestresult">SF</set></li>
        <li value="6 7 8 9 10 Y"><set name="bestresult">SF</set></li>
        <li value="7 8 9 10 J Y"><set name="bestresult">SF</set></li>
        <li value="8 9 10 J Q Y"><set name="bestresult">SF</set></li>
        <li value="9 10 J Q K Y"><set name="bestresult">SF</set></li>
    </condition>
    <condition name="sortedcardssuit">
        <li value="10 J Q K A Y"><set name="bestresult">RF</set></li>
    </condition>
</think>
<srai>PKENDLOOP</srai>
</template>
</category>
 
<!-- This checks for a pair. Used in Jacks or Better and Full House -->
 
<category> 
<pattern>PKCHECKTWOCARDS</pattern>
<template>
<think>
    <condition name="checkcards">
        <li value="2 2"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="3 3"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="4 4"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="5 5"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="6 6"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="7 7"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="8 8"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="9 9"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="10 10"><set name="bestresult">NO</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="J J"><set name="bestresult">JB</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="Q Q"><set name="bestresult">JB</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="K K"><set name="bestresult">JB</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
        <li value="A A"><set name="bestresult">JB</set><set name="full2">Y</set><srai>PKADDKOUNT</srai></li>
    </condition>
</think>
</template>
</category>
 
<!-- This checks for 3 of a kind and also flags up a possible full house -->
 
<category> 
<pattern>PKCHECKTHREECARDS</pattern>
<template>
<think>
    <condition name="checkcards">
        <li value="2 2 2"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="3 3 3"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="4 4 4"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="5 5 5"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="6 6 6"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="7 7 7"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="8 8 8"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="9 9 9"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="10 10 10"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="J J J"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="Q Q Q"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="K K K"><set name="bestresult">3K</set><set name="full3">Y</set></li>
        <li value="A A A"><set name="bestresult">3K</set><set name="full3">Y</set></li>
    </condition>
</think>
</template>
</category>
 
<!-- Checks for 4 of a kind -->
 
<category> 
<pattern>PKCHECKFOURCARDS</pattern>
<template>
<think>
    <condition name="checkcards">
        <li value="2 2 2 2"><set name="bestresult">4K</set></li>
        <li value="3 3 3 3"><set name="bestresult">4K</set></li>
        <li value="4 4 4 4"><set name="bestresult">4K</set></li>
        <li value="5 5 5 5"><set name="bestresult">4K</set></li>
        <li value="6 6 6 6"><set name="bestresult">4K</set></li>
        <li value="7 7 7 7"><set name="bestresult">4K</set></li>
        <li value="8 8 8 8"><set name="bestresult">4K</set></li>
        <li value="9 9 9 9"><set name="bestresult">4K</set></li>
        <li value="10 10 10 10"><set name="bestresult">4K</set></li>
        <li value="J J J J"><set name="bestresult">4K</set></li>
        <li value="Q Q Q Q"><set name="bestresult">4K</set></li>
        <li value="K K K K"><set name="bestresult">4K</set></li>
        <li value="A A A A"><set name="bestresult">4K</set></li>
    </condition>
</think>
</template>
</category>
 
<!-- Keeps a running count. Used in picking a new deck and counting pairs -->
 
<category> 
<pattern>PKADDKOUNT</pattern>
<template>
<think>
    <condition name="kount">
        <li value="0"><set name="kount">1</set></li>
        <li value="1"><set name="kount">2</set></li>
        <li value="2"><set name="kount">3</set></li>
        <li value="3"><set name="kount">4</set></li>
        <li value="4"><set name="kount">5</set></li>
        <li value="5"><set name="kount">6</set></li>
        <li value="6"><set name="kount">7</set></li>
        <li value="7"><set name="kount">8</set></li>
        <li value="8"><set name="kount">9</set></li>
        <li value="9"><set name="kount">10</set></li>
    </condition>
</think>
</template>
</category>
 
<!-- Add any winnings, display the cards, check for bankrupt or break the bank and offer to play again -->
 
<category> 
<pattern>PKENDLOOP</pattern>
<template>
    <condition name="bestresult">
        <li value="NO"><set name="prizemessage">No win</set></li>
        <li value="JB"><set name="prizemessage">JACKS OR BETTER - You win $5</set><srai>PKBANK5</srai></li>
        <li value="2P"><set name="prizemessage">TWO PAIR - You win $10</set><srai>PKBANK10</srai></li>
        <li value="3K"><set name="prizemessage">THREE OF A KIND - You win $15</set><srai>PKBANK10</srai><srai>PKBANK5</srai></li>
        <li value="ST"><set name="prizemessage">STRAIGHT! - You win $20</set><srai>PKBANK10</srai><srai>PKBANK10</srai></li>
        <li value="FL"><set name="prizemessage">FLUSH! - You win $30</set><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai></li>
        <li value="FH"><set name="prizemessage">FULL HOUSE! - You win $45</set><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK5</srai></li>
        <li value="4K"><set name="prizemessage">FOUR OF A KIND!! - You win $125</set><srai>PKBANK100</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK5</srai></li>
        <li value="SF"><set name="prizemessage">STRAIGHT FLUSH!! - You win $250</set><srai>PKBANK100</srai><srai>PKBANK100</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai><srai>PKBANK10</srai></li>
        <li value="RF"><set name="prizemessage">ROYAL FLUSH!!! - You win $4000</set><srai>PKBANK1000</srai><srai>PKBANK1000</srai><srai>PKBANK1000</srai><srai>PKBANK1000</srai></li>
    </condition>
<br/><br/>
<think>
    <set name="dispbank"><get name="bankth"/><get name="bankhu"/><get name="bankte"/><get name="bankon"/></set>
</think>
Bank = $<get name="dispbank"/>.<br/>
    <condition name="dispbank">
        <li value="9 9 9 9">GAME OVER! CONGRATULATIONS!! YOU BROKE THE BANK.</li>
        <li value="0 0 0 0">GAME OVER! YOU ARE BANKRUPT!</li>
        <li>Play again (Y/N)?</li>
    </condition>
</template>
</category>
 
<!-- These next few categories are used for adding prizes to the bank and subtracting $5 a go -->
 
<category> 
<pattern>PKBANKSUB5</pattern>
<template>
<think>
    <condition name="bankon">
        <li value="5"><set name="bankon">0</set></li>
        <li value="0"><set name="bankon">5</set><srai>PKBANKSUB10</srai></li>
    </condition>
</think>
</template>
</category>
 
<category> 
<pattern>PKBANKSUB10</pattern>
<template>
<think>
    <condition name="bankte">
        <li value="9"><set name="bankte">8</set></li>
        <li value="8"><set name="bankte">7</set></li>
        <li value="7"><set name="bankte">6</set></li>
        <li value="6"><set name="bankte">5</set></li>
        <li value="5"><set name="bankte">4</set></li>
        <li value="4"><set name="bankte">3</set></li>
        <li value="3"><set name="bankte">2</set></li>
        <li value="2"><set name="bankte">1</set></li>
        <li value="1"><set name="bankte">0</set></li>
        <li value="0"><set name="bankte">9</set><srai>PKBANKSUB100</srai></li>
    </condition>
</think>
</template>
</category>
 
<category> 
<pattern>PKBANKSUB100</pattern>
<template>
<think>
    <condition name="bankhu">
        <li value="9"><set name="bankhu">8</set></li>
        <li value="8"><set name="bankhu">7</set></li>
        <li value="7"><set name="bankhu">6</set></li>
        <li value="6"><set name="bankhu">5</set></li>
        <li value="5"><set name="bankhu">4</set></li>
        <li value="4"><set name="bankhu">3</set></li>
        <li value="3"><set name="bankhu">2</set></li>
        <li value="2"><set name="bankhu">1</set></li>
        <li value="1"><set name="bankhu">0</set></li>
        <li value="0"><set name="bankhu">9</set><srai>PKBANKSUB1000</srai></li>
    </condition>
</think>
</template>
</category>
 
<category> 
<pattern>PKBANKSUB1000</pattern>
<template>
<think>
    <condition name="bankth">
        <li value="9"><set name="bankth">8</set></li>
        <li value="8"><set name="bankth">7</set></li>
        <li value="7"><set name="bankth">6</set></li>
        <li value="6"><set name="bankth">5</set></li>
        <li value="5"><set name="bankth">4</set></li>
        <li value="4"><set name="bankth">3</set></li>
        <li value="3"><set name="bankth">2</set></li>
        <li value="2"><set name="bankth">1</set></li>
        <li value="1"><set name="bankth">0</set></li>
        <li value="0"><set name="bankth">0</set><set name="bankhu">0</set><set name="bankte">0</set><set name="bankon">0</set></li>
    </condition>
</think>
</template>
</category>
 
<category> 
<pattern>PKBANK5</pattern>
<template>
<think>
    <condition name="bankon">
        <li value="0"><set name="bankon">5</set></li>
        <li value="5"><set name="bankon">0</set><srai>PKBANK10</srai></li>
    </condition>
</think>
</template>
</category>
 
<category> 
<pattern>PKBANK10</pattern>
<template>
<think>
    <condition name="bankte">
        <li value="0"><set name="bankte">1</set></li>
        <li value="1"><set name="bankte">2</set></li>
        <li value="2"><set name="bankte">3</set></li>
        <li value="3"><set name="bankte">4</set></li>
        <li value="4"><set name="bankte">5</set></li>
        <li value="5"><set name="bankte">6</set></li>
        <li value="6"><set name="bankte">7</set></li>
        <li value="7"><set name="bankte">8</set></li>
        <li value="8"><set name="bankte">9</set></li>
        <li value="9"><set name="bankte">0</set><srai>PKBANK100</srai></li>
    </condition>
</think>
</template>
</category>
 
<category> 
<pattern>PKBANK100</pattern>
<template>
<think>
    <condition name="bankhu">
        <li value="0"><set name="bankhu">1</set></li>
        <li value="1"><set name="bankhu">2</set></li>
        <li value="2"><set name="bankhu">3</set></li>
        <li value="3"><set name="bankhu">4</set></li>
        <li value="4"><set name="bankhu">5</set></li>
        <li value="5"><set name="bankhu">6</set></li>
        <li value="6"><set name="bankhu">7</set></li>
        <li value="7"><set name="bankhu">8</set></li>
        <li value="8"><set name="bankhu">9</set></li>
        <li value="9"><set name="bankhu">0</set><srai>PKBANK1000</srai></li>
    </condition>
</think>
</template>
</category>
 
<category> 
<pattern>PKBANK1000</pattern>
<template>
<think>
    <condition name="bankth">
        <li value="0"><set name="bankth">1</set></li>
        <li value="1"><set name="bankth">2</set></li>
        <li value="2"><set name="bankth">3</set></li>
        <li value="3"><set name="bankth">4</set></li>
        <li value="4"><set name="bankth">5</set></li>
        <li value="5"><set name="bankth">6</set></li>
        <li value="6"><set name="bankth">7</set></li>
        <li value="7"><set name="bankth">8</set></li>
        <li value="8"><set name="bankth">9</set></li>
        <li value="9"><set name="bankth">9</set><set name="bankhu">9</set><set name="bankte">9</set><set name="bankon">9</set></li>
    </condition>
</think>
</template>
</category>
 
<!-- These last few categories ask if the player wants another go and quits out if not -->
 
<category> 
<pattern>Y</pattern>
<that>PLAY AGAIN Y N</that>
<template>
    <srai>YES</srai>
</template>
</category>
 
<category> 
<pattern>YES</pattern>
<that>PLAY AGAIN Y N</that>
<template>
    <srai>PKMAINLOOP</srai>
</template>
</category>
 
<category> 
<pattern>N</pattern>
<that>PLAY AGAIN Y N</that>
<template>
    <srai>NO</srai>
</template>
</category>
 
<category> 
<pattern>NO</pattern>
<that>PLAY AGAIN Y N</that>
<template>
Thanks for playing.<br/><br/>Your final bank was $<get name="bankth"/><get name="bankhu"/><get name="bankte"/><get name="bankon"/>.
</template>
</category>
 
<category> 
<pattern>PKQUITGAME</pattern>
<template>
Thanks for playing.<br/><br/>Your final bank was $<get name="bankth"/><get name="bankhu"/><get name="bankte"/><get name="bankon"/>.
</template>
</category>
 
</aiml>
Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.