Skip to content
phrakture edited this page Dec 30, 2011 · 2 revisions

This page will server as an initial brainstorm for calculating XP for the logging of an exercise. This is a work in progress.

Exercise records

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.

User records

A user's record should contain their current bodyweight. We will also need to know any bonuses they have based on user specialization

Historical records

We will also need to find all previous occurrences of an exercise, to calculate current maximums a given user has.

Examples

User with strength specialization does a 1x200lb squat at 150lb BW

  • 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 with aptitude specialization does 50 pushups

  • 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

Clone this wiki locally