![]() |
Routines |
| Prev: 95EF | Up: Map | Next: 966C |
|
Used by the routine at PlayGame.
|
||||||||||||||||||||||||
|
A reminder of the hand types and values:
Prepare how many times to call the random number generator.
|
||||||||||||||||||||||||
| GirlArtificialIntelligence | 960C | LD A,($96C0) | Fetch the girls hand type from *Table_GirlEvaluation and store it in C as the "try" counter. | |||||||||||||||||||||
| 960F | LD C,A | |||||||||||||||||||||||
| 9610 | CP $02 | Jump to GirlAI_SetHoldTries if the hand "type" is lower than, or equal to 02 ("Pair" or "High Card"). | ||||||||||||||||||||||
| 9612 | JR C,GirlAI_SetHoldTries | |||||||||||||||||||||||
|
Double the value in the "try" counter for outcomes: "Two Pairs", "Three-Of-A-Kind", "Straight", "Flush", "Full House", "Four-Of-A-Kind" and "Straight Flush".
|
||||||||||||||||||||||||
| 9614 | RL C | Multiply C by two. | ||||||||||||||||||||||
| 9616 | CP $04 | Jump to GirlAI_SetRaiseTries if the hand "type" is lower than, or equal to 04 ("Two Pairs" or "Three-Of-A-Kind"). | ||||||||||||||||||||||
| 9618 | JR C,GirlAI_SetRaiseTries | |||||||||||||||||||||||
|
Double the value again in the "try" counter for outcomes: "Straight", "Flush", "Full House", "Four-Of-A-Kind" and "Straight Flush".
|
||||||||||||||||||||||||
| 961A | RL C | Multiply C by two. | ||||||||||||||||||||||
|
Set a number of "tries" to pick a random number under 0E.
|
||||||||||||||||||||||||
| GirlAI_SetRaiseTries | 961C | LD B,C | Set a counter in B which is just the value copied from C. | |||||||||||||||||||||
| GirlAI_SetRaiseTries_Loop | 961D | CALL GetRandomNumber | Call GetRandomNumber. | |||||||||||||||||||||
| 9620 | CP $0E | Jump to GirlAI_Raise if A is lower than 0E. | ||||||||||||||||||||||
| 9622 | JR C,GirlAI_Raise | |||||||||||||||||||||||
| 9624 | DJNZ GirlAI_SetRaiseTries_Loop | Decrease counter by one and loop back to GirlAI_SetRaiseTries_Loop until counter is zero. | ||||||||||||||||||||||
|
Set a number of "tries" to pick a random number under 1E.
|
||||||||||||||||||||||||
| GirlAI_SetHoldTries | 9626 | LD B,C | Set a counter in B which is just the value copied from C. | |||||||||||||||||||||
| GirlAI_SetHoldTries_Loop | 9627 | CALL GetRandomNumber | Call GetRandomNumber. | |||||||||||||||||||||
| 962A | CP $1E | Jump to GirlAction_Hold if A is lower than 1E. | ||||||||||||||||||||||
| 962C | JR C,GirlAction_Hold | |||||||||||||||||||||||
| 962E | DJNZ GirlAI_SetHoldTries_Loop | Decrease counter by one and loop back to GirlAI_SetHoldTries_Loop until counter is zero. | ||||||||||||||||||||||
|
If we made it this far then the girl will just drop, if you're playing along here then YES, albeit fairly unlikely - there is still a slim chance that the girl will DROP even if she has a Royal Straight Flush!
Messaging options:
|
||||||||||||||||||||||||
| 9630 | LD A,$01 | Call Messaging_Girl using message block 01. | ||||||||||||||||||||||
| 9632 | CALL Messaging_Girl | |||||||||||||||||||||||
| 9635 | XOR A | Return with A=00 ("drop"). | ||||||||||||||||||||||
| 9636 | RET | |||||||||||||||||||||||
|
Handle the girl choosing to raise.
|
||||||||||||||||||||||||
| GirlAI_Raise | 9637 | LD A,($8E59) | Jump to GirlAction_Hold if *InteractionCounter is equal to 07. | |||||||||||||||||||||
| 963A | CP $07 | |||||||||||||||||||||||
| 963C | JR Z,GirlAction_Hold | |||||||||||||||||||||||
| 963E | LD A,($96B7) | A=*CurrentRaiseValue. | ||||||||||||||||||||||
| 9641 | CALL GirlAddToPot | Call GirlAddToPot. | ||||||||||||||||||||||
| GirlAI_Raise_Loop | 9644 | CALL GetRandomNumber | Call GetRandomNumber. | |||||||||||||||||||||
| 9647 | SRA A | Divide the random number by 02 and subtract 06. | ||||||||||||||||||||||
| 9649 | SUB $06 | |||||||||||||||||||||||
| 964B | JR C,GirlAI_Raise_Loop | Jump to GirlAI_Raise_Loop and try again if the result is negative. | ||||||||||||||||||||||
|
The raise value is 00 or higher.
|
||||||||||||||||||||||||
| 964D | LD B,A | Store the raise value in B. | ||||||||||||||||||||||
| 964E | LD A,($96B6) | Jump to GirlAction_Raise if *GirlCash is higher than B. | ||||||||||||||||||||||
| 9651 | CP B | |||||||||||||||||||||||
| 9652 | JR NC,GirlAction_Raise | |||||||||||||||||||||||
|
Handle if the raise value is higher than the girls current cash balance.
|
||||||||||||||||||||||||
| 9654 | OR A | Does the girl have any cash left? | ||||||||||||||||||||||
| 9655 | LD B,A | Store the girls current cash balance in B. | ||||||||||||||||||||||
| 9656 | JR NZ,GirlAction_Raise | Jump to GirlAction_Raise if the raise value is not zero. | ||||||||||||||||||||||
|
Handle the girl choosing to hold.
Messaging options:
|
||||||||||||||||||||||||
| GirlAI_Hold | 9658 | LD A,$03 | Call Messaging_Girl using message block 03. | |||||||||||||||||||||
| 965A | CALL Messaging_Girl | |||||||||||||||||||||||
| 965D | LD A,($96B7) | D=*CurrentRaiseValue. | ||||||||||||||||||||||
| 9660 | LD D,A | |||||||||||||||||||||||
| 9661 | XOR A | Write 00 to *CurrentRaiseValue. | ||||||||||||||||||||||
| 9662 | LD ($96B7),A | |||||||||||||||||||||||
| 9665 | LD A,D | Return with A=02 ("hold") if D is not zero. | ||||||||||||||||||||||
| 9666 | OR A | |||||||||||||||||||||||
| 9667 | LD A,$02 | |||||||||||||||||||||||
| 9669 | RET NZ | |||||||||||||||||||||||
| 966A | INC A | Return with A=03 ("showdown"). | ||||||||||||||||||||||
| 966B | RET | |||||||||||||||||||||||
| Prev: 95EF | Up: Map | Next: 966C |