code |
random.seed()
movement = Hash(default_value=0)
winner = Variable()
propietario = Variable()
player_1 = Variable()
player_2 = Variable()
turn = Variable()
players = Variable()
@construct
def seed():
movement['movement']['rock'] = 1
movement['movement']['paper'] = 2
movement['movement']['scissor'] = 3
players.set([])
player_1.set(0)
player_2.set(0)
turn.set(0)
propietario.set(ctx.caller)
@export
def play(movimiento: int):
# ASSERTS
assert movimiento < 4, 'Rock: 1, Paper: 2, Scissor: 3'
for address in players.get():
assert address != ctx.caller, 'You have played'
turn += 1
if turn.get() == 3:
players.set([])
turn.set(1)
# REGISTER WALLETS
players.set(players.get() + [ctx.caller])
# REGISTER MOVEMENTS
if turn.get() == 1:
player_1.set(random.randint(1, 3))
if turn.get() == 2:
player_2.set(random.randint(1, 3))
determinarGanador()
def determinarGanador():
if turn.get() == 1:
return 'You have already made your move, wait for the next player'
if player_1.get() == player_2.get():
return 'Draw'
elif (player_1.get() == movement['movimientos']['piedra'] and player_2.get() == movement['movimientos']['tijera']) or (player_1.get() == movement['movimientos']['papel'] and player_2.get() == movement['movimientos']['piedra']) or (player_1.get() == movement['movimientos']['tijera'] and player_2.get() == movement['movimientos']['papel']):
winner.set(movement['movement']['playes'][0])
return winner.get()
else:
winner.set(movement['movement']['playes'][1])
return winner.get()
@export
def quienGano():
return winner.get()
@export
def Jugadores():
return movement['movement']['players'] |