added board, random start and exit, and available moves algorithm