direction (vector) loops in eval_piece()

code is shorter and easier to maintain