This allows for more accuracy when it returns false. As of now, any move it makes returns true, even if that move ends up in a back and forth loop.