public CustomBasicList <CheckersChessVector> GetValidMoves() { CustomBasicList <CheckersChessVector> possibleList = new CustomBasicList <CheckersChessVector> { new CheckersChessVector(Row + 1, Column + 2), new CheckersChessVector(Row - 1, Column + 2), new CheckersChessVector(Row + 1, Column - 2), new CheckersChessVector(Row - 1, Column - 2), new CheckersChessVector(Row + 2, Column + 1), new CheckersChessVector(Row - 2, Column + 1), new CheckersChessVector(Row + 2, Column - 1), new CheckersChessVector(Row - 2, Column - 1) }; CustomBasicList <CheckersChessVector> output = new CustomBasicList <CheckersChessVector>(); SpaceCP?c; foreach (var possible in possibleList) { c = GameBoardGraphicsCP.GetSpace(possible.Row, possible.Column); if (c != null) { if (c.PlayerOwns == 0 || c.PlayerOwns != Player) { output.Add(possible); } } } return(output); }
public void ClearBoard() { if (_gameContainer.DotList is null) { GameBoardGraphicsCP.InitBoard(_gameContainer); //i think. } _gameContainer.PreviousLine = new LineInfo(); _gameContainer.PreviousDot = new DotInfo(); //i think. foreach (var thisSquare in _gameContainer.SquareList !.Values) { thisSquare.Color = 0; thisSquare.Player = 0; } foreach (var thisLine in _gameContainer.LineList !.Values) { thisLine.IsTaken = false; } foreach (var thisDot in _gameContainer.DotList !.Values) { thisDot.IsSelected = false; } _gameContainer.PlayerList !.ForEach(thisPlayer => thisPlayer.Score = 0); _gameContainer.RepaintBoard(); }
public CustomBasicList <CheckersChessVector> GetValidMoves() { CustomBasicList <CheckersChessVector> possibleList = new CustomBasicList <CheckersChessVector> { new CheckersChessVector(Row + 1, Column + 1), new CheckersChessVector(Row - 1, Column - 1), new CheckersChessVector(Row + 1, Column), new CheckersChessVector(Row - 1, Column), new CheckersChessVector(Row, Column + 1), new CheckersChessVector(Row, Column - 1), new CheckersChessVector(Row - 1, Column + 1), new CheckersChessVector(Row + 1, Column - 1) }; CustomBasicList <CheckersChessVector> finalList = new CustomBasicList <CheckersChessVector>(); SpaceCP?c; foreach (var thisPos in possibleList) { c = GameBoardGraphicsCP.GetSpace(thisPos.Row, thisPos.Column); if (c != null) { if (c.PlayerOwns != Player) { // can't be yourself period. finalList.Add(thisPos); } } } return(finalList); }
public RollEmMainView(IEventAggregator aggregator, TestOptions test, RollEmVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); register.RegisterControl(_board.Element, ""); graphicsCP.LinkBoard(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(RollEmMainViewModel.RestoreScreen) }; } StackPanel tempStack = new StackPanel(); mainStack.Children.Add(tempStack); tempStack.Orientation = Orientation.Horizontal; tempStack.Children.Add(_board); var thisRoll = GetGamingButton("Roll Dice", nameof(RollEmMainViewModel.RollDiceAsync)); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _diceControl = new DiceListControlWPF <SimpleDice>(); otherStack.Children.Add(_diceControl); otherStack.Children.Add(thisRoll); var endButton = GetGamingButton("End Turn", nameof(RollEmMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; otherStack.Children.Add(endButton); mainStack.Children.Add(otherStack); _score = new ScoreBoardWPF(); _score.AddColumn("Score Round", true, nameof(RollEmPlayerItem.ScoreRound)); _score.AddColumn("Score Game", true, nameof(RollEmPlayerItem.ScoreGame)); tempStack.Children.Add(_score); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(RollEmMainViewModel.NormalTurn)); // there is no roll number needed for this game. firstInfo.AddRow("Round", nameof(RollEmMainViewModel.Round)); //if you don't need, it comment it out. firstInfo.AddRow("Status", nameof(RollEmMainViewModel.Status)); mainStack.Children.Add(firstInfo.GetContent); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public GameBoardProcesses(TroubleGameContainer gameContainer, TroubleVMData model, GameBoardGraphicsCP graphicsCP) { _gameContainer = gameContainer; _model = model; _graphicsCP = graphicsCP; LoadBoard(); _gameContainer.IsValidMove = IsValidMove; }
public GameBoardProcesses(AggravationGameContainer gameContainer, AggravationVMData model, GameBoardGraphicsCP graphicsCP) { _gameContainer = gameContainer; _model = model; _graphicsCP = graphicsCP; LoadBoard(); _gameContainer.IsValidMove = IsValidMove; }
public LifeBoardGameMainView(IEventAggregator aggregator, IGamePackageRegister register, GameBoardGraphicsCP graphicsCP ) { _aggregator = aggregator; _aggregator.Subscribe(this); Grid grid = new Grid(); AddAutoColumns(grid, 1); AddLeftOverColumn(grid, 70); AddLeftOverColumn(grid, 30);//i think split 50/50 is fine. SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(LifeBoardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(LifeBoardGameMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(LifeBoardGameMainViewModel.Status)); StackPanel stack = new StackPanel(); stack.Margin = new Thickness(3); stack.Children.Add(firstInfo.GetContent); AddVerticalLabelGroup("Space Details", nameof(LifeBoardGameMainViewModel.GameDetails), stack); AddControlToGrid(grid, stack, 0, 2); //on tablets will be different. GameBoardWPF gameBoard = new GameBoardWPF(aggregator); gameBoard.VerticalAlignment = VerticalAlignment.Top; register.RegisterControl(gameBoard.Element, ""); graphicsCP.LinkBoard(); AddControlToGrid(grid, gameBoard, 0, 0); gameBoard.Margin = new Thickness(3); stack = new StackPanel(); //everything else will go to this stack. stack.Margin = new Thickness(3); Type type = typeof(LifeBoardGameMainViewModel); CustomBasicList <string> list = type.GetProperties(x => x.Name.EndsWith("Screen") && x.Name != "MainScreen" && x.Name != "BoardScreen").Select(x => x.Name).ToCustomBasicList(); if (list.Count == 0) { throw new BasicBlankException("No screens found using reflection. Rethink"); } list.ForEach(x => { ParentSingleUIContainer middle = new ParentSingleUIContainer() { Name = x, HorizontalAlignment = HorizontalAlignment.Left //Margin = new Thickness(5) }; stack.Children.Add(middle); }); AddControlToGrid(grid, stack, 0, 1); Content = grid; }
public PassOutDiceGameMainView(IEventAggregator aggregator, TestOptions test, PassOutDiceGameVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; register.RegisterControl(_board.ThisElement, ""); //hopefully okay. graphicsCP.LinkBoard(); if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(PassOutDiceGameMainViewModel.RestoreScreen) }; } StackPanel finalStack = new StackPanel(); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _diceControl = new DiceListControlWPF <SimpleDice>(); otherStack.Children.Add(finalStack); otherStack.Children.Add(_board); var endButton = GetGamingButton("End Turn", nameof(PassOutDiceGameMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; mainStack.Children.Add(otherStack); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(PassOutDiceGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(PassOutDiceGameMainViewModel.Status)); finalStack.Children.Add(firstInfo.GetContent); finalStack.Children.Add(endButton); finalStack.Children.Add(_diceControl); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public ChessMainView(IEventAggregator aggregator, TestOptions test, IGamePackageRegister register, GameBoardGraphicsCP graphics) { _aggregator = aggregator; _register = register; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(ChessMainViewModel.RestoreScreen) }; } _register.RegisterControl(_board.Element, "main"); graphics.LinkBoard(); //this is always needed now. _board.Margin = new Thickness(3); var endButton = GetGamingButton("End Turn", nameof(ChessMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; Button other = GetGamingButton("Show Tie", nameof(ChessMainViewModel.TieAsync)); other.HorizontalAlignment = HorizontalAlignment.Left; SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(ChessMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(ChessMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(ChessMainViewModel.Status)); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_board); mainStack.Children.Add(otherStack); StackPanel tempStack = new StackPanel(); tempStack.Orientation = Orientation.Horizontal; tempStack.Children.Add(endButton); Button undo = GetGamingButton("Undo Moves", nameof(ChessMainViewModel.UndoMovesAsync)); tempStack.Children.Add(undo); tempStack.Children.Add(other); StackPanel finals = new StackPanel(); finals.Children.Add(tempStack); finals.Children.Add(firstInfo.GetContent); otherStack.Children.Add(finals); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public TroubleMainView(IEventAggregator aggregator, TestOptions test, TroubleVMData model, TroubleGameContainer gameContainer, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _graphicsCP = graphicsCP; _aggregator.Subscribe(this); gameContainer.PositionDice = PositionDice; register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(TroubleMainViewModel.RestoreScreen)); } _tempGrid.Margin = new Thickness(5, 5, 5, 5); _diceControl = new DiceListControlXF <SimpleDice>(); _diceControl.Margin = new Thickness(10, 0, 0, 0); var endButton = GetGamingButton("End Turn", nameof(TroubleMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(TroubleMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(TroubleMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(TroubleMainViewModel.Status)); mainStack.Children.Add(_tempGrid); mainStack.Children.Add(firstInfo.GetContent); _tempStack.Children.Add(_diceControl); _tempStack.InputTransparent = true; //maybe this will be okay. _tempGrid.Children.Add(_board); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public TroubleMainView(IEventAggregator aggregator, TestOptions test, TroubleVMData model, TroubleGameContainer gameContainer, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _graphicsCP = graphicsCP; _aggregator.Subscribe(this); gameContainer.PositionDice = PositionDice; register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(TroubleMainViewModel.RestoreScreen) }; } StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; _diceControl = new DiceListControlWPF <SimpleDice>(); mainStack.Children.Add(otherStack); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(TroubleMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(TroubleMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(TroubleMainViewModel.Status)); otherStack.Children.Add(_tempGrid); otherStack.Children.Add(firstInfo.GetContent); _tempGrid.Margin = new Thickness(5); _tempStack.Children.Add(_diceControl); _tempGrid.Children.Add(_board); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public void LoadGame() { //if (_gameContainer.DidChooseColors == false) // return; GameBoardGraphicsCP.InitBoard(_gameContainer); //i think here for sure. //not sure if it needed to be somewhere else (?) int x = 0; _gameContainer.SaveRoot !.BoardData !.DotList.ForEach(thisDot => { x++; _gameContainer.DotList ![x].IsSelected = thisDot; });
public ChessMainView(IEventAggregator aggregator, TestOptions test, IGamePackageRegister register, GameBoardGraphicsCP graphics) { _aggregator = aggregator; _register = register; _aggregator.Subscribe(this); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(ChessMainViewModel.RestoreScreen)); } _register.RegisterControl(_board.Element, "main"); graphics.LinkBoard(); //this is always needed now. _board.Margin = new Thickness(3); mainStack.Children.Add(_board); var endButton = GetGamingButton("End Turn", nameof(ChessMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; Button other = GetGamingButton("Show Tie", nameof(ChessMainViewModel.TieAsync)); other.HorizontalOptions = LayoutOptions.Start; SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(ChessMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(ChessMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(ChessMainViewModel.Status)); StackLayout tempStack = new StackLayout(); tempStack.Orientation = StackOrientation.Horizontal; tempStack.Children.Add(endButton); tempStack.Children.Add(other); tempStack.Children.Add(firstInfo.GetContent); StackLayout finalStack = new StackLayout(); finalStack.Children.Add(tempStack); finalStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(finalStack); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public void LoadBoard() { GameBoardGraphicsCP privateBoard = Resolve <GameBoardGraphicsCP>(); MouseUp += GameboardWPF_MouseUp; Element.PaintSurface += ThisElement_PaintSurface; SKSize thisSize = privateBoard.SuggestedSize(); Width = thisSize.Width; Height = thisSize.Height; EventAggregator thisT = Resolve <EventAggregator>(); thisT.Subscribe(this, EnumRepaintCategories.FromSkiasharpboard.ToString()); Content = Element; }
public GameBoardWPF(IEventAggregator aggregator) { _aggregator = aggregator; Element = new SkiaSharpGameBoard(); GameBoardGraphicsCP privateBoard = Resolve <GameBoardGraphicsCP>(); MouseUp += GameboardWPF_MouseUp; Element.PaintSurface += ThisElement_PaintSurface; SKSize thisSize = privateBoard.SuggestedSize(); Width = thisSize.Width; Height = thisSize.Height; _aggregator.Subscribe(this, EnumRepaintCategories.FromSkiasharpboard.ToString()); Content = Element; }
public ChineseCheckersMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP tempBoard, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(ChineseCheckersMainViewModel.RestoreScreen) }; } register.RegisterControl(_board.ThisElement, "main"); tempBoard.LinkBoard(); //i think var endButton = GetGamingButton("End Turn", nameof(ChineseCheckersMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(ChineseCheckersMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(ChineseCheckersMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(ChineseCheckersMainViewModel.Status)); _board.Margin = new Thickness(-10, 0, 0, 0); _board.HorizontalAlignment = HorizontalAlignment.Left; _board.VerticalAlignment = VerticalAlignment.Top; Grid tempGrid = new Grid(); AddPixelColumn(tempGrid, 300); AddAutoColumns(tempGrid, 1); StackPanel tempStack = new StackPanel(); tempStack.Children.Add(endButton); tempStack.Children.Add(firstInfo.GetContent); AddControlToGrid(tempGrid, tempStack, 0, 0); AddControlToGrid(tempGrid, _board, 0, 1); mainStack.Children.Add(tempGrid); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public SorryMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); StackPanel mainStack = new StackPanel(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(SorryMainViewModel.RestoreScreen) }; } StackPanel tempStack = new StackPanel(); Grid tempGrid = new Grid(); AddAutoRows(tempGrid, 1); AddPixelColumn(tempGrid, 500); AddAutoColumns(tempGrid, 1); AddControlToGrid(tempGrid, tempStack, 0, 0); AddControlToGrid(tempGrid, _board, 0, 1); mainStack.Children.Add(tempGrid); var endButton = GetGamingButton("End Turn", nameof(SorryMainViewModel.EndTurnAsync)); endButton.HorizontalAlignment = HorizontalAlignment.Left; SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(SorryMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(SorryMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(SorryMainViewModel.Status)); tempStack.Children.Add(firstInfo.GetContent); AddVerticalLabelGroup("Card Details", nameof(SorryMainViewModel.CardDetails), tempStack); tempStack.Children.Add(endButton); //if we need to put to main, just change to main (?) if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public SorryMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); register.RegisterControl(_board.ThisElement, ""); graphicsCP.LinkBoard(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(SorryMainViewModel.RestoreScreen)); } var endButton = GetGamingButton("End Turn", nameof(SorryMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(SorryMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(SorryMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(SorryMainViewModel.Status)); mainStack.Children.Add(_board); mainStack.Children.Add(endButton); mainStack.Children.Add(firstInfo.GetContent); AddVerticalLabelGroup("Card Details", nameof(SorryMainViewModel.CardDetails), mainStack); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public void LoadBoard() { GameBoardGraphicsCP PrivateBoard = Resolve <GameBoardGraphicsCP>(); Element.EnableTouchEvents = true; Element.Touch += ThisElement_Touch; Element.PaintSurface += ThisElement_PaintSurface; SKSize thisSize = PrivateBoard.SuggestedSize(); WidthRequest = thisSize.Width; VerticalOptions = LayoutOptions.Start; HorizontalOptions = LayoutOptions.Start; HeightRequest = thisSize.Height; EventAggregator thisT = Resolve <EventAggregator>(); thisT.Subscribe(this, EnumRepaintCategories.FromSkiasharpboard.ToString()); Content = Element; }
public ConnectTheDotsMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); StackPanel mainStack = new StackPanel(); register.RegisterControl(_board.Element, ""); graphicsCP.LinkBoard(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(ConnectTheDotsMainViewModel.RestoreScreen) }; } _score = new ScoreBoardWPF(); _score.AddColumn("Score", true, nameof(ConnectTheDotsPlayerItem.Score)); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Turn", nameof(ConnectTheDotsMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(ConnectTheDotsMainViewModel.Status)); StackPanel otherStack = new StackPanel(); otherStack.Orientation = Orientation.Horizontal; otherStack.Children.Add(_board); mainStack.Children.Add(otherStack); StackPanel finalStack = new StackPanel(); finalStack.Children.Add(firstInfo.GetContent); finalStack.Children.Add(_score); otherStack.Children.Add(finalStack); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public ChineseCheckersMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP tempBoard, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(ChineseCheckersMainViewModel.RestoreScreen)); } register.RegisterControl(_board.ThisElement, "main"); tempBoard.LinkBoard(); //i think _board.HorizontalOptions = LayoutOptions.Start; _board.VerticalOptions = LayoutOptions.Start; mainStack.Children.Add(_board); var endButton = GetGamingButton("End Turn", nameof(ChineseCheckersMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(ChineseCheckersMainViewModel.NormalTurn)); firstInfo.AddRow("Instructions", nameof(ChineseCheckersMainViewModel.Instructions)); firstInfo.AddRow("Status", nameof(ChineseCheckersMainViewModel.Status)); mainStack.Children.Add(endButton); mainStack.Children.Add(firstInfo.GetContent); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
private readonly GameBoardGraphicsCP _graphicsBoard; //hopefully this simple. public GameBoardProcesses(PaydayGameContainer gameContainer, GameBoardGraphicsCP boardGraphicsCP) { _gameContainer = gameContainer; _graphicsBoard = boardGraphicsCP; _dayList = new CustomBasicList <EnumDay> { EnumDay.Mail, EnumDay.SweepStakes, EnumDay.Mail, EnumDay.Deal, EnumDay.Mail, EnumDay.Lottery, EnumDay.SkiWeekEnd, EnumDay.RadioContest, EnumDay.Buyer, EnumDay.HappyBirthday, EnumDay.Mail, EnumDay.Deal, EnumDay.Lottery, EnumDay.CharityConcert, EnumDay.Deal, EnumDay.Mail, EnumDay.Buyer, EnumDay.Food, EnumDay.Mail, EnumDay.Lottery, EnumDay.YardSale, EnumDay.Mail, EnumDay.Buyer, EnumDay.Mail, EnumDay.Deal, EnumDay.Buyer, EnumDay.Lottery, EnumDay.ShoppingSpree, EnumDay.Buyer, EnumDay.WalkForCharity }; }
public ConnectTheDotsMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _aggregator.Subscribe(this); register.RegisterControl(_board.Element, ""); graphicsCP.LinkBoard(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(ConnectTheDotsMainViewModel.RestoreScreen)); } _score = new ScoreBoardXF(); _score.AddColumn("Score", true, nameof(ConnectTheDotsPlayerItem.Score)); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(ConnectTheDotsMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(ConnectTheDotsMainViewModel.Status)); mainStack.Children.Add(_board); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_score); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public GameBoardProcesses(BackgammonGameContainer gameContainer, GameBoardGraphicsCP graphicsBoard, BackgammonVMData model) { _gameContainer = gameContainer; _graphicsBoard = graphicsBoard; _model = model; }
public PaydayMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register, PaydayGameContainer gameContainer, PaydayVMData model ) { StackPanel mainStack = new StackPanel(); _aggregator = aggregator; _gameContainer = gameContainer; _model = model; _aggregator.Subscribe(this); _board = new GameBoardWPF(); register.RegisterControl(_board.Element, "main"); graphicsCP.LinkBoard(); _score = new ScoreBoardWPF(); _score.AddColumn("Money", true, nameof(PaydayPlayerItem.MoneyHas), useCurrency: true, rightMargin: 10); _score.AddColumn("Loans", true, nameof(PaydayPlayerItem.Loans), useCurrency: true, rightMargin: 10); SimpleLabelGrid firstInfo = new SimpleLabelGrid(); firstInfo.AddRow("Main Turn", nameof(PaydayMainViewModel.NormalTurn)); firstInfo.AddRow("Other Turn", nameof(PaydayMainViewModel.OtherLabel)); firstInfo.AddRow("Progress", nameof(PaydayMainViewModel.MonthLabel)); firstInfo.AddRow("Status", nameof(PaydayMainViewModel.Status)); //firstInfo.AddRow("Instructions", nameof(PaydayMainViewModel.Instructions)); var firstContent = firstInfo.GetContent; StackPanel tempStack = new StackPanel(); AddVerticalLabelGroup("Instructions", nameof(PaydayMainViewModel.Instructions), tempStack); ScrollViewer tempScroll = new ScrollViewer(); tempScroll.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; tempScroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled; tempScroll.Content = tempStack; ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.RestoreScreen) }; } StackPanel firstStack = new StackPanel(); firstStack.Orientation = Orientation.Horizontal; firstStack.Children.Add(_board); mainStack.Children.Add(firstStack); firstStack.Margin = new Thickness(3, 3, 3, 3); Grid rightGrid = new Grid(); firstStack.Children.Add(rightGrid); AddPixelRow(rightGrid, 225); AddLeftOverRow(rightGrid, 1); AddAutoColumns(rightGrid, 1); Grid grid1 = new Grid(); AddControlToGrid(rightGrid, grid1, 0, 0); AddAutoRows(grid1, 1); AddPixelColumn(grid1, 200); AddPixelColumn(grid1, 150); AddPixelColumn(grid1, 200); AddLeftOverColumn(grid1, 1); StackPanel stack1 = new StackPanel(); AddControlToGrid(grid1, stack1, 0, 0); ParentSingleUIContainer mailPile = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.MailPileScreen) }; ParentSingleUIContainer dealPile = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.DealPileScreen) }; stack1.Children.Add(mailPile); stack1.Children.Add(dealPile); ParentSingleUIContainer roller = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.RollerScreen) }; stack1.Children.Add(roller); AddControlToGrid(grid1, tempScroll, 0, 1); // instructions on card AddControlToGrid(grid1, firstContent, 0, 2); AddControlToGrid(grid1, _score, 0, 3); Grid grid2 = new Grid(); AddControlToGrid(rightGrid, grid2, 1, 0); AddAutoRows(grid2, 1); AddAutoColumns(grid2, 1); AddLeftOverColumn(grid2, 1); StackPanel finalStack = new StackPanel(); _dealList = new BaseHandWPF <DealCard, CardGraphicsCP, DealCardWPF>(); _dealList.Height = 500; _dealList.HandType = HandObservable <DealCard> .EnumHandList.Vertical; _dealList.HorizontalAlignment = HorizontalAlignment.Left; finalStack.Children.Add(_dealList); AddControlToGrid(grid2, finalStack, 0, 0); _currentPiece = new PawnPiecesWPF <EnumColorChoice>(); _currentPiece.Visibility = Visibility.Collapsed; // until proven to need it _currentPiece.Width = 80; _currentPiece.Height = 80; _currentPiece.Margin = new Thickness(5, 5, 5, 5); _currentPiece.Init(); finalStack.Children.Add(_currentPiece); ParentSingleUIContainer mailList = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.MailListScreen) }; AddControlToGrid(grid2, mailList, 0, 1); ParentSingleUIContainer extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.DealOrBuyScreen) }; AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.ChooseDealScreen) }; AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.LotteryScreen) }; AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer() { Name = nameof(PaydayMainViewModel.PlayerScreen) }; AddControlToGrid(grid2, extras, 0, 1); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public PaydayMainView(IEventAggregator aggregator, TestOptions test, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register, PaydayGameContainer gameContainer, PaydayVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(PaydayMainViewModel.RestoreScreen)); } _aggregator = aggregator; _gameContainer = gameContainer; _model = model; _aggregator.Subscribe(this); _board = new GameBoardXF(); register.RegisterControl(_board.Element, "main"); graphicsCP.LinkBoard(); _score = new ScoreBoardXF(); _score.AddColumn("Money", true, nameof(PaydayPlayerItem.MoneyHas), useCurrency: true, rightMargin: 10); _score.AddColumn("Loans", true, nameof(PaydayPlayerItem.Loans), useCurrency: true, rightMargin: 10); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Main Turn", nameof(PaydayMainViewModel.NormalTurn)); firstInfo.AddRow("Other Turn", nameof(PaydayMainViewModel.OtherLabel)); firstInfo.AddRow("Progress", nameof(PaydayMainViewModel.MonthLabel)); firstInfo.AddRow("Status", nameof(PaydayMainViewModel.Status)); var firstContent = firstInfo.GetContent; StackLayout tempStack = new StackLayout(); AddVerticalLabelGroup("Instructions", nameof(PaydayMainViewModel.Instructions), tempStack); ScrollView tempScroll = new ScrollView(); tempScroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Never; tempScroll.Content = tempStack; StackLayout firstStack = new StackLayout(); firstStack.Orientation = StackOrientation.Horizontal; firstStack.Children.Add(_board); mainStack.Children.Add(firstStack); firstStack.Margin = new Thickness(3, 3, 3, 0); Grid rightGrid = new Grid(); //this is very iffy. lots of adjustments may be needed. //it only works for large tablets now anyways. firstStack.Children.Add(rightGrid); AddPixelRow(rightGrid, 225); AddLeftOverRow(rightGrid, 1); AddAutoColumns(rightGrid, 1); Grid grid1 = new Grid(); AddControlToGrid(rightGrid, grid1, 0, 0); AddAutoRows(grid1, 1); AddPixelColumn(grid1, 200); AddPixelColumn(grid1, 130); AddPixelColumn(grid1, 250); //AddLeftOverColumn(grid1, 1); StackLayout stack1 = new StackLayout(); AddControlToGrid(grid1, stack1, 0, 0); ParentSingleUIContainer mailPile = new ParentSingleUIContainer(nameof(PaydayMainViewModel.MailPileScreen)); ParentSingleUIContainer dealPile = new ParentSingleUIContainer(nameof(PaydayMainViewModel.DealPileScreen)); stack1.Children.Add(mailPile); stack1.Children.Add(dealPile); ParentSingleUIContainer roller = new ParentSingleUIContainer(nameof(PaydayMainViewModel.RollerScreen)); stack1.Children.Add(roller); AddControlToGrid(grid1, tempScroll, 0, 1); // instructions on card //StackLayout endStack = new StackLayout(); //endStack.Children.Add(_score); //endStack.Children.Add(firstContent); AddControlToGrid(grid1, _score, 0, 2); //AddControlToGrid(grid1, firstContent, 0, 2); //AddControlToGrid(grid1, _score, 0, 3); Grid grid2 = new Grid(); AddControlToGrid(rightGrid, grid2, 1, 0); AddAutoRows(grid2, 1); AddAutoColumns(grid2, 1); AddLeftOverColumn(grid2, 1); StackLayout finalStack = new StackLayout(); _dealList = new BaseHandXF <DealCard, CardGraphicsCP, DealCardXF>(); _dealList.HeightRequest = 500; _dealList.HandType = HandObservable <DealCard> .EnumHandList.Vertical; _dealList.HorizontalOptions = LayoutOptions.Start; finalStack.Children.Add(_dealList); AddControlToGrid(grid2, finalStack, 0, 0); _currentPiece = new PawnPiecesXF <EnumColorChoice>(); _currentPiece.IsVisible = false; // until proven to need it _currentPiece.WidthRequest = 70; _currentPiece.HeightRequest = 70; _currentPiece.Margin = new Thickness(5, 5, 5, 5); _currentPiece.Init(); finalStack.Children.Add(_currentPiece); ParentSingleUIContainer mailList = new ParentSingleUIContainer(nameof(PaydayMainViewModel.MailListScreen)); AddControlToGrid(grid2, mailList, 0, 1); ParentSingleUIContainer extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.DealOrBuyScreen)); AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.BuyDealScreen)); AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.ChooseDealScreen)); AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.LotteryScreen)); AddControlToGrid(grid2, extras, 0, 1); extras = new ParentSingleUIContainer(nameof(PaydayMainViewModel.PlayerScreen)); AddControlToGrid(grid2, extras, 0, 1); //_score.Margin = new Thickness(0, -150, 0, 0); mainStack.Children.Add(firstContent); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public PassOutDiceGameMainView(IEventAggregator aggregator, TestOptions test, PassOutDiceGameVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(PassOutDiceGameMainViewModel.RestoreScreen)); } register.RegisterControl(_board.ThisElement, ""); //hopefully okay. graphicsCP.LinkBoard(); StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _diceControl = new DiceListControlXF <SimpleDice>(); otherStack.Children.Add(_diceControl); Grid grid = new Grid(); AddLeftOverColumn(grid, 1); AddAutoColumns(grid, 1); AddControlToGrid(grid, _board, 0, 1); AddControlToGrid(grid, mainStack, 0, 0); StackLayout finalStack = new StackLayout(); otherStack.Children.Add(finalStack); var endButton = GetGamingButton("End Turn", nameof(PassOutDiceGameMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; otherStack.Children.Add(endButton); mainStack.Children.Add(otherStack); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(PassOutDiceGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(PassOutDiceGameMainViewModel.Status)); finalStack.Children.Add(firstInfo.GetContent); finalStack.Children.Add(endButton); finalStack.Children.Add(_diceControl); if (restoreP != null) { //todo: figure out where to place the restore ui if there is a restore option. finalStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = grid; }
public CustomBasicList <CheckersChessVector> GetValidMoves() { int checkRow; int checkColumn; void UpdateChecker() { checkRow = Row; checkColumn = Column; }; SpaceCP?c; UpdateChecker(); // up processes CustomBasicList <CheckersChessVector> finalList = new CustomBasicList <CheckersChessVector>(); do { checkRow -= 1; c = GameBoardGraphicsCP.GetSpace(checkRow, checkColumn); if (c == null) { break; } if (c.PlayerOwns == Player) { break; } // can add to list finalList.Add(new CheckersChessVector(checkRow, checkColumn)); if (c.PlayerOwns > 0) { break; } }while (true); // because its after the ends// can't go further UpdateChecker(); do { checkRow += 1; c = GameBoardGraphicsCP.GetSpace(checkRow, checkColumn); if (c == null) { break; } if (c.PlayerOwns == Player) { break; } // can add to list finalList.Add(new CheckersChessVector(checkRow, checkColumn)); if (c.PlayerOwns > 0) { break; } }while (true); UpdateChecker(); do { checkColumn -= 1; c = GameBoardGraphicsCP.GetSpace(checkRow, checkColumn); if (c == null) { break; } if (c.PlayerOwns == Player) { break; } // can add to list finalList.Add(new CheckersChessVector(checkRow, checkColumn)); if (c.PlayerOwns > 0) { break; } }while (true); UpdateChecker(); do { checkColumn += 1; c = GameBoardGraphicsCP.GetSpace(checkRow, checkColumn); if (c == null) { break; } if (c.PlayerOwns == Player) { break; } // can add to list finalList.Add(new CheckersChessVector(checkRow, checkColumn)); if (c.PlayerOwns > 0) { break; } }while (true); UpdateChecker(); do { checkRow -= 1; checkColumn -= 1; c = GameBoardGraphicsCP.GetSpace(checkRow, checkColumn); if (c == null) { break; } if (c.PlayerOwns == Player) { break; } // can add to list finalList.Add(new CheckersChessVector(checkRow, checkColumn)); if (c.PlayerOwns > 0) { break; } }while (true); UpdateChecker(); do { checkRow += 1; checkColumn += 1; c = GameBoardGraphicsCP.GetSpace(checkRow, checkColumn); if (c == null) { break; } if (c.PlayerOwns == Player) { break; } // can add to list finalList.Add(new CheckersChessVector(checkRow, checkColumn)); if (c.PlayerOwns > 0) { break; } }while (true); UpdateChecker(); do { checkRow += 1; checkColumn -= 1; c = GameBoardGraphicsCP.GetSpace(checkRow, checkColumn); if (c == null) { break; } if (c.PlayerOwns == Player) { break; } // can add to list finalList.Add(new CheckersChessVector(checkRow, checkColumn)); if (c.PlayerOwns > 0) { break; } }while (true); UpdateChecker(); do { checkRow -= 1; checkColumn += 1; c = GameBoardGraphicsCP.GetSpace(checkRow, checkColumn); if (c == null) { break; } if (c.PlayerOwns == Player) { break; } // can add to list finalList.Add(new CheckersChessVector(checkRow, checkColumn)); if (c.PlayerOwns > 0) { break; } }while (true); return(finalList); }
public BackgammonMainView(IEventAggregator aggregator, TestOptions test, BackgammonVMData model, GameBoardGraphicsCP graphicsCP, IGamePackageRegister register ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); register.RegisterControl(_board.ThisElement, "main"); graphicsCP.LinkBoard(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(BackgammonMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; _diceControl = new DiceListControlXF <SimpleDice>(); otherStack.Children.Add(_board); Grid tempGrid = new Grid(); AddLeftOverRow(tempGrid, 5); AddLeftOverRow(tempGrid, 1); AddControlToGrid(tempGrid, _diceControl, 1, 0); otherStack.Children.Add(tempGrid); StackLayout finalStack = new StackLayout(); StackLayout tempStack = new StackLayout(); tempStack.Orientation = StackOrientation.Horizontal; var endButton = GetSmallerButton("End Turn", nameof(BackgammonMainViewModel.EndTurnAsync)); endButton.HorizontalOptions = LayoutOptions.Start; tempStack.Children.Add(endButton); Button other = GetSmallerButton("Undo All Moves", nameof(BackgammonMainViewModel.UndoMoveAsync)); tempStack.Children.Add(other); mainStack.Children.Add(otherStack); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(BackgammonMainViewModel.NormalTurn)); firstInfo.AddRow("Game Status", nameof(BackgammonMainViewModel.Status)); firstInfo.AddRow("Moves Made", nameof(BackgammonMainViewModel.MovesMade)); firstInfo.AddRow("Last Status", nameof(BackgammonMainViewModel.LastStatus)); firstInfo.AddRow("Instructions", nameof(BackgammonMainViewModel.Instructions)); finalStack.Children.Add(tempStack); AddControlToGrid(tempGrid, finalStack, 0, 0); finalStack.Children.Add(firstInfo.GetContent); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } Content = mainStack; }
public CustomBasicList <CheckersChessVector> GetValidMoves() { SpaceCP?c; SpaceCP c2; CustomBasicList <CheckersChessVector> thisList = new CustomBasicList <CheckersChessVector>(); if (IsReversed == false) { // diagonal left c = GameBoardGraphicsCP.GetSpace(Row - 1, Column - 1) !; if (c != null) { // this means there is something there. if (c.PlayerOwns > 0 && c.PlayerOwns != Player) { // this means you can do this one. thisList.Add(new CheckersChessVector(Row - 1, Column - 1)); } } // diagonal right c = GameBoardGraphicsCP.GetSpace(Row - 1, Column + 1) !; if (c != null) { if (c.PlayerOwns > 0 && c.PlayerOwns != Player) { thisList.Add(new CheckersChessVector(Row - 1, Column + 1)); } } // middle c = GameBoardGraphicsCP.GetSpace(Row - 1, Column) !; if (c != null) { if (c.PlayerOwns == 0) { // if anybody is in the middle, you can't do it. thisList.Add(new CheckersChessVector(Row - 1, Column)); } // first turn if (Row == 7) { // this means first turn so its possible. if (c.PlayerOwns == 0) { c2 = GameBoardGraphicsCP.GetSpace(Row - 2, Column) !; // has to find something this time. if (c2.PlayerOwns == 0) { thisList.Add(new CheckersChessVector(Row - 2, Column)); } } } } } else { c = GameBoardGraphicsCP.GetSpace(Row + 1, Column - 1) !; if (c != null) { // this means there is something there. if (c.PlayerOwns > 0 && c.PlayerOwns != Player) { // this means you can do this one. thisList.Add(new CheckersChessVector(Row + 1, Column - 1)); } } // diagonal right c = GameBoardGraphicsCP.GetSpace(Row + 1, Column + 1) !; if (c != null) { if (c.PlayerOwns > 0 && c.PlayerOwns != Player) { thisList.Add(new CheckersChessVector(Row + 1, Column + 1)); } } // middle c = GameBoardGraphicsCP.GetSpace(Row + 1, Column) !; if (c != null) { if (c.PlayerOwns == 0) { // if anybody is in the middle, you can't do it. thisList.Add(new CheckersChessVector(Row + 1, Column)); } // first turn if (Row == 2) { // this means first turn so its possible. if (c.PlayerOwns == 0) { c2 = GameBoardGraphicsCP.GetSpace(Row + 2, Column) !; // has to find something this time. if (c2.PlayerOwns == 0) { thisList.Add(new CheckersChessVector(Row + 2, Column)); } } } } } return(thisList); }