SC CODE: /// dReam Tables Five Card Draw Poker v1.0
Function InitializePrivate() Uint64
10 STORE("owner:", SIGNER())
20 STORE("Deck Count:", 52)
30 STORE("Player:", 0)
40 STORE("New", 1)
50 shuffleDeck()
60 RETURN 0
End Function
Function clearTable() Uint64
10 DIM i as Uint64
20 LET i = LOAD("OBF")
30 DELETE(i*i*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3)
40 LET i = i +1
50 IF i < 1+LOAD("OBF")+52 THEN GOTO 30
60 RETURN 0
End Function
Function shuffleDeck() Uint64
5 IF EXISTS("New") THEN GOTO 30 ELSE GOTO 10
10 IF LOAD("owner:") == SIGNER() THEN GOTO 20
15 RETURN 1
20 clearTable()
30 STORE("Deck Count:", 52)
40 IF EXISTS("New") THEN GOTO 330
50 DELETE("End")
60 DELETE("Bet")
70 DELETE("Wager:")
80 DELETE("Raised:")
90 takeBackCards(1)
100 takeBackCards(2)
110 takeBackCards(3)
120 takeBackCards(4)
130 takeBackCards(5)
140 takeBackCards(6)
150 IF EXISTS("1SO") THEN GOTO 170
160 DELETE("1F")
170 IF EXISTS("2SO") THEN GOTO 190
180 DELETE("2F")
190 IF EXISTS("3SO") THEN GOTO 210
200 DELETE("3F")
210 IF EXISTS("4SO") THEN GOTO 230
220 DELETE("4F")
230 IF EXISTS("5SO") THEN GOTO 250
240 DELETE("5F")
250 IF EXISTS("0SO") THEN GOTO 270
260 DELETE("0F")
270 STORE("Player:", LOAD("Dealer:")+1)
280 STORE("Dealer:", LOAD("Dealer:")+1)
290 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 300 ELSE GOTO 320
300 STORE("Player:", 0)
310 STORE("Dealer:", 0)
320 IF EXISTS(ITOA(LOAD("Player:"))+"SO") THEN GOTO 270
330 STORE("Counter:", 1)
340 DELETE("New")
345 DELETE("W")
350 DELETE("Draw")
360 STORE("Pot:", 0)
370 STORE("IV", 1+ RANDOM(99999))
380 STORE("OBF", 1+ RANDOM(9999999))
390 RETURN 0
End Function
Function takeBackCards(playerNumber Uint64) Uint64
10 DELETE(("Player")+ITOA(playerNumber)+("card1"))
20 DELETE(("Player")+ITOA(playerNumber)+("card2"))
30 DELETE(("Player")+ITOA(playerNumber)+("card3"))
40 DELETE(("Player")+ITOA(playerNumber)+("card4"))
50 DELETE(("Player")+ITOA(playerNumber)+("card5"))
60 RETURN 0
End Function
Function Winner(whoWon String) Uint64
10 IF LOAD("owner:") == SIGNER() THEN GOTO 20 ELSE GOTO 60
20 SEND_DERO_TO_ADDRESS(LOAD("owner:"), (150*LOAD("Pot:")/10000)) /// 1.5% rake for owner
30 SEND_DERO_TO_ADDRESS(LOAD(whoWon), (9850*LOAD("Pot:")/10000)) /// winner takes 98.5% of pot
40 shuffleDeck()
50 RETURN 0
60 RETURN 1
End Function
Function SetTable(seats Uint64, ante Uint64, address String) Uint64
10 IF LOAD("owner:") == SIGNER() THEN GOTO 30
20 RETURN 1
30 IF seats == 1 THEN GOTO 160
35 IF EXISTS("Seats at Table:") THEN GOTO 20
40 STORE("Seats at Table:", seats)
50 IF LOAD("Seats at Table:") > 6 THEN GOTO 20
60 STORE("Ante:", ante)
70 STORE("Player:", LOAD("Player:")+1)
80 STORE(("Player")+ITOA(LOAD("Player:")), SIGNER())
90 STORE(("Player")+ITOA(LOAD("Player:"))+(" ID:"), SHA256(address))
100 STORE("Counter:", 1)
110 STORE("Pot:", 0)
120 STORE("IV", 1+ RANDOM(99999))
130 STORE("Dealer:", 0)
140 STORE("OBF", 1+ RANDOM(9999999))
150 RETURN 0
160 clearTable()
170 DELETE("Player1")
180 DELETE("Player2")
190 DELETE("Player3")
200 DELETE("Player4")
210 DELETE("Player5")
220 DELETE("Player6")
230 DELETE("Player1 ID:")
240 DELETE("Player2 ID:")
250 DELETE("Player3 ID:")
260 DELETE("Player4 ID:")
270 DELETE("Player4 ID:")
280 DELETE("Player5 ID:")
290 DELETE("Player6 ID:")
300 DELETE("Seats at Table:")
310 DELETE("Ante:")
320 DELETE("GameKey:")
330 STORE("Player:", 0)
340 DELETE("Full")
350 DELETE("IV")
360 DELETE("Open")
370 takeBackCards(1)
380 takeBackCards(2)
390 takeBackCards(3)
400 takeBackCards(4)
410 takeBackCards(5)
420 takeBackCards(6)
430 DELETE("0F")
440 DELETE("1F")
450 DELETE("2F")
460 DELETE("3F")
470 DELETE("4F")
480 DELETE("5F")
490 DELETE("0SO")
500 DELETE("1SO")
510 DELETE("2SO")
520 DELETE("3SO")
530 DELETE("4SO")
540 DELETE("5SO")
550 DELETE("Dealer:")
560 DELETE("OBF")
570 DELETE("W")
580 DELETE("Bet")
590 DELETE("Wager:")
600 DELETE("Raised:")
610 DELETE("Draw")
615 DELETE("End")
620 STORE("Pot:", 0)
630 STORE("Deck Count:", 52)
640 RETURN 0
End Function
Function PlayerEntry(address String) Uint64
10 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 150
20 IF EXISTS("Full") THEN GOTO 150
30 IF LOAD("owner:") == SIGNER() THEN GOTO 130
40 IF EXISTS("Open") THEN GOTO 160
50 IF LOAD("Player:") == 0 THEN GOTO 145
60 STORE("Player:", LOAD("Player:")+1)
70 STORE(("Player")+ITOA(LOAD("Player:")), SIGNER())
80 STORE(("Player")+ITOA(LOAD("Player:"))+(" ID:"), SHA256(address))
90 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 110
100 RETURN 0
110 STORE("Full", 1)
120 RETURN 0
130 DELETE("0SO")
135 STORE("Open", LOAD("Open")-1)
140 RETURN 0
145 IF EXISTS("Open") THEN GOTO 160
150 RETURN 1
160 MAPSTORE("checkSeats", 0)
170 MAPSTORE("checkSeats", MAPGET("checkSeats")+1)
180 IF MAPGET("checkSeats") > 7 THEN GOTO 150
190 IF EXISTS(("Player")+ITOA(MAPGET("checkSeats"))+(" ID:")) THEN GOTO 170
200 STORE(("Player")+ITOA(MAPGET("checkSeats")), SIGNER())
210 STORE(("Player")+ITOA(MAPGET("checkSeats"))+(" ID:"), SHA256(address))
220 STORE("Open", LOAD("Open")-1)
230 DELETE(ITOA(MAPGET("checkSeats")-1)+"SO")
240 IF LOAD("Open") == 0 THEN GOTO 260
250 RETURN 0
260 DELETE("Open")
270 STORE("Full", 1)
280 RETURN 0
End Function
Function PlayerLeave(id Uint64) Uint64
10 IF EXISTS("Bet") THEN GOTO 280
20 IF EXISTS("Draw") THEN GOTO 280
30 IF playerCheck() THEN GOTO 40 ELSE GOTO 280
40 STORE(ITOA(id-1)+"F", 1)
50 STORE(ITOA(id-1)+"SO", 1)
60 IF LOAD("owner:") == SIGNER() THEN GOTO 90
70 STORE(("Player")+ITOA(id), "Out")
80 DELETE(("Player")+ITOA(id)+(" ID:"))
90 DELETE("Full")
100 takeBackCards(id)
110 clock()
120 foldedLoop()
130 IF playerLoop() THEN GOTO 140 ELSE GOTO 160
140 STORE("Player:", 0)
150 foldedLoop()
160 IF counterLoop() THEN GOTO 170 ELSE GOTO 220
170 STORE("Counter:", 1)
180 STORE("Bet", 1)
220 IF EXISTS("Open") THEN GOTO 260
230 STORE("Open", 1)
250 RETURN 0
260 STORE("Open", LOAD("Open")+1)
270 RETURN 0
280 RETURN 1
End Function
Function clock() Uint64
10 STORE("Player:", LOAD("Player:")+1)
20 STORE("Counter:", LOAD("Counter:")+1)
30 IF EXISTS("W") THEN GOTO 40 ELSE GOTO 50
40 STORE("W", LOAD("W")+1)
50 RETURN 0
End Function
Function playerLoop() Uint64
10 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 30
20 RETURN 0
30 RETURN 1
End Function
Function counterLoop() Uint64
10 IF LOAD("Counter:") > LOAD("Seats at Table:") THEN GOTO 30
20 RETURN 0
30 RETURN 1
End Function
Function foldedLoop() Uint64
10 folded()
20 folded()
30 folded()
40 folded()
50 folded()
60 RETURN 0
End Function
Function folded() Uint64
10 IF LOAD("Player:") == 0 THEN GOTO 20 ELSE GOTO 50
20 IF EXISTS("0F") THEN GOTO 30 ELSE GOTO 40
30 clock()
40 RETURN 0
50 IF LOAD("Player:") == 1 THEN GOTO 60 ELSE GOTO 90
60 IF EXISTS("1F") THEN GOTO 70 ELSE GOTO 80
70 clock()
80 RETURN 0
90 IF LOAD("Player:") == 2 THEN GOTO 100 ELSE GOTO 130
100 IF EXISTS("2F") THEN GOTO 110 ELSE GOTO 120
110 clock()
120 RETURN 0
130 IF LOAD("Player:") == 3 THEN GOTO 140 ELSE GOTO 170
140 IF EXISTS("3F") THEN GOTO 150 ELSE GOTO 160
150 clock()
160 RETURN 0
170 IF LOAD("Player:") == 4 THEN GOTO 180 ELSE GOTO 210
180 IF EXISTS("4F") THEN GOTO 190 ELSE GOTO 200
190 clock()
200 RETURN 0
210 IF LOAD("Player:") == 5 THEN GOTO 220 ELSE GOTO 250
220 IF EXISTS("5F") THEN GOTO 230 ELSE GOTO 200
230 clock()
240 RETURN 0
250 RETURN 1
End Function
Function playerCheck() Uint64
5 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 6 ELSE GOTO 10
6 STORE("Player:", 0)
10 IF LOAD("Player:") == 0 THEN GOTO 20 ELSE GOTO 30
20 IF SIGNER() == LOAD("Player1") THEN GOTO 150 ELSE GOTO 200
30 IF LOAD("Player:") == 1 THEN GOTO 40 ELSE GOTO 50
40 IF SIGNER() == LOAD("Player2") THEN GOTO 150 ELSE GOTO 200
50 IF LOAD("Player:") == 2 THEN GOTO 60 ELSE GOTO 70
60 IF SIGNER() == LOAD("Player3") THEN GOTO 150 ELSE GOTO 200
70 IF LOAD("Player:") == 3 THEN GOTO 80 ELSE GOTO 90
80 IF SIGNER() == LOAD("Player4") THEN GOTO 150 ELSE GOTO 200
90 IF LOAD("Player:") == 4 THEN GOTO 100 ELSE GOTO 110
100 IF SIGNER() == LOAD("Player5") THEN GOTO 150 ELSE GOTO 200
110 IF LOAD("Player:") == 5 THEN GOTO 120 ELSE GOTO 200
120 IF SIGNER() == LOAD("Player6") THEN GOTO 150 ELSE GOTO 200
150 RETURN 1
200 RETURN 0
End Function
Function DealFiveCardHand() Uint64
10 DIM card1, card2, card3, card4, card5 as Uint64
20 IF EXISTS("Draw") THEN GOTO 400
30 IF EXISTS("Bet") THEN GOTO 400
40 IF playerCheck() THEN GOTO 50 ELSE GOTO 400
50 IF DEROVALUE() == LOAD("Ante:") THEN GOTO 60 ELSE GOTO 400
60 LET card1 = 1+LOAD("OBF")+ RANDOM(52)
70 IF EXISTS(card1*card1*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 60
80 STORE(card1*card1*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, card1/LOAD("IV"))
90 LET card2 = 1+LOAD("OBF")+ RANDOM(52)
100 IF EXISTS(card2*card2*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 90
110 STORE(card2*card2*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, card2/LOAD("IV"))
120 LET card3 = 1+LOAD("OBF")+ RANDOM(52)
130 IF EXISTS(card3*card3*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 120
140 STORE(card3*card3*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, card3/LOAD("IV"))
150 LET card4 = 1+LOAD("OBF")+ RANDOM(52)
160 IF EXISTS(card4*card4*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 150
170 STORE(card4*card4*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, card4/LOAD("IV"))
180 LET card5 = 1+LOAD("OBF")+ RANDOM(52)
190 IF EXISTS(card5*card5*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 180
200 STORE(card5*card5*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, card5/LOAD("IV"))
210 clock()
220 STORE("Player"+ITOA(LOAD("Player:"))+"card1", SHA256(ITOA(LOAD("IV"))+ITOA(card1-LOAD("OBF"))))
230 STORE("Player"+ITOA(LOAD("Player:"))+"card2", SHA256(ITOA(LOAD("IV"))+ITOA(card2-LOAD("OBF"))))
240 STORE("Player"+ITOA(LOAD("Player:"))+"card3", SHA256(ITOA(LOAD("IV"))+ITOA(card3-LOAD("OBF"))))
250 STORE("Player"+ITOA(LOAD("Player:"))+"card4", SHA256(ITOA(LOAD("IV"))+ITOA(card4-LOAD("OBF"))))
260 STORE("Player"+ITOA(LOAD("Player:"))+"card5", SHA256(ITOA(LOAD("IV"))+ITOA(card5-LOAD("OBF"))))
270 foldedLoop()
280 STORE("Deck Count:", LOAD("Deck Count:")-5)
290 STORE("Pot:", LOAD("Pot:")+DEROVALUE())
300 IF playerLoop() THEN GOTO 330
310 IF counterLoop() THEN GOTO 370
320 RETURN 0
330 STORE("Player:", 0)
340 foldedLoop()
350 IF counterLoop() THEN GOTO 370
360 RETURN 0
370 STORE("Bet", 1)
380 STORE("Counter:", 1)
390 RETURN 0
400 RETURN 1
End Function
Function singleCard() Uint64
5 DIM drawCardOne as Uint64
10 LET drawCardOne = 1+LOAD("OBF")+ RANDOM(52)
20 IF EXISTS(drawCardOne*drawCardOne*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 10
30 MAPSTORE("drawCard1", SHA256(ITOA(LOAD("IV"))+ITOA(drawCardOne-LOAD("OBF"))))
40 STORE(drawCardOne*drawCardOne*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, drawCardOne/LOAD("IV"))
50 clock()
70 STORE("Deck Count:", LOAD("Deck Count:")-1)
90 RETURN 0
End Function
Function doubleCard() Uint64
5 DIM drawCardOne, drawCardTwo as Uint64
10 LET drawCardOne = 1+LOAD("OBF")+ RANDOM(52)
20 IF EXISTS(drawCardOne*drawCardOne*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 10
30 MAPSTORE("drawCard1", SHA256(ITOA(LOAD("IV"))+ITOA(drawCardOne-LOAD("OBF"))))
40 STORE(drawCardOne*drawCardOne*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, drawCardOne/LOAD("IV"))
50 LET drawCardTwo = 1+LOAD("OBF")+ RANDOM(52)
60 IF EXISTS(drawCardTwo*drawCardTwo*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 50
70 MAPSTORE("drawCard2", SHA256(ITOA(LOAD("IV"))+ITOA(drawCardTwo-LOAD("OBF"))))
80 STORE(drawCardTwo*drawCardTwo*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, drawCardTwo/LOAD("IV"))
90 clock()
120 STORE("Deck Count:", LOAD("Deck Count:")-2)
150 RETURN 0
End Function
Function Bet() Uint64
5 IF playerCheck() THEN GOTO 10 ELSE GOTO 500
10 IF EXISTS("Wager:") THEN GOTO 50
20 IF DEROVALUE() == 0 THEN GOTO 100
30 IF DEROVALUE() >= LOAD("Ante:") THEN GOTO 40 ELSE GOTO 500
40 STORE("Wager:", DEROVALUE())
41 STORE("Pot:", LOAD("Pot:")+DEROVALUE())
43 clock()
44 STORE("W", 1)
45 foldedLoop()
47 IF playerLoop() THEN GOTO 200
48 IF counterLoop() THEN GOTO 470
49 RETURN 0
50 IF DEROVALUE() == LOAD("Wager:") THEN GOTO 55 ELSE GOTO 73 /// Call
55 clock()
57 foldedLoop()
62 STORE("Pot:", LOAD("Pot:")+DEROVALUE())
69 IF playerLoop() THEN GOTO 200
70 IF counterLoop() THEN GOTO 470
71 IF LOAD("W") >= LOAD("Seats at Table:") THEN GOTO 485
72 RETURN 0
73 IF EXISTS("Raised:") THEN GOTO 74 ELSE GOTO 89
74 IF DEROVALUE() == LOAD("Raised:") THEN GOTO 75 ELSE GOTO 89 /// Call raise
75 STORE("Pot:", LOAD("Pot:")+DEROVALUE())
76 clock()
77 foldedLoop()
78 IF playerLoop() THEN GOTO 200
79 IF counterLoop() THEN GOTO 470
80 IF LOAD("W") >= LOAD("Seats at Table:") THEN GOTO 485
81 RETURN 0
89 IF EXISTS("Raised:") THEN GOTO 118
90 IF DEROVALUE() > LOAD("Wager:") THEN GOTO 91 ELSE GOTO 120 /// Raise
91 clock()
92 STORE("W", 1)
93 foldedLoop()
94 STORE("Raised:", DEROVALUE()-LOAD("Wager:"))
95 STORE("Pot:", LOAD("Pot:")+DEROVALUE())
96 STORE("Wager:", DEROVALUE())
97 IF playerLoop() THEN GOTO 200
98 IF counterLoop() THEN GOTO 470
99 RETURN 0
100 clock()
105 foldedLoop()
110 IF playerLoop() THEN GOTO 200 /// Check
111 IF counterLoop() THEN GOTO 470
115 RETURN 0
118 IF DEROVALUE() == 0 THEN GOTO 120 ELSE GOTO 500
120 STORE(ITOA(LOAD("Player:"))+"F", 1)
125 clock()
126 takeBackCards(LOAD("Player:"))
127 foldedLoop()
130 IF playerLoop() THEN GOTO 200 /// Fold
131 IF counterLoop() THEN GOTO 470
132 IF LOAD("W") >= LOAD("Seats at Table:") THEN GOTO 485
140 RETURN 0
200 STORE("Player:", 0)
201 foldedLoop()
210 IF counterLoop() THEN GOTO 470
211 IF EXISTS("W") THEN GOTO 215 ELSE GOTO 220
215 IF LOAD("W") >= LOAD("Seats at Table:") THEN GOTO 485
220 RETURN 0
470 IF LOAD("Bet") == 2 THEN GOTO 481
480 STORE("Draw", 1)
481 STORE("Counter:", 1)
483 IF EXISTS("W") THEN GOTO 484 ELSE GOTO 485
484 IF LOAD("W") >= LOAD("Seats at Table:") THEN GOTO 485 ELSE GOTO 220
485 IF LOAD("Bet") == 2 THEN GOTO 486 ELSE GOTO 488
486 STORE("End", 1)
487 DELETE("Draw")
488 DELETE("Bet")
489 STORE("Player:", LOAD("Dealer:"))
490 IF EXISTS(ITOA(LOAD("Dealer:"))+"F") THEN GOTO 491 ELSE GOTO 495
491 STORE("Player:", LOAD("Player:")+1)
492 IF EXISTS(ITOA(LOAD("Player:"))+"F") THEN GOTO 491
493 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 494 ELSE GOTO 495
494 STORE("Player:", 0)
495 STORE("Counter:", 1)
496 DELETE("Wager:")
497 DELETE("W")
498 DELETE("Raised:")
499 RETURN 0
500 RETURN 1
End Function
Function DrawCards(whichCard Uint64) Uint64
4 IF EXISTS("Wager:") THEN GOTO 600
5 IF EXISTS("Draw") THEN GOTO 10 ELSE GOTO 600
10 IF playerCheck() THEN GOTO 20 ELSE GOTO 600
20 IF whichCard == 1 THEN GOTO 30 ELSE GOTO 50
30 singleCard()
40 STORE(("Player")+ITOA(LOAD("Player:"))+"card1", MAPGET("drawCard1"))
41 foldedLoop()
45 IF playerLoop() THEN GOTO 400
46 IF counterLoop() THEN GOTO 403
47 RETURN 0
50 IF whichCard == 2 THEN GOTO 60 ELSE GOTO 80
60 singleCard()
65 STORE(("Player")+ITOA(LOAD("Player:"))+"card2", MAPGET("drawCard1"))
66 foldedLoop()
70 IF playerLoop() THEN GOTO 400
71 IF counterLoop() THEN GOTO 403
75 RETURN 0
80 IF whichCard == 3 THEN GOTO 90 ELSE GOTO 110
90 singleCard()
95 STORE(("Player")+ITOA(LOAD("Player:"))+"card3", MAPGET("drawCard1"))
96 foldedLoop()
100 IF playerLoop() THEN GOTO 400
101 IF counterLoop() THEN GOTO 403
105 RETURN 0
110 IF whichCard == 4 THEN GOTO 120 ELSE GOTO 140
120 singleCard()
125 STORE(("Player")+ITOA(LOAD("Player:"))+"card4", MAPGET("drawCard1"))
126 foldedLoop()
130 IF playerLoop() THEN GOTO 400
131 IF counterLoop() THEN GOTO 403
135 RETURN 0
140 IF whichCard == 5 THEN GOTO 150 ELSE GOTO 170
150 singleCard()
155 STORE(("Player")+ITOA(LOAD("Player:"))+"card5", MAPGET("drawCard1"))
156 foldedLoop()
160 IF playerLoop() THEN GOTO 400
161 IF counterLoop() THEN GOTO 403
165 RETURN 0
170 IF whichCard == 6 THEN GOTO 171 ELSE GOTO 190
171 doubleCard()
180 STORE(("Player")+ITOA(LOAD("Player:"))+"card1", MAPGET("drawCard1"))
181 STORE(("Player")+ITOA(LOAD("Player:"))+"card2", MAPGET("drawCard2"))
182 foldedLoop()
183 IF playerLoop() THEN GOTO 400
184 IF counterLoop() THEN GOTO 403
185 RETURN 0
190 IF whichCard == 7 THEN GOTO 191 ELSE GOTO 210
191 doubleCard()
200 STORE(("Player")+ITOA(LOAD("Player:"))+"card1", MAPGET("drawCard1"))
201 STORE(("Player")+ITOA(LOAD("Player:"))+"card3", MAPGET("drawCard2"))
202 foldedLoop()
203 IF playerLoop() THEN GOTO 400
204 IF counterLoop() THEN GOTO 403
205 RETURN 0
210 IF whichCard == 8 THEN GOTO 211 ELSE GOTO 230
211 doubleCard()
220 STORE(("Player")+ITOA(LOAD("Player:"))+"card1", MAPGET("drawCard1"))
221 STORE(("Player")+ITOA(LOAD("Player:"))+"card4", MAPGET("drawCard2"))
222 foldedLoop()
223 IF playerLoop() THEN GOTO 400
224 IF counterLoop() THEN GOTO 403
225 RETURN 0
230 IF whichCard == 9 THEN GOTO 231 ELSE GOTO 250
231 doubleCard()
240 STORE(("Player")+ITOA(LOAD("Player:"))+"card1", MAPGET("drawCard1"))
241 STORE(("Player")+ITOA(LOAD("Player:"))+"card5", MAPGET("drawCard2"))
242 foldedLoop()
243 IF playerLoop() THEN GOTO 400
244 IF counterLoop() THEN GOTO 403
245 RETURN 0
250 IF whichCard == 10 THEN GOTO 251 ELSE GOTO 270
251 doubleCard()
260 STORE(("Player")+ITOA(LOAD("Player:"))+"card2", MAPGET("drawCard1"))
261 STORE(("Player")+ITOA(LOAD("Player:"))+"card3", MAPGET("drawCard2"))
262 foldedLoop()
263 IF playerLoop() THEN GOTO 400
264 IF counterLoop() THEN GOTO 403
265 RETURN 0
270 IF whichCard == 11 THEN GOTO 271 ELSE GOTO 290
271 doubleCard()
280 STORE(("Player")+ITOA(LOAD("Player:"))+"card2", MAPGET("drawCard1"))
281 STORE(("Player")+ITOA(LOAD("Player:"))+"card4", MAPGET("drawCard2"))
282 foldedLoop()
283 IF playerLoop() THEN GOTO 400
284 IF counterLoop() THEN GOTO 403
285 RETURN 0
290 IF whichCard == 12 THEN GOTO 291 ELSE GOTO 310
291 doubleCard()
300 STORE(("Player")+ITOA(LOAD("Player:"))+"card2", MAPGET("drawCard1"))
301 STORE(("Player")+ITOA(LOAD("Player:"))+"card5", MAPGET("drawCard2"))
302 foldedLoop()
303 IF playerLoop() THEN GOTO 400
304 IF counterLoop() THEN GOTO 403
305 RETURN 0
310 IF whichCard == 13 THEN GOTO 311 ELSE GOTO 350
311 doubleCard()
320 STORE(("Player")+ITOA(LOAD("Player:"))+"card3", MAPGET("drawCard1"))
321 STORE(("Player")+ITOA(LOAD("Player:"))+"card4", MAPGET("drawCard2"))
322 foldedLoop()
323 IF playerLoop() THEN GOTO 400
324 IF counterLoop() THEN GOTO 403
325 RETURN 0
350 IF whichCard == 14 THEN GOTO 351 ELSE GOTO 370
351 doubleCard()
360 STORE(("Player")+ITOA(LOAD("Player:"))+"card3", MAPGET("drawCard1"))
361 STORE(("Player")+ITOA(LOAD("Player:"))+"card5", MAPGET("drawCard2"))
362 foldedLoop()
363 IF playerLoop() THEN GOTO 400
364 IF counterLoop() THEN GOTO 403
365 RETURN 0
370 IF whichCard == 15 THEN GOTO 371 ELSE GOTO 450
371 doubleCard()
380 STORE(("Player")+ITOA(LOAD("Player:"))+"card4", MAPGET("drawCard1"))
381 STORE(("Player")+ITOA(LOAD("Player:"))+"card5", MAPGET("drawCard2"))
382 foldedLoop()
383 IF playerLoop() THEN GOTO 400
384 IF counterLoop() THEN GOTO 403
385 RETURN 0
400 STORE("Player:", 0)
401 foldedLoop()
402 IF counterLoop() THEN GOTO 403 ELSE GOTO 410
403 DELETE("Draw")
404 STORE("Bet", 2)
405 STORE("Counter:", 1)
410 RETURN 0
450 clock()
451 foldedLoop()
452 IF playerLoop() THEN GOTO 400
453 IF counterLoop() THEN GOTO 403 ELSE GOTO 410
600 RETURN 1
End Function
Function CleanTable(amount Uint64) Uint64
10 IF LOAD("owner:") == SIGNER() THEN GOTO 30
20 RETURN 1
30 SEND_DERO_TO_ADDRESS(SIGNER(),amount)
33 shuffleDeck()
40 RETURN 0
End Function
|
SC Arguments: [Name:SC_ACTION Type:uint64 Value:'1' Name:SC_CODE Type:string Value:'/// dReam Tables Five Card Draw Poker v1.0
Function InitializePrivate() Uint64
10 STORE("owner:", SIGNER())
20 STORE("Deck Count:", 52)
30 STORE("Player:", 0)
40 STORE("New", 1)
50 shuffleDeck()
60 RETURN 0
End Function
Function clearTable() Uint64
10 DIM i as Uint64
20 LET i = LOAD("OBF")
30 DELETE(i*i*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3)
40 LET i = i +1
50 IF i < 1+LOAD("OBF")+52 THEN GOTO 30
60 RETURN 0
End Function
Function shuffleDeck() Uint64
5 IF EXISTS("New") THEN GOTO 30 ELSE GOTO 10
10 IF LOAD("owner:") == SIGNER() THEN GOTO 20
15 RETURN 1
20 clearTable()
30 STORE("Deck Count:", 52)
40 IF EXISTS("New") THEN GOTO 330
50 DELETE("End")
60 DELETE("Bet")
70 DELETE("Wager:")
80 DELETE("Raised:")
90 takeBackCards(1)
100 takeBackCards(2)
110 takeBackCards(3)
120 takeBackCards(4)
130 takeBackCards(5)
140 takeBackCards(6)
150 IF EXISTS("1SO") THEN GOTO 170
160 DELETE("1F")
170 IF EXISTS("2SO") THEN GOTO 190
180 DELETE("2F")
190 IF EXISTS("3SO") THEN GOTO 210
200 DELETE("3F")
210 IF EXISTS("4SO") THEN GOTO 230
220 DELETE("4F")
230 IF EXISTS("5SO") THEN GOTO 250
240 DELETE("5F")
250 IF EXISTS("0SO") THEN GOTO 270
260 DELETE("0F")
270 STORE("Player:", LOAD("Dealer:")+1)
280 STORE("Dealer:", LOAD("Dealer:")+1)
290 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 300 ELSE GOTO 320
300 STORE("Player:", 0)
310 STORE("Dealer:", 0)
320 IF EXISTS(ITOA(LOAD("Player:"))+"SO") THEN GOTO 270
330 STORE("Counter:", 1)
340 DELETE("New")
345 DELETE("W")
350 DELETE("Draw")
360 STORE("Pot:", 0)
370 STORE("IV", 1+ RANDOM(99999))
380 STORE("OBF", 1+ RANDOM(9999999))
390 RETURN 0
End Function
Function takeBackCards(playerNumber Uint64) Uint64
10 DELETE(("Player")+ITOA(playerNumber)+("card1"))
20 DELETE(("Player")+ITOA(playerNumber)+("card2"))
30 DELETE(("Player")+ITOA(playerNumber)+("card3"))
40 DELETE(("Player")+ITOA(playerNumber)+("card4"))
50 DELETE(("Player")+ITOA(playerNumber)+("card5"))
60 RETURN 0
End Function
Function Winner(whoWon String) Uint64
10 IF LOAD("owner:") == SIGNER() THEN GOTO 20 ELSE GOTO 60
20 SEND_DERO_TO_ADDRESS(LOAD("owner:"), (150*LOAD("Pot:")/10000)) /// 1.5% rake for owner
30 SEND_DERO_TO_ADDRESS(LOAD(whoWon), (9850*LOAD("Pot:")/10000)) /// winner takes 98.5% of pot
40 shuffleDeck()
50 RETURN 0
60 RETURN 1
End Function
Function SetTable(seats Uint64, ante Uint64, address String) Uint64
10 IF LOAD("owner:") == SIGNER() THEN GOTO 30
20 RETURN 1
30 IF seats == 1 THEN GOTO 160
35 IF EXISTS("Seats at Table:") THEN GOTO 20
40 STORE("Seats at Table:", seats)
50 IF LOAD("Seats at Table:") > 6 THEN GOTO 20
60 STORE("Ante:", ante)
70 STORE("Player:", LOAD("Player:")+1)
80 STORE(("Player")+ITOA(LOAD("Player:")), SIGNER())
90 STORE(("Player")+ITOA(LOAD("Player:"))+(" ID:"), SHA256(address))
100 STORE("Counter:", 1)
110 STORE("Pot:", 0)
120 STORE("IV", 1+ RANDOM(99999))
130 STORE("Dealer:", 0)
140 STORE("OBF", 1+ RANDOM(9999999))
150 RETURN 0
160 clearTable()
170 DELETE("Player1")
180 DELETE("Player2")
190 DELETE("Player3")
200 DELETE("Player4")
210 DELETE("Player5")
220 DELETE("Player6")
230 DELETE("Player1 ID:")
240 DELETE("Player2 ID:")
250 DELETE("Player3 ID:")
260 DELETE("Player4 ID:")
270 DELETE("Player4 ID:")
280 DELETE("Player5 ID:")
290 DELETE("Player6 ID:")
300 DELETE("Seats at Table:")
310 DELETE("Ante:")
320 DELETE("GameKey:")
330 STORE("Player:", 0)
340 DELETE("Full")
350 DELETE("IV")
360 DELETE("Open")
370 takeBackCards(1)
380 takeBackCards(2)
390 takeBackCards(3)
400 takeBackCards(4)
410 takeBackCards(5)
420 takeBackCards(6)
430 DELETE("0F")
440 DELETE("1F")
450 DELETE("2F")
460 DELETE("3F")
470 DELETE("4F")
480 DELETE("5F")
490 DELETE("0SO")
500 DELETE("1SO")
510 DELETE("2SO")
520 DELETE("3SO")
530 DELETE("4SO")
540 DELETE("5SO")
550 DELETE("Dealer:")
560 DELETE("OBF")
570 DELETE("W")
580 DELETE("Bet")
590 DELETE("Wager:")
600 DELETE("Raised:")
610 DELETE("Draw")
615 DELETE("End")
620 STORE("Pot:", 0)
630 STORE("Deck Count:", 52)
640 RETURN 0
End Function
Function PlayerEntry(address String) Uint64
10 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 150
20 IF EXISTS("Full") THEN GOTO 150
30 IF LOAD("owner:") == SIGNER() THEN GOTO 130
40 IF EXISTS("Open") THEN GOTO 160
50 IF LOAD("Player:") == 0 THEN GOTO 145
60 STORE("Player:", LOAD("Player:")+1)
70 STORE(("Player")+ITOA(LOAD("Player:")), SIGNER())
80 STORE(("Player")+ITOA(LOAD("Player:"))+(" ID:"), SHA256(address))
90 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 110
100 RETURN 0
110 STORE("Full", 1)
120 RETURN 0
130 DELETE("0SO")
135 STORE("Open", LOAD("Open")-1)
140 RETURN 0
145 IF EXISTS("Open") THEN GOTO 160
150 RETURN 1
160 MAPSTORE("checkSeats", 0)
170 MAPSTORE("checkSeats", MAPGET("checkSeats")+1)
180 IF MAPGET("checkSeats") > 7 THEN GOTO 150
190 IF EXISTS(("Player")+ITOA(MAPGET("checkSeats"))+(" ID:")) THEN GOTO 170
200 STORE(("Player")+ITOA(MAPGET("checkSeats")), SIGNER())
210 STORE(("Player")+ITOA(MAPGET("checkSeats"))+(" ID:"), SHA256(address))
220 STORE("Open", LOAD("Open")-1)
230 DELETE(ITOA(MAPGET("checkSeats")-1)+"SO")
240 IF LOAD("Open") == 0 THEN GOTO 260
250 RETURN 0
260 DELETE("Open")
270 STORE("Full", 1)
280 RETURN 0
End Function
Function PlayerLeave(id Uint64) Uint64
10 IF EXISTS("Bet") THEN GOTO 280
20 IF EXISTS("Draw") THEN GOTO 280
30 IF playerCheck() THEN GOTO 40 ELSE GOTO 280
40 STORE(ITOA(id-1)+"F", 1)
50 STORE(ITOA(id-1)+"SO", 1)
60 IF LOAD("owner:") == SIGNER() THEN GOTO 90
70 STORE(("Player")+ITOA(id), "Out")
80 DELETE(("Player")+ITOA(id)+(" ID:"))
90 DELETE("Full")
100 takeBackCards(id)
110 clock()
120 foldedLoop()
130 IF playerLoop() THEN GOTO 140 ELSE GOTO 160
140 STORE("Player:", 0)
150 foldedLoop()
160 IF counterLoop() THEN GOTO 170 ELSE GOTO 220
170 STORE("Counter:", 1)
180 STORE("Bet", 1)
220 IF EXISTS("Open") THEN GOTO 260
230 STORE("Open", 1)
250 RETURN 0
260 STORE("Open", LOAD("Open")+1)
270 RETURN 0
280 RETURN 1
End Function
Function clock() Uint64
10 STORE("Player:", LOAD("Player:")+1)
20 STORE("Counter:", LOAD("Counter:")+1)
30 IF EXISTS("W") THEN GOTO 40 ELSE GOTO 50
40 STORE("W", LOAD("W")+1)
50 RETURN 0
End Function
Function playerLoop() Uint64
10 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 30
20 RETURN 0
30 RETURN 1
End Function
Function counterLoop() Uint64
10 IF LOAD("Counter:") > LOAD("Seats at Table:") THEN GOTO 30
20 RETURN 0
30 RETURN 1
End Function
Function foldedLoop() Uint64
10 folded()
20 folded()
30 folded()
40 folded()
50 folded()
60 RETURN 0
End Function
Function folded() Uint64
10 IF LOAD("Player:") == 0 THEN GOTO 20 ELSE GOTO 50
20 IF EXISTS("0F") THEN GOTO 30 ELSE GOTO 40
30 clock()
40 RETURN 0
50 IF LOAD("Player:") == 1 THEN GOTO 60 ELSE GOTO 90
60 IF EXISTS("1F") THEN GOTO 70 ELSE GOTO 80
70 clock()
80 RETURN 0
90 IF LOAD("Player:") == 2 THEN GOTO 100 ELSE GOTO 130
100 IF EXISTS("2F") THEN GOTO 110 ELSE GOTO 120
110 clock()
120 RETURN 0
130 IF LOAD("Player:") == 3 THEN GOTO 140 ELSE GOTO 170
140 IF EXISTS("3F") THEN GOTO 150 ELSE GOTO 160
150 clock()
160 RETURN 0
170 IF LOAD("Player:") == 4 THEN GOTO 180 ELSE GOTO 210
180 IF EXISTS("4F") THEN GOTO 190 ELSE GOTO 200
190 clock()
200 RETURN 0
210 IF LOAD("Player:") == 5 THEN GOTO 220 ELSE GOTO 250
220 IF EXISTS("5F") THEN GOTO 230 ELSE GOTO 200
230 clock()
240 RETURN 0
250 RETURN 1
End Function
Function playerCheck() Uint64
5 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 6 ELSE GOTO 10
6 STORE("Player:", 0)
10 IF LOAD("Player:") == 0 THEN GOTO 20 ELSE GOTO 30
20 IF SIGNER() == LOAD("Player1") THEN GOTO 150 ELSE GOTO 200
30 IF LOAD("Player:") == 1 THEN GOTO 40 ELSE GOTO 50
40 IF SIGNER() == LOAD("Player2") THEN GOTO 150 ELSE GOTO 200
50 IF LOAD("Player:") == 2 THEN GOTO 60 ELSE GOTO 70
60 IF SIGNER() == LOAD("Player3") THEN GOTO 150 ELSE GOTO 200
70 IF LOAD("Player:") == 3 THEN GOTO 80 ELSE GOTO 90
80 IF SIGNER() == LOAD("Player4") THEN GOTO 150 ELSE GOTO 200
90 IF LOAD("Player:") == 4 THEN GOTO 100 ELSE GOTO 110
100 IF SIGNER() == LOAD("Player5") THEN GOTO 150 ELSE GOTO 200
110 IF LOAD("Player:") == 5 THEN GOTO 120 ELSE GOTO 200
120 IF SIGNER() == LOAD("Player6") THEN GOTO 150 ELSE GOTO 200
150 RETURN 1
200 RETURN 0
End Function
Function DealFiveCardHand() Uint64
10 DIM card1, card2, card3, card4, card5 as Uint64
20 IF EXISTS("Draw") THEN GOTO 400
30 IF EXISTS("Bet") THEN GOTO 400
40 IF playerCheck() THEN GOTO 50 ELSE GOTO 400
50 IF DEROVALUE() == LOAD("Ante:") THEN GOTO 60 ELSE GOTO 400
60 LET card1 = 1+LOAD("OBF")+ RANDOM(52)
70 IF EXISTS(card1*card1*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 60
80 STORE(card1*card1*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, card1/LOAD("IV"))
90 LET card2 = 1+LOAD("OBF")+ RANDOM(52)
100 IF EXISTS(card2*card2*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 90
110 STORE(card2*card2*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, card2/LOAD("IV"))
120 LET card3 = 1+LOAD("OBF")+ RANDOM(52)
130 IF EXISTS(card3*card3*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 120
140 STORE(card3*card3*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, card3/LOAD("IV"))
150 LET card4 = 1+LOAD("OBF")+ RANDOM(52)
160 IF EXISTS(card4*card4*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 150
170 STORE(card4*card4*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, card4/LOAD("IV"))
180 LET card5 = 1+LOAD("OBF")+ RANDOM(52)
190 IF EXISTS(card5*card5*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 180
200 STORE(card5*card5*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, card5/LOAD("IV"))
210 clock()
220 STORE("Player"+ITOA(LOAD("Player:"))+"card1", SHA256(ITOA(LOAD("IV"))+ITOA(card1-LOAD("OBF"))))
230 STORE("Player"+ITOA(LOAD("Player:"))+"card2", SHA256(ITOA(LOAD("IV"))+ITOA(card2-LOAD("OBF"))))
240 STORE("Player"+ITOA(LOAD("Player:"))+"card3", SHA256(ITOA(LOAD("IV"))+ITOA(card3-LOAD("OBF"))))
250 STORE("Player"+ITOA(LOAD("Player:"))+"card4", SHA256(ITOA(LOAD("IV"))+ITOA(card4-LOAD("OBF"))))
260 STORE("Player"+ITOA(LOAD("Player:"))+"card5", SHA256(ITOA(LOAD("IV"))+ITOA(card5-LOAD("OBF"))))
270 foldedLoop()
280 STORE("Deck Count:", LOAD("Deck Count:")-5)
290 STORE("Pot:", LOAD("Pot:")+DEROVALUE())
300 IF playerLoop() THEN GOTO 330
310 IF counterLoop() THEN GOTO 370
320 RETURN 0
330 STORE("Player:", 0)
340 foldedLoop()
350 IF counterLoop() THEN GOTO 370
360 RETURN 0
370 STORE("Bet", 1)
380 STORE("Counter:", 1)
390 RETURN 0
400 RETURN 1
End Function
Function singleCard() Uint64
5 DIM drawCardOne as Uint64
10 LET drawCardOne = 1+LOAD("OBF")+ RANDOM(52)
20 IF EXISTS(drawCardOne*drawCardOne*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 10
30 MAPSTORE("drawCard1", SHA256(ITOA(LOAD("IV"))+ITOA(drawCardOne-LOAD("OBF"))))
40 STORE(drawCardOne*drawCardOne*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, drawCardOne/LOAD("IV"))
50 clock()
70 STORE("Deck Count:", LOAD("Deck Count:")-1)
90 RETURN 0
End Function
Function doubleCard() Uint64
5 DIM drawCardOne, drawCardTwo as Uint64
10 LET drawCardOne = 1+LOAD("OBF")+ RANDOM(52)
20 IF EXISTS(drawCardOne*drawCardOne*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 10
30 MAPSTORE("drawCard1", SHA256(ITOA(LOAD("IV"))+ITOA(drawCardOne-LOAD("OBF"))))
40 STORE(drawCardOne*drawCardOne*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, drawCardOne/LOAD("IV"))
50 LET drawCardTwo = 1+LOAD("OBF")+ RANDOM(52)
60 IF EXISTS(drawCardTwo*drawCardTwo*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3) THEN GOTO 50
70 MAPSTORE("drawCard2", SHA256(ITOA(LOAD("IV"))+ITOA(drawCardTwo-LOAD("OBF"))))
80 STORE(drawCardTwo*drawCardTwo*LOAD("IV")/LOAD("OBF")+LOAD("IV")/3, drawCardTwo/LOAD("IV"))
90 clock()
120 STORE("Deck Count:", LOAD("Deck Count:")-2)
150 RETURN 0
End Function
Function Bet() Uint64
5 IF playerCheck() THEN GOTO 10 ELSE GOTO 500
10 IF EXISTS("Wager:") THEN GOTO 50
20 IF DEROVALUE() == 0 THEN GOTO 100
30 IF DEROVALUE() >= LOAD("Ante:") THEN GOTO 40 ELSE GOTO 500
40 STORE("Wager:", DEROVALUE())
41 STORE("Pot:", LOAD("Pot:")+DEROVALUE())
43 clock()
44 STORE("W", 1)
45 foldedLoop()
47 IF playerLoop() THEN GOTO 200
48 IF counterLoop() THEN GOTO 470
49 RETURN 0
50 IF DEROVALUE() == LOAD("Wager:") THEN GOTO 55 ELSE GOTO 73 /// Call
55 clock()
57 foldedLoop()
62 STORE("Pot:", LOAD("Pot:")+DEROVALUE())
69 IF playerLoop() THEN GOTO 200
70 IF counterLoop() THEN GOTO 470
71 IF LOAD("W") >= LOAD("Seats at Table:") THEN GOTO 485
72 RETURN 0
73 IF EXISTS("Raised:") THEN GOTO 74 ELSE GOTO 89
74 IF DEROVALUE() == LOAD("Raised:") THEN GOTO 75 ELSE GOTO 89 /// Call raise
75 STORE("Pot:", LOAD("Pot:")+DEROVALUE())
76 clock()
77 foldedLoop()
78 IF playerLoop() THEN GOTO 200
79 IF counterLoop() THEN GOTO 470
80 IF LOAD("W") >= LOAD("Seats at Table:") THEN GOTO 485
81 RETURN 0
89 IF EXISTS("Raised:") THEN GOTO 118
90 IF DEROVALUE() > LOAD("Wager:") THEN GOTO 91 ELSE GOTO 120 /// Raise
91 clock()
92 STORE("W", 1)
93 foldedLoop()
94 STORE("Raised:", DEROVALUE()-LOAD("Wager:"))
95 STORE("Pot:", LOAD("Pot:")+DEROVALUE())
96 STORE("Wager:", DEROVALUE())
97 IF playerLoop() THEN GOTO 200
98 IF counterLoop() THEN GOTO 470
99 RETURN 0
100 clock()
105 foldedLoop()
110 IF playerLoop() THEN GOTO 200 /// Check
111 IF counterLoop() THEN GOTO 470
115 RETURN 0
118 IF DEROVALUE() == 0 THEN GOTO 120 ELSE GOTO 500
120 STORE(ITOA(LOAD("Player:"))+"F", 1)
125 clock()
126 takeBackCards(LOAD("Player:"))
127 foldedLoop()
130 IF playerLoop() THEN GOTO 200 /// Fold
131 IF counterLoop() THEN GOTO 470
132 IF LOAD("W") >= LOAD("Seats at Table:") THEN GOTO 485
140 RETURN 0
200 STORE("Player:", 0)
201 foldedLoop()
210 IF counterLoop() THEN GOTO 470
211 IF EXISTS("W") THEN GOTO 215 ELSE GOTO 220
215 IF LOAD("W") >= LOAD("Seats at Table:") THEN GOTO 485
220 RETURN 0
470 IF LOAD("Bet") == 2 THEN GOTO 481
480 STORE("Draw", 1)
481 STORE("Counter:", 1)
483 IF EXISTS("W") THEN GOTO 484 ELSE GOTO 485
484 IF LOAD("W") >= LOAD("Seats at Table:") THEN GOTO 485 ELSE GOTO 220
485 IF LOAD("Bet") == 2 THEN GOTO 486 ELSE GOTO 488
486 STORE("End", 1)
487 DELETE("Draw")
488 DELETE("Bet")
489 STORE("Player:", LOAD("Dealer:"))
490 IF EXISTS(ITOA(LOAD("Dealer:"))+"F") THEN GOTO 491 ELSE GOTO 495
491 STORE("Player:", LOAD("Player:")+1)
492 IF EXISTS(ITOA(LOAD("Player:"))+"F") THEN GOTO 491
493 IF LOAD("Player:") == LOAD("Seats at Table:") THEN GOTO 494 ELSE GOTO 495
494 STORE("Player:", 0)
495 STORE("Counter:", 1)
496 DELETE("Wager:")
497 DELETE("W")
498 DELETE("Raised:")
499 RETURN 0
500 RETURN 1
End Function
Function DrawCards(whichCard Uint64) Uint64
4 IF EXISTS("Wager:") THEN GOTO 600
5 IF EXISTS("Draw") THEN GOTO 10 ELSE GOTO 600
10 IF playerCheck() THEN GOTO 20 ELSE GOTO 600
20 IF whichCard == 1 THEN GOTO 30 ELSE GOTO 50
30 singleCard()
40 STORE(("Player")+ITOA(LOAD("Player:"))+"card1", MAPGET("drawCard1"))
41 foldedLoop()
45 IF playerLoop() THEN GOTO 400
46 IF counterLoop() THEN GOTO 403
47 RETURN 0
50 IF whichCard == 2 THEN GOTO 60 ELSE GOTO 80
60 singleCard()
65 STORE(("Player")+ITOA(LOAD("Player:"))+"card2", MAPGET("drawCard1"))
66 foldedLoop()
70 IF playerLoop() THEN GOTO 400
71 IF counterLoop() THEN GOTO 403
75 RETURN 0
80 IF whichCard == 3 THEN GOTO 90 ELSE GOTO 110
90 singleCard()
95 STORE(("Player")+ITOA(LOAD("Player:"))+"card3", MAPGET("drawCard1"))
96 foldedLoop()
100 IF playerLoop() THEN GOTO 400
101 IF counterLoop() THEN GOTO 403
105 RETURN 0
110 IF whichCard == 4 THEN GOTO 120 ELSE GOTO 140
120 singleCard()
125 STORE(("Player")+ITOA(LOAD("Player:"))+"card4", MAPGET("drawCard1"))
126 foldedLoop()
130 IF playerLoop() THEN GOTO 400
131 IF counterLoop() THEN GOTO 403
135 RETURN 0
140 IF whichCard == 5 THEN GOTO 150 ELSE GOTO 170
150 singleCard()
155 STORE(("Player")+ITOA(LOAD("Player:"))+"card5", MAPGET("drawCard1"))
156 foldedLoop()
160 IF playerLoop() THEN GOTO 400
161 IF counterLoop() THEN GOTO 403
165 RETURN 0
170 IF whichCard == 6 THEN GOTO 171 ELSE GOTO 190
171 doubleCard()
180 STORE(("Player")+ITOA(LOAD("Player:"))+"card1", MAPGET("drawCard1"))
181 STORE(("Player")+ITOA(LOAD("Player:"))+"card2", MAPGET("drawCard2"))
182 foldedLoop()
183 IF playerLoop() THEN GOTO 400
184 IF counterLoop() THEN GOTO 403
185 RETURN 0
190 IF whichCard == 7 THEN GOTO 191 ELSE GOTO 210
191 doubleCard()
200 STORE(("Player")+ITOA(LOAD("Player:"))+"card1", MAPGET("drawCard1"))
201 STORE(("Player")+ITOA(LOAD("Player:"))+"card3", MAPGET("drawCard2"))
202 foldedLoop()
203 IF playerLoop() THEN GOTO 400
204 IF counterLoop() THEN GOTO 403
205 RETURN 0
210 IF whichCard == 8 THEN GOTO 211 ELSE GOTO 230
211 doubleCard()
220 STORE(("Player")+ITOA(LOAD("Player:"))+"card1", MAPGET("drawCard1"))
221 STORE(("Player")+ITOA(LOAD("Player:"))+"card4", MAPGET("drawCard2"))
222 foldedLoop()
223 IF playerLoop() THEN GOTO 400
224 IF counterLoop() THEN GOTO 403
225 RETURN 0
230 IF whichCard == 9 THEN GOTO 231 ELSE GOTO 250
231 doubleCard()
240 STORE(("Player")+ITOA(LOAD("Player:"))+"card1", MAPGET("drawCard1"))
241 STORE(("Player")+ITOA(LOAD("Player:"))+"card5", MAPGET("drawCard2"))
242 foldedLoop()
243 IF playerLoop() THEN GOTO 400
244 IF counterLoop() THEN GOTO 403
245 RETURN 0
250 IF whichCard == 10 THEN GOTO 251 ELSE GOTO 270
251 doubleCard()
260 STORE(("Player")+ITOA(LOAD("Player:"))+"card2", MAPGET("drawCard1"))
261 STORE(("Player")+ITOA(LOAD("Player:"))+"card3", MAPGET("drawCard2"))
262 foldedLoop()
263 IF playerLoop() THEN GOTO 400
264 IF counterLoop() THEN GOTO 403
265 RETURN 0
270 IF whichCard == 11 THEN GOTO 271 ELSE GOTO 290
271 doubleCard()
280 STORE(("Player")+ITOA(LOAD("Player:"))+"card2", MAPGET("drawCard1"))
281 STORE(("Player")+ITOA(LOAD("Player:"))+"card4", MAPGET("drawCard2"))
282 foldedLoop()
283 IF playerLoop() THEN GOTO 400
284 IF counterLoop() THEN GOTO 403
285 RETURN 0
290 IF whichCard == 12 THEN GOTO 291 ELSE GOTO 310
291 doubleCard()
300 STORE(("Player")+ITOA(LOAD("Player:"))+"card2", MAPGET("drawCard1"))
301 STORE(("Player")+ITOA(LOAD("Player:"))+"card5", MAPGET("drawCard2"))
302 foldedLoop()
303 IF playerLoop() THEN GOTO 400
304 IF counterLoop() THEN GOTO 403
305 RETURN 0
310 IF whichCard == 13 THEN GOTO 311 ELSE GOTO 350
311 doubleCard()
320 STORE(("Player")+ITOA(LOAD("Player:"))+"card3", MAPGET("drawCard1"))
321 STORE(("Player")+ITOA(LOAD("Player:"))+"card4", MAPGET("drawCard2"))
322 foldedLoop()
323 IF playerLoop() THEN GOTO 400
324 IF counterLoop() THEN GOTO 403
325 RETURN 0
350 IF whichCard == 14 THEN GOTO 351 ELSE GOTO 370
351 doubleCard()
360 STORE(("Player")+ITOA(LOAD("Player:"))+"card3", MAPGET("drawCard1"))
361 STORE(("Player")+ITOA(LOAD("Player:"))+"card5", MAPGET("drawCard2"))
362 foldedLoop()
363 IF playerLoop() THEN GOTO 400
364 IF counterLoop() THEN GOTO 403
365 RETURN 0
370 IF whichCard == 15 THEN GOTO 371 ELSE GOTO 450
371 doubleCard()
380 STORE(("Player")+ITOA(LOAD("Player:"))+"card4", MAPGET("drawCard1"))
381 STORE(("Player")+ITOA(LOAD("Player:"))+"card5", MAPGET("drawCard2"))
382 foldedLoop()
383 IF playerLoop() THEN GOTO 400
384 IF counterLoop() THEN GOTO 403
385 RETURN 0
400 STORE("Player:", 0)
401 foldedLoop()
402 IF counterLoop() THEN GOTO 403 ELSE GOTO 410
403 DELETE("Draw")
404 STORE("Bet", 2)
405 STORE("Counter:", 1)
410 RETURN 0
450 clock()
451 foldedLoop()
452 IF playerLoop() THEN GOTO 400
453 IF counterLoop() THEN GOTO 403 ELSE GOTO 410
600 RETURN 1
End Function
Function CleanTable(amount Uint64) Uint64
10 IF LOAD("owner:") == SIGNER() THEN GOTO 30
20 RETURN 1
30 SEND_DERO_TO_ADDRESS(SIGNER(),amount)
33 shuffleDeck()
40 RETURN 0
End Function
'] |