split up valid_move logic for human class, specs written for game, player and piece classes