public static void Init(ref Grid fieldGrid, int fieldSize, FirstMovePlayer firstMove) { GameCore.fieldGrid = fieldGrid; GameCore.fieldSize = fieldSize; linesSpace = fieldGrid.Width / fieldSize; cellsCount = fieldSize * fieldSize; InitDashPoints(); switch (firstMove) { case FirstMovePlayer.Random: currentPlayer = new Random().Next(2) == 0 ? Player.Red : Player.Blue; break; case FirstMovePlayer.Red: currentPlayer = Player.Red; break; case FirstMovePlayer.Blue: currentPlayer = Player.Blue; break; } vertDashes = new Dash[fieldSize + 1, fieldSize]; horDashes = new Dash[fieldSize, fieldSize + 1]; CreateBorderDashes(); cells = new List <Cell>(); Initialized?.Invoke(); }
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) { fieldSize = Convert.ToInt32(NavigationContext.QueryString["FieldSize"]); string firstMoveString = NavigationContext.QueryString["FirstMove"]; FirstMovePlayer first = (FirstMovePlayer)Enum.Parse(typeof(FirstMovePlayer), firstMoveString, true); GameCore.Initialized += () => { SetCurrentPlayer(GameCore.GetCurrentPlayer()); }; GameCore.ScoreChanged += ChangeScore; GameCore.FieldFilled += GameOver; GameCore.SwapPlayersEvent += SetCurrentPlayer; GameCore.Init(ref fieldGrid, fieldSize, first); GameCore.GenerateField(); linesWidth = GameCore.GetLinesWidth(); }