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 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 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);
        }
Пример #4
0
        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);
        }