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 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'

View File

@ -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
})