@Override
    public void updateAll(MiniGame game)
    {
        try
        {
            game.beginUsingData();            

            // MOVE THE PLAYER ACCORDING TO ITS PATH
            player.update(game);
            if (player.getCurrentIntersection() == level.destination)
            {
                endGameAsWin();
                return;
            }
            
            // WE GENERATE A RANDOM TARGET FOR THE POLICE TO MOVE TO
            for (Police p : level.getPolices())
            {
                if (!p.isMovingToTarget())
                    generatePolicePath(p);
                p.update(game);
            }
            
            for (Zombie z : level.getZombies())
            {
                z.update(game);
            }
            
            for (Bandit b : level.getBandits())
            {
                b.update(game);
            }
            
            checkForCollisions();
            checkForEnemyCollisions();
        } finally
        {
            game.endUsingData();
        }
    }