From 81dba6991b524f96599647663805dfbc04d3fad1 Mon Sep 17 00:00:00 2001 From: Administrator Date: Sun, 28 Aug 2022 19:05:46 +0300 Subject: [PATCH] kill --- battleship/utils.py | 22 +++++++++++++--------- battleship/views.py | 4 ++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/battleship/utils.py b/battleship/utils.py index 8932d18..6e4b5f3 100644 --- a/battleship/utils.py +++ b/battleship/utils.py @@ -103,7 +103,7 @@ def kill_field(field): for i in range(10): for j in range(10): if cells[i][j] == '+': - ship = [(i, j)] + ship = set([(i, j)]) queue = [(i, j)] killed = True while queue: @@ -114,29 +114,33 @@ def kill_field(field): killed = False break elif cells[x - 1][y] == '+': - ship.append((x - 1, y)) - queue.append((x - 1, y)) + if (x - 1, y) not in ship: + queue.append((x - 1, y)) + ship.add((x - 1, y)) if x < 9: if cells[x + 1][y] == 'o': killed = False break elif cells[x + 1][y] == '+': - ship.append((x + 1, y)) - queue.append((x + 1, y)) + if (x + 1, y) not in ship: + ship.add((x + 1, y)) + queue.append((x + 1, y)) if y > 0: if cells[x][y - 1] == 'o': killed = False break elif cells[x][y - 1] == '+': - ship.append((x, y - 1)) - queue.append((x, y - 1)) + if (x, y - 1) not in ship: + ship.add((x, y - 1)) + queue.append((x, y - 1)) if y < 9: if cells[x][y + 1] == 'o': killed = False break elif cells[x][y + 1] == '+': - ship.append((x, y + 1)) - queue.append((x, y + 1)) + if (x, y + 1) not in ship: + ship.add((x, y + 1)) + queue.append((x, y + 1)) if killed: for x, y in ship: cells[x][y] = 'x' diff --git a/battleship/views.py b/battleship/views.py index ed27013..9cbc943 100644 --- a/battleship/views.py +++ b/battleship/views.py @@ -98,7 +98,7 @@ def shoot(request): new_symb = '+' else: new_symb = '.' - player.game.turn = (1 - player.game.turn) + player.game.turn = (1 - player.game.turn) player.game.last_move_ts = timezone.now() player.game.save() if pos == 0: @@ -114,7 +114,7 @@ def shoot(request): player.game.winner = player.number player.game.save() return JsonResponse({ - 'shot': new_symb == 'x', + 'shot': new_symb == '+', 'game_finish': game_finish })