Contract con_game_1vs1_3
Creator | 1351e423715020237f509f5492f4999f7349eed53ce1c1ad4d4679aebf9e8af0 |
Creation Hash | 365452dc1ae6608ed9c14e4f9e069db6d7af6d7fc8e5ef5ecedc6d44f30636a7 |
Created On | 46 days ago - 8/13/2023, 12:26:28 AM UTC+0 |
Contract Code
1
2
random.seed()
3
movement = Hash(default_value=0)
4
turn = Hash(default_value=0)
5
winner = Variable()
6
player_1 = Variable()
7
player_2 = Variable()
8
players = Variable()
9
10
@construct
11
def seed():
12
movement['piedra'] = 1
13
movement['papel'] = 2
14
movement['tijera'] = 3
15
turn['turn'] = 1
16
players.set([])
17
player_1.set(0)
18
player_2.set(0)
19
20
@export
21
def play():
22
# ASSERTS
23
for address in players.get():
24
assert address != ctx.caller, 'You have played'
25
turn['turn'] += 1
26
27
28
# REGISTER WALLETS
29
players.set(players.get() + [ctx.caller])
30
31
# REGISTER MOVEMENTS
32
if turn['turn'] == 1:
33
player_1.set(random.randint(1, 3))
34
if turn['turn'] == 2:
35
player_2.set(random.randint(1, 3))
36
return determineWinner()
37
38
39
def value_empty():
40
players.set([])
41
turn['turn'] = 1
42
43
def determineWinner():
44
if turn['turn'] == 1:
45
return 'You have already made your move, wait for the next player'
46
if player_1.get() == player_2.get():
47
value_empty()
48
return 'Draw'
49
elif (player_1.get() == movement['piedra'] and player_2.get() == movement['tijera']) or (player_1.get() == movement['papel'] and player_2.get() == movement['piedra']) or (player_1.get() == movement['tijera'] and player_2.get() == movement['papel']):
50
winner.set('Gano jugador 1')
51
value_empty()
52
return winner.get()
53
else:
54
winner.set('Gano jugador 1')
55
value_empty()
56
return winner.get()
57
58
@export
59
def WhoWin():
60
return winner.get()
61
62
63
@export
64
def Players():
65
return movement['players']
Byte Code
e3000000000000000000000000050000004000000073a000000065006a0183000100650264006401640264038d035a03650264006401640464038d035a0465056401640564068d025a0665056401640764068d025a0765056401640864068d025a0865056401640964068d025a09640a640b84005a0a650b64018301640c640d840083015a0c640e640f84005a0d6410641184005a0e650b6401830164126413840083015a0f650b6401830164146415840083015a10641653002917e900000000da0f636f6e5f67616d655f317673315f33da086d6f76656d656e742903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da047475726eda0677696e6e6572290272050000007206000000da08706c617965725f31da08706c617965725f32da07706c617965727363000000000000000000000000030000004300000073420000006401740064023c006403740064043c006405740064063c006401740164073c0074026a0367008301010074046a0364088301010074056a036408830101006400530029094ee901000000da06706965647261e902000000da05706170656ce903000000da0674696a657261720700000072010000002906da0a5f5f6d6f76656d656e74da065f5f7475726eda095f5f706c6179657273da03736574da0a5f5f706c617965725f31da0a5f5f706c617965725f32a90072180000007218000000da00da045f5f5f5f0a000000730e000000000108010801080108010a010a01721a000000630000000000000000010000000500000043000000738c000000783274006a01830044005d267d007c0074026a036b037320740464018301820174056402050019006403370003003c00710a570074006a0674006a01830074026a03670117008301010074056402190064036b02726874076a0674086a096403640483028301010074056402190064056b027286740a6a0674086a0964036404830283010100740b8300530029064e7a0f596f75206861766520706c617965647207000000720c0000007210000000720e000000290c7214000000da03676574da03637478da0663616c6c6572da0e417373657274696f6e4572726f72721300000072150000007216000000da0672616e646f6dda0772616e64696e747217000000da115f5f64657465726d696e6557696e6e65722901da0761646472657373721800000072180000007219000000da04706c617914000000731200000000020e011201140116010c0112010c0112017223000000630000000000000000000000000300000043000000731600000074006a016700830101006401740264023c006400530029034e720c000000720700000029037214000000721500000072130000007218000000721800000072180000007219000000da0d5f5f76616c75655f656d70747921000000730400000000010a01722400000063000000000000000000000000030000004300000073be00000074006401190064026b0272106403530074016a02830074036a0283006b02722a7404830001006404530074016a0283007405640519006b02724a74036a0283007405640619006b02738a74016a0283007405640719006b02726a74036a0283007405640519006b02738a74016a0283007405640619006b0272a274036a0283007405640719006b0272a274066a0764088301010074048300010074066a028300530074066a0764088301010074048300010074066a02830053006400530029094e7207000000720c0000007a39596f75206861766520616c7265616479206d61646520796f7572206d6f76652c207761697420666f7220746865206e65787420706c61796572da0444726177720d0000007211000000720f0000007a0e47616e6f206a756761646f722031290872130000007216000000721b000000721700000072240000007212000000da085f5f77696e6e657272150000007218000000721800000072180000007219000000722100000026000000731e00000000010c01040110010601040116011a0116011a010a01060108020a0106017221000000630000000000000000000000000100000043000000730800000074006a018300530029014e29027226000000721b0000007218000000721800000072180000007219000000da0657686f57696e390000007302000000000272270000006300000000000000000000000002000000430000007308000000740064011900530029024e720b000000290172120000007218000000721800000072180000007219000000da07506c61796572733e0000007302000000000272280000004e2911721f000000da0473656564da044861736872120000007213000000da085661726961626c657226000000721600000072170000007214000000721a000000da085f5f6578706f7274722300000072240000007221000000722700000072280000007218000000721800000072180000007219000000da083c6d6f64756c653e01000000731800000008010e010e010c010c010c010c03080a100d080508131005