: total-weight ( adr -- n ) recursive dup size @ 20 < if ball-weight @ else dup left-mobile total-weight swap right-mobile total-weight + then ;