From febc3c4912bf8fd624d5f626e19cfdf72714ccb5 Mon Sep 17 00:00:00 2001 From: lonkaars Date: Mon, 8 Mar 2021 21:07:02 +0100 Subject: class based -> function based + proper game sub + good game start --- api/game/random.py | 9 +++++++-- api/game/socket.py | 10 +++++----- 2 files changed, 12 insertions(+), 7 deletions(-) (limited to 'api') diff --git a/api/game/random.py b/api/game/random.py index 283190a..bc9518d 100644 --- a/api/game/random.py +++ b/api/game/random.py @@ -4,7 +4,7 @@ from randid import new_uuid import time import json import random -from game.socket import io, games, game +from game.socket import io, game, games, listeners from auth.login_token import token_login random_game = Blueprint('random', __name__) @@ -25,6 +25,8 @@ def index(): timestamp = int( time.time() * 1000 ) + game_started = False + if len(public_games) == 0: game_id = new_uuid("games") @@ -39,8 +41,11 @@ def index(): players = cursor.execute("select player_1_id, player_2_id from games where game_id = ?", [game_id]).fetchone() games[game_id] = game(game_id, io, players[0], players[1]) + games[game_id].send("gameStart", ""); + player_1 = False + game_started = True - return { "id": game_id, "player_1": player_1 }, 200 + return { "id": game_id, "player_1": player_1, "game_started": game_started }, 200 dynamic_route = ["/game", random_game] diff --git a/api/game/socket.py b/api/game/socket.py index 69e0144..78e7969 100644 --- a/api/game/socket.py +++ b/api/game/socket.py @@ -32,20 +32,20 @@ class game: self.send("fieldUpdate", { "field": self.board.board }) self.send("turnUpdate", { "player1": self.board.player_1 }) if len(self.board.win_positions) > 0 or self.board.board_full: - winner = self.board.board[int(self.board.win_positions[0][0])] - self.close("finished", "w" if winner == "2" else "l") + outcome = "d" + if not self.board.board_full: + winner = self.board.board[int(self.board.win_positions[0][0])] + outcome = "w" if winner == "2" else "l" self.send("finish", { "winPositions": self.board.win_positions, "boardFull": self.board.board_full }) + self.close("finished", outcome) now = int( time.time() * 1000 ) cursor.execute("update games set last_activity = ?, moves = moves || ? || ',' where game_id = ?", [now, column, self.game_id]) connection.commit() - if self.board.board_full: - self.close("finished", "d") - def resign(self): self.board.kill_voerbak() self.send("resign", "") -- cgit v1.2.3