This commit is contained in:
Administrator 2022-08-28 19:05:46 +03:00
parent a475f6c68f
commit 81dba6991b
2 changed files with 15 additions and 11 deletions

View File

@ -103,7 +103,7 @@ def kill_field(field):
for i in range(10): for i in range(10):
for j in range(10): for j in range(10):
if cells[i][j] == '+': if cells[i][j] == '+':
ship = [(i, j)] ship = set([(i, j)])
queue = [(i, j)] queue = [(i, j)]
killed = True killed = True
while queue: while queue:
@ -114,28 +114,32 @@ def kill_field(field):
killed = False killed = False
break break
elif cells[x - 1][y] == '+': elif cells[x - 1][y] == '+':
ship.append((x - 1, y)) if (x - 1, y) not in ship:
queue.append((x - 1, y)) queue.append((x - 1, y))
ship.add((x - 1, y))
if x < 9: if x < 9:
if cells[x + 1][y] == 'o': if cells[x + 1][y] == 'o':
killed = False killed = False
break break
elif cells[x + 1][y] == '+': elif cells[x + 1][y] == '+':
ship.append((x + 1, y)) if (x + 1, y) not in ship:
ship.add((x + 1, y))
queue.append((x + 1, y)) queue.append((x + 1, y))
if y > 0: if y > 0:
if cells[x][y - 1] == 'o': if cells[x][y - 1] == 'o':
killed = False killed = False
break break
elif cells[x][y - 1] == '+': elif cells[x][y - 1] == '+':
ship.append((x, y - 1)) if (x, y - 1) not in ship:
ship.add((x, y - 1))
queue.append((x, y - 1)) queue.append((x, y - 1))
if y < 9: if y < 9:
if cells[x][y + 1] == 'o': if cells[x][y + 1] == 'o':
killed = False killed = False
break break
elif cells[x][y + 1] == '+': elif cells[x][y + 1] == '+':
ship.append((x, y + 1)) if (x, y + 1) not in ship:
ship.add((x, y + 1))
queue.append((x, y + 1)) queue.append((x, y + 1))
if killed: if killed:
for x, y in ship: for x, y in ship:

View File

@ -114,7 +114,7 @@ def shoot(request):
player.game.winner = player.number player.game.winner = player.number
player.game.save() player.game.save()
return JsonResponse({ return JsonResponse({
'shot': new_symb == 'x', 'shot': new_symb == '+',
'game_finish': game_finish 'game_finish': game_finish
}) })