Exemple #1
0
def get_next_challenge(current_challenge: Challenge, current_running_challenge: RunningChallenges):
    all_challenges = Challenge.objects.all()

    current_challenge_proba = current_challenge.solve_proba()

    print("Current challenge proba: {}".format(current_challenge_proba))

    if current_running_challenge.get_solve_duration_min() > 5:
        print("Players are too dumb")
        next_challenges = filter(lambda c: c.solve_proba() >= current_challenge_proba, all_challenges)
    else:
        print("Players are too smart")
        next_challenges = filter(lambda c: c.solve_proba() <= current_challenge_proba, all_challenges)

    next_challenges = [n for n in next_challenges if n.id != current_challenge.id]

    if not next_challenges:
        next_challenges=list(Challenge.objects.all())

        next_challenges = [n for n in next_challenges if n.id != current_challenge.id]

    next_challenge = random.choice(next_challenges)

    print("Next challenge is {}".format(next_challenge))

    return next_challenge