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--; } }
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); }
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); }