Attempt at Bishop

I worked on changing the bishop but I have  a few questions. Do I want
to use valid_moves() to create a list of valid moves and then check to
see if the move in question is on that list? And how should I call
valid_moves() so that it returns values until it can't anymore?