generalize horizontal/vertical/diagonal checks to take player parameter