diff --git a/battleship/migrations/0002_game_winner.py b/battleship/migrations/0002_game_winner.py new file mode 100644 index 0000000..3362d02 --- /dev/null +++ b/battleship/migrations/0002_game_winner.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.15 on 2022-08-23 20:58 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('battleship', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='game', + name='winner', + field=models.IntegerField(blank=True, null=True), + ), + ] diff --git a/battleship/models.py b/battleship/models.py index 8361aab..f618316 100644 --- a/battleship/models.py +++ b/battleship/models.py @@ -14,6 +14,7 @@ def generate_token(): class Game(models.Model): last_move_ts = models.DateTimeField(default=timezone.now) turn = models.IntegerField(default=0) + winner = models.IntegerField(null=True, blank=True) class Player(models.Model): diff --git a/battleship/views.py b/battleship/views.py index a6c019e..e72a4d0 100644 --- a/battleship/views.py +++ b/battleship/views.py @@ -89,9 +89,13 @@ def shoot(request): else: player2.field = player2.field[:pos] + new_symb + player2.field[pos + 1:] player2.save() + game_finish = 'o' not in player2.field + if game_finish: + player.game.winner = player.number + player.game.save() return JsonResponse({ 'shot': new_symb == 'x', - 'game_finish': 'o' not in player2.field + 'game_finish': game_finish })