code |
movement = Hash()
winner = Variable()
propietario = Variable()
jugador_1 = Variable()
jugador_2 = Variable()
turn = Variable()
@construct
def seed():
movement['movement']['rock'] = 1
movement['movement']['paper'] = 2
movement['movement']['scissor'] = 3
movement['movement']['players'] = []
jugador_1.set = 0
jugador_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 movement['movement']['playes']:
assert address != ctx.caller, 'You have played'
turn.set += 1
if turn.get == 3:
movement['movement']['players'] = []
turn.set = 1
# REGISTER WALLETS
movement['movement']['players'] = movement['movement']['players'] + [ctx.caller]
# REGISTER MOVEMENTS
if turn.get() == 1:
jugador_1.set = random.randint(1, 3)
if turn.get() == 2:
jugador_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 jugador_1.get == jugador_2.get:
return 'Empate'
elif (jugador_1.get == movement['movimientos']['piedra'] and jugador_2.get == movement['movimientos']['tijera']) or (jugador_1.get == movement['movimientos']['papel'] and jugador_2.get == movement['movimientos']['piedra']) or (jugador_1.get == movement['movimientos']['tijera'] and jugador_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'] |