commit 2d26274

zzo38  ·  2025-09-01 06:30:55 +0000 UTC
parent 8a2ccd6
Make the prg/dealcards.tal shorter (compiled program was 254 bytes and is now 199 bytes)
1 files changed,  +10, -20
+10, -20
 1@@ -1,37 +1,27 @@
 2 |0100
 3   LIT2r ff33
 4-  #c3 DEI2 INC2 ;random/x STA2
 5+  #17c3 DEI2 INC2 ;random/x STA2
 6   #c5 DEI2 #c1 DEI2 EOR2 INC2 ;random/y STA2
 7-  #17 DEI ?input
 8+  DEI ?input
 9 @begin
10-  ;deck
11+  DUP2k EOR2 [@ DUPk STZ INC DUP ]?
12+@loop
13   \\ Select random card
14-  STHrk DUP #04 SFT ORA DUP #02 SFT ORA DUP #01 SFT ORA
15-  DUP [@ POP random ADD OVR AND DUP STHrk GTH ]?
16-  NIP ADD LDAk
17+  STHrk DUP #04 SFT ORA DUP #02 SFT ORA DUP EQUk SFT ORA
18+  DUP [@ POP random ADD OVR AND DUP STHrk GTH ]? NIP LDZk
19   \\ Display card
20-  LIT2r =ranks STHk LITr 0f ANDr ADDr LDAr LITr 18 DEOr
21-  LIT2r =suits STH LITr 04 SFTr ADDr LDAr LITr 18 DEOr
22+  LIT2r =ranks STHk LITr 02 SFTr ADDr LDAr LITr 18 DEOr
23+  LIT2r =suits STH LITr 03 ANDr ADDr LDAr LITr 18 DEOr
24   \\ Exchange card
25-  LIT2r =deck ROTrk ADDr LDAr STH2 STAr POP2r
26+  LDZrk STH STZr
27   \\ Space
28   STHrk #0d DIVk MUL NEQ #16 MUL #0a ADD #18 DEO
29   \\ Next
30   STHrk [? #800f DEO BRK ]@
31-  ADDrk NIPr !begin
32+  ADDrk NIPr !loop
33 
34-@deck
35-  \_@
36-  00 01 02 03 04 05 06 07 08 09 0a 0b 0c
37-  10 11 12 13 14 15 16 17 18 19 1a 1b 1c
38-  20 21 22 23 24 25 26 27 28 29 2a 2b 2c
39-  30 31 32 33 34 35 36 37 38 39 3a 3b 3c
40-  \_@1-^ff00"&[@E]
41-
42-\_@
43 @suits "cdhs
44 @ranks "A23456789TJQK
45-\_@1-^ff00"&[@E]
46 
47 @input
48   [; #10 DEO2 BRK ]@