-
Notifications
You must be signed in to change notification settings - Fork 2
XP Calculation
This page will server as an initial brainstorm for calculating XP for the logging of an exercise. This is a work in progress.
An exercise record should contain a few things to tell us how to "score" it. Firstly, it should have a "type" to indicate if it is a static hold (plank, carries, etc), a high rep exercise (basic pushups, mobility type work), or a strength exercise [note: perhaps the type should match specialization instead]. Additionally we should have some sort of multiplier based on perceived difficulty.
A user's record should contain their current bodyweight. We will also need to know any bonuses they have based on user specialization
We will also need to find all previous occurrences of an exercise, to calculate current maximums a given user has.
- User has matching specialization (1.05 multiplier)
- Squat base multiplier is 1.0 (1.00 multiplier)
- User has previously recorded a 1x180lb squat - new PR (200/180 = 1.11 multiplier?)
- User weighs 150 - 200 / 150 = 1.33
BASEXP = int(100 * 1.05 * 1.00 * 1.11)
XP(strength) = BASEXP * (weight / BW) * REPS = 155
- User has the wrong specialization as pushups are endurance? (1.00 multiplier)
- Pushup base multiplier is 0.1 (0.10 multiplier)
- User has previously recorded 30 pushups - new PR (50/30 = 1.67 multiplier)
BASEXP = int(100 * 1.00 * 0.10 * 1.67)
XP(endurance) = BASEXP * REPS/5 = 167