private void GameBoardInit() { PrepareGameBoard(GAME_BOARD_SIZE); // prepare empty gameboard GameBoard.gameBoardGrid = GetGameBoardGrid(); // make reference on gameboard grid in GameBoard class switch (LocalDataStorage.GetGameState()) { // continue game case GameBoard.GameState.InProgress: case GameBoard.GameState.Paused: GameBoard.AddTiles(LocalDataStorage.GetTileMatrix()); // get tile's matrix from local storage break; // start new game default: LocalDataStorage.ClearSaveFileBeforeNewGame(); GameBoard.AddTiles(STARTUP_TILE_COUNT); // randomly add specified number of tiles on gameboard GameBoard.SetGameStateNewGame(); break; } GameBoard.SetGameStateInProgress(); // change game state on "InProgress" GamePageViewModel.InitMoveCommandsInWindow(); // add move commands GetGamePageResourceDictionary()["BestScore"] = GameBoard.ScoreFormat(GameBoard.GetBestScore()); // fulfill best score GetGamePageResourceDictionary()["CurrentScore"] = GameBoard.ScoreFormat(GameBoard.GetCurrentScore()); // fulfill current score LocalDataStorage.RefreshSaveFileXML(); }