Example #1
0
        //Löscht alle Invaliden Moves aus gegebener Liste
        private List <string> deleteInvalid_move(List <Piece> possiblemove, Piece position, Board board, int player) //Löscht invalide Züge und gibt valide zurück
        {
            List <string> validmove = new List <string>();

            foreach (Piece option in possiblemove)
            {
                //Move ist invalid wenn

                //Spielzug ausßerhalb Spielfeld
                if (option.Item1 > 7 || option.Item1 < 0)
                {
                    continue;
                }
                if (option.Item2 > 7 || option.Item2 < 0)
                {
                    continue;
                }

                // normale Steine nur vorwärts
                if (board[position] == 'b')
                {
                    if (position.Item2 - 1 == option.Item2)
                    {
                        continue;
                    }
                }
                if (board[position] == 'w')
                {
                    if (position.Item2 + 1 == option.Item2)
                    {
                        continue;
                    }
                }

                //Feld bereits belegt
                if (board[option] != '.')
                {
                    continue;
                }

                validmove.Add(drawing.TupleToString(position) + "," + drawing.TupleToString(option));
            }

            return(validmove);
        }