public override LOGameState CreateFirstState(GameInitData gameInitData) { if (gameInitData.dimensions != null) { return(new LOGameState(gameInitData.dimensions)); } return(null); }
public LOGameState Create(LOGameBoard gameBoard, GameInitData initData) { LOGameState loGameState = gameBoard.CreateFirstState(initData); do { for (int i = 0; i < initData.randomShuffleFactor; ++i) { loGameState = gameBoard.MakeRandomMove(loGameState); } } while (loGameState.isWon); // if randomization ends up solving the game, re-randomize return(loGameState); }