diff --git a/battleship/utils.py b/battleship/utils.py index 6e4b5f3..6f76c1f 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 = set([(i, j)]) + ship = [(i, j)] queue = [(i, j)] killed = True while queue: @@ -116,14 +116,14 @@ def kill_field(field): elif cells[x - 1][y] == '+': if (x - 1, y) not in ship: queue.append((x - 1, y)) - ship.add((x - 1, y)) + ship.append((x - 1, y)) if x < 9: if cells[x + 1][y] == 'o': killed = False break elif cells[x + 1][y] == '+': if (x + 1, y) not in ship: - ship.add((x + 1, y)) + ship.append((x + 1, y)) queue.append((x + 1, y)) if y > 0: if cells[x][y - 1] == 'o': @@ -131,7 +131,7 @@ def kill_field(field): break elif cells[x][y - 1] == '+': if (x, y - 1) not in ship: - ship.add((x, y - 1)) + ship.append((x, y - 1)) queue.append((x, y - 1)) if y < 9: if cells[x][y + 1] == 'o': @@ -139,9 +139,11 @@ def kill_field(field): break elif cells[x][y + 1] == '+': if (x, y + 1) not in ship: - ship.add((x, y + 1)) + ship.append((x, y + 1)) queue.append((x, y + 1)) if killed: for x, y in ship: cells[x][y] = 'x' + for x, y in find_borders(ship[0][0], ship[0][1], len(ship), not bool(ship[-1][1] - ship[0][1])): + cells[x][y] = '.' return ''.join([''.join(arr) for arr in cells])