guard against empty valid moves
slight change to thinker interface, returns bool to indicate whether valid moves or not.