public MainPage() { this.InitializeComponent(); var BigBoard = new BigBoard(); main.Children.Add(BigBoard.stkBase); }
private void OnSizeChanged(object sender, SizeChangedEventArgs sizeChangedEventArgs) { if (sizeChangedEventArgs.NewSize.Width < sizeChangedEventArgs.NewSize.Height) { //TopRow.Height = new GridLength(100, GridUnitType.Pixel); BigBoard.Visibility = Visibility.Collapsed; SmallBoard.Visibility = Visibility.Visible; LeftColumn.Width = new GridLength(1, GridUnitType.Star); RightColumn.Width = new GridLength(0, GridUnitType.Pixel); //backButton.Style = Application.Current.Resources["SnappedBackButtonStyle"] as Style; //pageTitle.Style = Application.Current.Resources["SnappedPageHeaderTextStyle"] as Style; Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { var size = Math.Min(BottomRow.ActualHeight, LeftColumn.ActualWidth); //SmallBoardScrollViewer.Width = SmallBoardScrollViewer.Height = size; SmallBoard.Width = SmallBoard.Height = size; SmallBoard.FixPieces(); }); } else { //TopRow.Height = new GridLength(140, GridUnitType.Pixel); BigBoard.Visibility = Visibility.Visible; SmallBoard.Visibility = Visibility.Collapsed; LeftColumn.Width = new GridLength(1, GridUnitType.Auto); RightColumn.Width = new GridLength(1, GridUnitType.Star); //backButton.Style = Application.Current.Resources["BackButtonStyle"] as Style; //pageTitle.Style = Application.Current.Resources["PageHeaderTextStyle"] as Style; Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { var size = Math.Min(ActualHeight, RightColumn.ActualWidth); //BigBoardScrollViewer.Width = BigBoardScrollViewer.Height = size; BigBoard.Width = BigBoard.Height = size; BigBoard.FixPieces(); }); } }
private void AdjustToVm(string propertyName) { if (_viewModel == null) { return; } switch (propertyName) { case nameof(GamePageViewModel.MessageText): if (!String.IsNullOrEmpty(_viewModel.MessageText)) { BigBoard.DisplayMessageAnimation(); SmallBoard.DisplayMessageAnimation(); } else { BigBoard.HideMessageAnimation(); SmallBoard.HideMessageAnimation(); } break; case nameof(GamePageViewModel.WhoseTurn): if (_viewModel.WhoseTurn == 0) { BouncePlayer1Storyboard.Begin(); BouncePlayer2Storyboard.Stop(); } else { BouncePlayer1Storyboard.Stop(); BouncePlayer2Storyboard.Begin(); } break; } }
static void Main(string[] args) { string[] inputs; BigBoard boards = new BigBoard(); // game loop while (true) { inputs = Console.ReadLine().Split(' '); int opponentRow = int.Parse(inputs[0]); int opponentCol = int.Parse(inputs[1]); Board board; var pos = new Position { Y = opponentRow, X = opponentCol }; if (opponentRow != -1) { Board oppBoard = boards.GetBoard(pos); var littlePositionOpponent = Board.BigToLittlePosition(pos); oppBoard.UpdateState(littlePositionOpponent, PositionState.Opponent); board = boards.boards[littlePositionOpponent.Y, littlePositionOpponent.X]; } else { board = boards.boards[0, 0]; pos = new Position { Y = 0, X = 0 }; // get a random board } int validActionCount = int.Parse(Console.ReadLine()); var validPositions = new List <Position>(); for (int i = 0; i < validActionCount; i++) { inputs = Console.ReadLine().Split(' '); int row = int.Parse(inputs[0]); int col = int.Parse(inputs[1]); validPositions.Add(new Position { Y = row, X = col }); } var playableBoards = new List <Board>(); foreach (var checkBoard in boards.boards) { BoardState boardState = checkBoard.GetBoardState(); checkBoard.BoardState = boardState; if (boardState == BoardState.NotComplete) { playableBoards.Add(checkBoard); } } if (board.BoardState == BoardState.NotComplete) { var bestPosition = board.GetBestPosition(); Console.Error.WriteLine(bestPosition.ToString()); var opponentPosition = Board.BigToLittlePosition(pos); var newPositionX = (opponentPosition.X * 3) + bestPosition.X; var newPositionY = (opponentPosition.Y * 3) + bestPosition.Y; var newPosition = new Position { X = newPositionX, Y = newPositionY }; Console.Error.WriteLine(board.ToString()); PlayPosition(newPosition); //var littlePosition = Board.BigToLittlePosition(newPosition); board.UpdateState(bestPosition, PositionState.Player); } else { int best = 0; Board bestBoard = null; foreach (var testBoard in playableBoards) { int playersInBoard = testBoard.NumberOfPlayerSpaces(); if (playersInBoard > best) { best = playersInBoard; bestBoard = testBoard; } } Console.Error.WriteLine(bestBoard.ToString()); var bestPosition = bestBoard.GetBestPosition(); var newPositionX = (bestBoard.Position.X * 3) + bestPosition.X; var newPositionY = (bestBoard.Position.Y * 3) + bestPosition.Y; var newPosition = new Position { X = newPositionX, Y = newPositionY }; PlayPosition(newPosition); //var littlePosition = Board.BigToLittlePosition(newPosition); //board = boards.boards[littlePosition.Y, littlePosition.X]; bestBoard.UpdateState(bestPosition, PositionState.Player); } } }