Speed up creation of valids array
Calculate next valid move on the fly rather than storing them