import asyncio
import random
async def aposta(jogo, RESULTADOS, futuro):
print(f"Aposta no jogo {jogo["id"]} ({jogo["times"]}) registrada! Aguardando resultado...")
resultado = random.choice(RESULTADOS)
times = jogo["times"].split("vs")
tempo = random.randint(2, 8)
await asyncio.sleep(tempo)
if resultado == "Vitória do Time A":
time = times[0]
futuro.set_result(f"Aposta no jogo {jogo["id"]} definida: Vitória do {time} (após {tempo}s).")
elif resultado == "Vitória do Time B":
time = times[1]
futuro.set_result(f"Aposta no jogo {jogo["id"]} definida: Vitória do {time} (após {tempo}s).")
else:
futuro.set_result(f"Aposta no jogo {jogo["id"]} definida: Empate (após {tempo}s).")
async def main():
jogos = [
{"id": 1, "times": "Flamengo vs Palmeiras"},
{"id": 2, "times": "São Paulo vs Corinthians"},
{"id": 3, "times": "Grêmio vs Internacional"},
]
RESULTADOS = ["Vitória do Time A", "Vitória do Time B", "Empate"]
futuro1 = asyncio.Future()
futuro2 = asyncio.Future()
futuro3 = asyncio.Future()
asyncio.create_task(aposta(jogos[0], RESULTADOS, futuro1))
asyncio.create_task(aposta(jogos[1], RESULTADOS, futuro2))
asyncio.create_task(aposta(jogos[2], RESULTADOS, futuro3))
pendentes = {futuro1, futuro2, futuro3}
while pendentes:
done, pendentes = await asyncio.wait(pendentes, return_when=asyncio.FIRST_COMPLETED)
for future in done:
print(future.result())
print()
print("Todos os resultados foram revelados!")
asyncio.run(main())