Exemplo n.º 1
0
        private void CheckKingKilling(TurnNode currentNode, Lib.PlayersSide whoseTurn, IChecker checker, int level)
        {
            int i = checker.CurrentCoord.Row;
            int j = checker.CurrentCoord.Column;

            while ((i <= 8) && (j <= 8))
            {
                if (checker.CheckPossibilityToKill(new Coord(i, j), gameField))
                {
                    currentNode.AddChild(KillingRecurcion(currentNode, whoseTurn, checker, new Coord(i, j), level));
                }
                i++;
                j++;
            }

            i = checker.CurrentCoord.Row;
            j = checker.CurrentCoord.Column;
            while ((i <= 8) && (j >= 1))
            {
                if (checker.CheckPossibilityToKill(new Coord(i, j), gameField))
                {
                    currentNode.AddChild(KillingRecurcion(currentNode, whoseTurn, checker, new Coord(i, j), level));
                }
                i++;
                j--;
            }

            i = checker.CurrentCoord.Row;
            j = checker.CurrentCoord.Column;
            while ((i >= 1) && (j <= 8))
            {
                if (checker.CheckPossibilityToKill(new Coord(i, j), gameField))
                {
                    currentNode.AddChild(KillingRecurcion(currentNode, whoseTurn, checker, new Coord(i, j), level));
                }
                i--;
                j++;
            }

            i = checker.CurrentCoord.Row;
            j = checker.CurrentCoord.Column;
            while ((i >= 1) && (j >= 1))
            {
                if (checker.CheckPossibilityToKill(new Coord(i, j), gameField))
                {
                    currentNode.AddChild(KillingRecurcion(currentNode, whoseTurn, checker, new Coord(i, j), level));
                }
                i--;
                j--;
            }
        }
Exemplo n.º 2
0
        private void CheckKilling(TurnNode currentNode, Lib.PlayersSide whoseTurn, IChecker checker, int level)
        {
            List <TurnNode> turnNodes = new List <TurnNode>();

            if (checker.CheckPossibilityToKill(new Coord(checker.CurrentCoord.Row + 2, checker.CurrentCoord.Column + 2), gameField))
            {
                turnNodes.Add(KillingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row + 2, checker.CurrentCoord.Column + 2), level));
            }
            if (checker.CheckPossibilityToKill(new Coord(checker.CurrentCoord.Row - 2, checker.CurrentCoord.Column + 2), gameField))
            {
                turnNodes.Add(KillingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row - 2, checker.CurrentCoord.Column + 2), level));
            }
            if (checker.CheckPossibilityToKill(new Coord(checker.CurrentCoord.Row + 2, checker.CurrentCoord.Column - 2), gameField))
            {
                turnNodes.Add(KillingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row + 2, checker.CurrentCoord.Column - 2), level));
            }
            if (checker.CheckPossibilityToKill(new Coord(checker.CurrentCoord.Row - 2, checker.CurrentCoord.Column - 2), gameField))
            {
                turnNodes.Add(KillingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row - 2, checker.CurrentCoord.Column - 2), level));
            }

            currentNode.AddChild(turnNodes);
        }
Exemplo n.º 3
0
        private void CheckMovement(TurnNode currentNode, Lib.PlayersSide whoseTurn, IChecker checker, int level)
        {
            List <TurnNode> turnNodes = new List <TurnNode>();

            if (checker.CheckPossibilityToMove(new Coord(checker.CurrentCoord.Row + 1, checker.CurrentCoord.Column + 1), gameField))
            {
                turnNodes.Add(MovingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row + 1, checker.CurrentCoord.Column + 1), level));
            }
            if (checker.CheckPossibilityToMove(new Coord(checker.CurrentCoord.Row - 1, checker.CurrentCoord.Column + 1), gameField))
            {
                turnNodes.Add(MovingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row - 1, checker.CurrentCoord.Column + 1), level));
            }
            if (checker.CheckPossibilityToMove(new Coord(checker.CurrentCoord.Row + 1, checker.CurrentCoord.Column - 1), gameField))
            {
                turnNodes.Add(MovingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row + 1, checker.CurrentCoord.Column - 1), level));
            }
            if (checker.CheckPossibilityToMove(new Coord(checker.CurrentCoord.Row - 1, checker.CurrentCoord.Column - 1), gameField))
            {
                turnNodes.Add(MovingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row - 1, checker.CurrentCoord.Column - 1), level));
            }

            currentNode.AddChild(turnNodes);
        }