Contract con_game_1vs1_1
Creator | 1351e423715020237f509f5492f4999f7349eed53ce1c1ad4d4679aebf9e8af0 |
Creation Hash | 6b91849c95528bca9c5d882d47f2a533e4321139e19c0c6c6e0359160f7bf215 |
Created On | 46 days ago - 8/13/2023, 12:05:33 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'] = 0
16
players.set([])
17
player_1.set(0)
18
player_2.set(0)
19
20
@export
21
def play(movimiento: int):
22
# ASSERTS
23
assert movimiento < 4, 'Rock: 1, Paper: 2, Scissor: 3'
24
for address in players.get():
25
assert address != ctx.caller, 'You have played'
26
turn['turn'] += 1
27
if turn['turn'] == 3:
28
players.set([])
29
turn['turn'] = 1
30
31
32
# REGISTER WALLETS
33
players.set(players.get() + [ctx.caller])
34
35
# REGISTER MOVEMENTS
36
if turn['turn'] == 1:
37
player_1.set(random.randint(1, 3))
38
if turn['turn'] == 2:
39
player_2.set(random.randint(1, 3))
40
determinarGanador()
41
42
def determinarGanador():
43
if turn['turn'] == 1:
44
return 'You have already made your move, wait for the next player'
45
if player_1.get() == player_2.get():
46
return 'Draw'
47
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']):
48
winner.set(movement['playes'][0])
49
return winner.get()
50
else:
51
winner.set(movement['playes'][1])
52
return winner.get()
53
54
@export
55
def quienGano():
56
return winner.get()
57
58
59
@export
60
def Jugadores():
61
return movement['players']
Byte Code
e30000000000000000000000000500000040000000739e00000065006a0183000100650264006401640264038d035a03650264006401640464038d035a0465056401640564068d025a0665056401640764068d025a0765056401640864068d025a0865056401640964068d025a09640a640b84005a0a650b64018301650c640c9c01640d640e840483015a0d640f641084005a0e650b6401830164116412840083015a0f650b6401830164136414840083015a10641553002916e900000000da0f636f6e5f67616d655f317673315f31da086d6f76656d656e742903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da047475726eda0677696e6e6572290272050000007206000000da08706c617965725f31da08706c617965725f32da07706c617965727363000000000000000000000000030000004300000073420000006401740064023c006403740064043c006405740064063c006407740164083c0074026a0367008301010074046a0364078301010074056a036407830101006400530029094ee901000000da06706965647261e902000000da05706170656ce903000000da0674696a657261720100000072070000002906da0a5f5f6d6f76656d656e74da065f5f7475726eda095f5f706c6179657273da03736574da0a5f5f706c617965725f31da0a5f5f706c617965725f32a90072180000007218000000da00da045f5f5f5f0a000000730e000000000108010801080108010a010a01721a0000002901da0a6d6f76696d69656e746f63010000000000000002000000050000004300000073be0000007c0064016b0073107400640283018201785074016a02830044005d447d017c0174036a046b037330740064038301820174056404050019006405370003003c0074056404190064066b02721a74016a066700830101006405740564043c00711a570074016a0674016a02830074036a04670117008301010074056404190064056b02729674076a0674086a096405640683028301010074056404190064076b0272b4740a6a0674086a0964056406830283010100740b830001006400530029084ee9040000007a1d526f636b3a20312c2050617065723a20322c2053636973736f723a20337a0f596f75206861766520706c617965647207000000720c0000007210000000720e000000290cda0e417373657274696f6e4572726f727214000000da03676574da03637478da0663616c6c6572721300000072150000007216000000da0672616e646f6dda0772616e64696e747217000000da135f5f64657465726d696e617247616e61646f722902721b000000da0761646472657373721800000072180000007219000000da04706c617914000000731a000000000210010e01120110010c010a010c0116010c0112010c011201722500000063000000000000000000000000030000004300000073bc00000074006401190064026b0272106403530074016a02830074036a0283006b0272246404530074016a0283007404640519006b02724474036a0283007404640619006b02738474016a0283007404640719006b02726474036a0283007404640519006b02738474016a0283007404640619006b02729e74036a0283007404640719006b02729e74056a06740464081900640919008301010074056a028300530074056a06740464081900640219008301010074056a028300530064005300290a4e7207000000720c0000007a39596f75206861766520616c7265616479206d61646520796f7572206d6f76652c207761697420666f7220746865206e65787420706c61796572da0444726177720d0000007211000000720f000000da06706c617965737201000000290772130000007216000000721e00000072170000007212000000da085f5f77696e6e657272150000007218000000721800000072180000007219000000722300000025000000731800000000010c0104011001040116011a0116011a011201080212017223000000630000000000000000000000000100000043000000730800000074006a018300530029014e29027228000000721e0000007218000000721800000072180000007219000000da09717569656e47616e6f350000007302000000000272290000006300000000000000000000000002000000430000007308000000740064011900530029024e720b000000290172120000007218000000721800000072180000007219000000da094a756761646f7265733a00000073020000000002722a0000004e29117221000000da0473656564da044861736872120000007213000000da085661726961626c657228000000721600000072170000007214000000721a000000da085f5f6578706f7274da03696e74722500000072230000007229000000722a0000007218000000721800000072180000007219000000da083c6d6f64756c653e01000000731800000008010e010e010c010c010c010c03080a0601101008101005