add Tournament creation and tournament game start

This commit is contained in:
2024-10-13 22:03:06 +02:00
parent d6fdd6fbc7
commit 8f993caefb
10 changed files with 205 additions and 71 deletions

View File

@ -0,0 +1,58 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# TournamentGame.py :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <marvin@42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/10/12 22:49:00 by tomoron #+# #+# #
# Updated: 2024/10/13 22:01:59 by tomoron ### ########.fr #
# #
# **************************************************************************** #
import asyncio
from .Game import Game
class TournamentGame:
def __init__(self, left, right):
self.game = None
self.winner = None
self.right = right
self.left = left
asyncio.create_task(self.loop())
def startGame(self):
l = None
r = None
if(isinstance(self.left,TournamentGame)):
self.game = Game(self.left.winner, self.right.winner, True)
l = self.left.winner.socket
r = self.right.winner.socket
else:
self.game = Game(self.left, self.right, True)
l = self.left.socket
r = self.right.socket
l.sync_send("tournament", {
"action":4,
"id": r.id,
"username":r.username
})
r.sync_send("tournament", {
"action":4,
"id": l.id,
"username": l.username
})
async def loop(self):
while self.winner == None:
if(self.game == None):
if(isinstance(self.left, TournamentGame)):
if(self.left.winner != None and self.right.winner != None):
await asyncio.sleep(3)
self.startGame()
else:
await asyncio.sleep(3)
self.startGame()
else:
if(self.game.winner != None):
self.winner = self.game.pWinner
await asyncio.sleep(1)