def start_game(self, snake_ids): """ Start a game given a tuple of snake id's. Returning a game id. """ if len(snake_ids) == 1: return snakes = [vars(s) for s in Snake.objects.filter(id__in=snake_ids)] game = Game(width=10, height=10, food=5, snakes=snakes) game.create() game.run() GameLeaderboard(game=game).save()
def create(self, *args, **kwargs): heat = kwargs.get("heat") previous_game = heat.latest_game skip = [w.snake.id for w in heat.winners] print(skip) if previous_game is not None: skip.append(previous_game.winner.snake.id) next_snakes = [s for s in previous_game.snakes if s.id not in skip] else: next_snakes = heat.snakes snake_ids = [{"id": snake.id} for snake in next_snakes] from apps.game.models import Game game = Game(width=20, height=20, food=10, snakes=snake_ids) game.create() game.save() return super(HeatGameManager, self).create(*args, **kwargs, game=game)
def submit(self): game = Game(**self.cleaned_data) game.create() return game.run()