separate out single_shoot and mult_shoot from human.py to generic solvers