import asyncio
import random
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"]
async def processar_aposta(jogo, future):
tempo_espera = random.randint(2, 8)
await asyncio.sleep(tempo_espera)
resultado = random.choice(RESULTADOS)
future.set_result((jogo, resultado, tempo_espera))
async def revelar_resultado(future):
jogo, resultado, tempo = await future
time_a, time_b = jogo["times"].split(" vs ")
if resultado == "Vitória do Time A":
resultado_formatado = f"Vitória do {time_a}"
elif resultado == "Vitória do Time B":
resultado_formatado = f"Vitória do {time_b}"
else:
resultado_formatado = "Empate"
print(f"Aposta no jogo {jogo['id']} definida: {resultado_formatado} (após {tempo}s).")
async def main():
futures = []
for jogo in jogos:
future = asyncio.Future()
futures.append(future)
print(f"Aposta no jogo {jogo['id']} ({jogo['times']}) registrada! Aguardando resultado...")
asyncio.create_task(processar_aposta(jogo, future))
await asyncio.gather(*(revelar_resultado(f) for f in futures))
print("\nTodos os resultados foram revelados!")
asyncio.run(main())