//Constructor 2. public DrawElefant(bool MovementsAStarGreedyHuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments, float i, float j, Color a, int[,] Tab, int Ord, bool TB, int Cur//,ref FormRefrigtz THIS ) { MovementsAStarGreedyHuristicFoundT = MovementsAStarGreedyHuristicTFou; IgnoreSelfObjectsT = IgnoreSelfObject; UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; BestMovmentsT = BestMovment; PredictHuristicT = PredictHurist; OnlySelfT = OnlySel; AStarGreedyHuristicT = AStarGreedyHuris; ArrangmentsChanged = Arrangments; //Initiate Global Variables By Local Parameters. Table = new int[8, 8]; for (int ii = 0; ii < 8; ii++) { for (int jj = 0; jj < 8; jj++) { Table[ii, jj] = Tab[ii, jj]; } } for (int ii = 0; ii < AllDraw.ElefantMovments; ii++) { ElefantThinking[ii] = new ThinkingChess(MovementsAStarGreedyHuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHuristicT, OnlySelfT, AStarGreedyHuristicT, ArrangmentsChanged, (int)i, (int)j, a, Tab, 16, Ord, TB, Cur, 4, 2); } Row = i; Column = j; color = a; Order = Ord; Current = Cur; }
//Constructor 1. /*public DrawKing(int CurrentAStarGredy, bool MovementsAStarGreedyHuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments) * { * CurrentAStarGredyMax = CurrentAStarGredy; * MovementsAStarGreedyHuristicFoundT = MovementsAStarGreedyHuristicTFou; * IgnoreSelfObjectsT = IgnoreSelfObject; * UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; * BestMovmentsT = BestMovment; * PredictHuristicT = PredictHurist; * OnlySelfT = OnlySel; * AStarGreedyHuristicT = AStarGreedyHuris; * ArrangmentsChanged = Arrangments; * } */ //Constructor 2. public DrawKing(int CurrentAStarGredy, bool MovementsAStarGreedyHuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments, float i, float j, Color a, int[,] Tab, int Ord, bool TB, int Cur//, ref AllDraw. THIS ) { CurrentAStarGredyMax = CurrentAStarGredy; MovementsAStarGreedyHuristicFoundT = MovementsAStarGreedyHuristicTFou; IgnoreSelfObjectsT = IgnoreSelfObject; UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; BestMovmentsT = BestMovment; PredictHuristicT = PredictHurist; OnlySelfT = OnlySel; AStarGreedyHuristicT = AStarGreedyHuris; ArrangmentsChanged = Arrangments; //Iniatite Global Variables. Table = new int[8, 8]; for (int ii = 0; ii < 8; ii++) { for (int jj = 0; jj < 8; jj++) { Table[ii, jj] = Tab[ii, jj]; } } for (int ii = 0; ii < AllDraw.KingMovments; ii++) { KingThinking[ii] = new ThinkingChess(CurrentAStarGredyMax, MovementsAStarGreedyHuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHuristicT, OnlySelfT, AStarGreedyHuristicT, ArrangmentsChanged, (int)i, (int)j, a, Tab, 8, Ord, TB, Cur, 2, 6); } Row = i; Column = j; color = a; Order = Ord; Current = Cur; }
//Constructor 2. public DrawSoldier(bool MovementsAStarGreedyHuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments, float i, float j, Color a, int[,] Tab, int Ord, bool TB, int Cur ) : base(Arrangments, (int)i, (int)j, a, Tab, Ord, TB, Cur) { MovementsAStarGreedyHuristicFoundT = MovementsAStarGreedyHuristicTFou; IgnoreSelfObjectsT = IgnoreSelfObject; UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; BestMovmentsT = BestMovment; PredictHuristicT = PredictHurist; OnlySelfT = OnlySel; AStarGreedyHuristicT = AStarGreedyHuris; ArrangmentsChanged = Arrangments; //Initiate Global Variables. Table = new int[8, 8]; for (int ii = 0; ii < 8; ii++) { for (int jj = 0; jj < 8; jj++) { Table[ii, jj] = Tab[ii, jj]; } } for (int ii = 0; ii < AllDraw.SodierMovments; ii++) { SoldierThinking[ii] = new ThinkingChess(MovementsAStarGreedyHuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHuristicT, OnlySelfT, AStarGreedyHuristicT, ArrangmentsChanged, (int)i, (int)j, a, Tab, 4, Ord, TB, Cur, 16, 1); } RowS = i; ColumnS = j; color = a; Order = Ord; Current = Cur; }
//Constructor 1. /* public DrawSoldier(int CurrentAStarGredy, bool MovementsAStarGreedyHuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments) * { * CurrentAStarGredyMax = CurrentAStarGredy; * MovementsAStarGreedyHuristicFoundT = MovementsAStarGreedyHuristicTFou; * IgnoreSelfObjectsT = IgnoreSelfObject; * UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; * BestMovmentsT = BestMovment; * PredictHuristicT = PredictHurist; * OnlySelfT = OnlySel; * AStarGreedyHuristicT = AStarGreedyHuris; * ArrangmentsChanged = Arrangments; * } */ //Constructor 2. public DrawSoldier(int CurrentAStarGredy, bool MovementsAStarGreedyHuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments, float i, float j, Color a, int[,] Tab, int Ord, bool TB, int Cur//, ref AllDraw. THIS ) : base(Arrangments, (int)i, (int)j, a, Tab, Ord, TB, Cur) { lock (balanceLock) { if (S[0] == null && S[1] == null) { S[0] = Image.FromFile(AllDraw.ImagesSubRoot + "SG.png"); S[1] = Image.FromFile(AllDraw.ImagesSubRoot + "SB.png"); } CurrentAStarGredyMax = CurrentAStarGredy; MovementsAStarGreedyHuristicFoundT = MovementsAStarGreedyHuristicTFou; IgnoreSelfObjectsT = IgnoreSelfObject; UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; BestMovmentsT = BestMovment; PredictHuristicT = PredictHurist; OnlySelfT = OnlySel; AStarGreedyHuristicT = AStarGreedyHuris; ArrangmentsChanged = Arrangments; //Initiate Global Variables. Table = new int[8, 8]; for (int ii = 0; ii < 8; ii++) { for (int jj = 0; jj < 8; jj++) { Table[ii, jj] = Tab[ii, jj]; } } if (i >= 8 || j >= 8) { i = 7; } for (int ii = 0; ii < AllDraw.SodierMovments; ii++) { SoldierThinking[ii] = new ThinkingChess(CurrentAStarGredyMax, MovementsAStarGreedyHuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHuristicT, OnlySelfT, AStarGreedyHuristicT, ArrangmentsChanged, (int)i, (int)j, a, Tab, 4, Ord, TB, Cur, 16, 1); } RowS = i; ColumnS = j; color = a; Order = Ord; Current = Cur; } }
//Constructor 1. /*public DrawElefant(int CurrentAStarGredy, bool MovementsAStarGreedyHuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments) * { * CurrentAStarGredyMax = CurrentAStarGredy; * MovementsAStarGreedyHuristicFoundT = MovementsAStarGreedyHuristicTFou; * IgnoreSelfObjectsT = IgnoreSelfObject; * UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; * BestMovmentsT = BestMovment; * PredictHuristicT = PredictHurist; * OnlySelfT = OnlySel; * AStarGreedyHuristicT = AStarGreedyHuris; * ArrangmentsChanged = Arrangments; * }*/ //Constructor 2. public DrawElefant(int CurrentAStarGredy, bool MovementsAStarGreedyHuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments, float i, float j, Color a, int[,] Tab, int Ord, bool TB, int Cur//,ref AllDraw. THIS ) { lock (balanceLock) { if (E[0] == null && E[1] == null) { E[0] = Image.FromFile(AllDraw.ImagesSubRoot + "EG.png"); E[1] = Image.FromFile(AllDraw.ImagesSubRoot + "EB.png"); } CurrentAStarGredyMax = CurrentAStarGredy; MovementsAStarGreedyHuristicFoundT = MovementsAStarGreedyHuristicTFou; IgnoreSelfObjectsT = IgnoreSelfObject; UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; BestMovmentsT = BestMovment; PredictHuristicT = PredictHurist; OnlySelfT = OnlySel; AStarGreedyHuristicT = AStarGreedyHuris; ArrangmentsChanged = Arrangments; //Initiate Global Variables By Local Parameters. Table = new int[8, 8]; for (int ii = 0; ii < 8; ii++) { for (int jj = 0; jj < 8; jj++) { Table[ii, jj] = Tab[ii, jj]; } } for (int ii = 0; ii < AllDraw.ElefantMovments; ii++) { ElefantThinking[ii] = new ThinkingChess(CurrentAStarGredyMax, MovementsAStarGreedyHuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHuristicT, OnlySelfT, AStarGreedyHuristicT, ArrangmentsChanged, (int)i, (int)j, a, Tab, 16, Ord, TB, Cur, 4, 2); } Row = i; Column = j; color = a; Order = Ord; Current = Cur; } }
//constructor 1. /*public DrawMinister(int CurrentAStarGredy, bool MovementsAStarGreedyHuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments) * { * CurrentAStarGredyMax = CurrentAStarGredy; * MovementsAStarGreedyHuristicFoundT = MovementsAStarGreedyHuristicTFou; * IgnoreSelfObjectsT = IgnoreSelfObject; * UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; * BestMovmentsT = BestMovment; * PredictHuristicT = PredictHurist; * OnlySelfT = OnlySel; * AStarGreedyHuristicT = AStarGreedyHuris; * ArrangmentsChanged = Arrangments; * } */ //Constructor 2. public DrawMinister(int CurrentAStarGredy, bool MovementsAStarGreedyHuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments, float i, float j, Color a, int[,] Tab, int Ord, bool TB, int Cur//, ref AllDraw. THIS ) { //long Time = TimeElapced.TimeNow();Spaces++; object balancelock = new object(); lock (balancelock) { CurrentAStarGredyMax = CurrentAStarGredy; MovementsAStarGreedyHuristicFoundT = MovementsAStarGreedyHuristicTFou; IgnoreSelfObjectsT = IgnoreSelfObject; UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; BestMovmentsT = BestMovment; PredictHuristicT = PredictHurist; OnlySelfT = OnlySel; AStarGreedyHuristicT = AStarGreedyHuris; ArrangmentsChanged = Arrangments; //Initiate Global Variables. Table = new int[8, 8]; for (var ii = 0; ii < 8; ii++) { for (var jj = 0; jj < 8; jj++) { Table[ii, jj] = Tab[ii, jj]; } } for (var ii = 0; ii < AllDraw.MinisterMovments; ii++) { MinisterThinking[ii] = new ThinkingChess(ii, 5, CurrentAStarGredyMax, MovementsAStarGreedyHuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHuristicT, OnlySelfT, AStarGreedyHuristicT, ArrangmentsChanged, (int)i, (int)j, a, Tab, 32, Ord, TB, Cur, 2, 5); } Row = i; Column = j; color = a; Current = Cur; Order = Ord; } ////{ AllDraw.OutPut.Append("\r\n");for (int l = 0; l < Spaces; l++) AllDraw.OutPut.Append(Space); AllDraw.OutPut.Append("DrawMinister:" + (TimeElapced.TimeNow() - Time).ToString());}Spaces--; }
//Constructor 2. public DrawSoldier(float i, float j, Color a, int[,] Tab, int Ord, bool TB, int Cur//, ref FormRefrigtz THIS ) : base((int)i, (int)j, a, Tab, Ord, TB, Cur) { //Initiate Global Variables. Table = new int[8, 8]; for (int ii = 0; ii < 8; ii++) { for (int jj = 0; jj < 8; jj++) { Table[ii, jj] = Tab[ii, jj]; } } for (int ii = 0; ii < AllDraw.SodierMovments; ii++) { SoldierThinking[ii] = new ThinkingChess((int)i, (int)j, a, Tab, 4, Ord, TB, Cur, 16, 1); } RowS = i; ColumnS = j; color = a; Order = Ord; Current = Cur; }
//Constructor 2. public DrawMinister(float i, float j, Color a, int[,] Tab, int Ord, bool TB, int Cur//, ref FormRefrigtz THIS ) { //Initiate Global Variables. Table = new int[8, 8]; for (int ii = 0; ii < 8; ii++) { for (int jj = 0; jj < 8; jj++) { Table[ii, jj] = Tab[ii, jj]; } } for (int ii = 0; ii < AllDraw.MinisterMovments; ii++) { MinisterThinking[ii] = new ThinkingChess((int)i, (int)j, a, Tab, 32, Ord, TB, Cur, 2, 5); } Row = i; Column = j; color = a; Current = Cur; Order = Ord; }
//constructor 2. public DrawBridge(float i, float j, Color a, int[,] Tab, int Ord, bool TB, int Cur//, ref FormRefrigtz THIS ) { //Initiate Global Variable By Local Parmenter. Table = new int[8, 8]; for (int ii = 0; ii < 8; ii++) { for (int jj = 0; jj < 8; jj++) { Table[ii, jj] = Tab[ii, jj]; } } for (int ii = 0; ii < AllDraw.BridgeMovments; ii++) { BridgeThinking[ii] = new ThinkingChess((int)i, (int)j, a, Tab, 16, Ord, TB, Cur, 4, 4); } Row = i; Column = j; color = a; Order = Ord; Current = Cur; }
//Constructor 1. //constructor 2. public DrawCastle(int CurrentAStarGredy, bool MovementsAStarGreedyHeuristicTFou, bool IgnoreSelfObject, bool UsePenaltyRegardMechnisa, bool BestMovment, bool PredictHurist, bool OnlySel, bool AStarGreedyHuris, bool Arrangments, float i, float j, Color a, int[,] Tab, int Ord, bool TB, int Cur//, ref AllDraw. THIS ) { object balancelock = new object(); lock (balancelock) { CurrentAStarGredyMax = CurrentAStarGredy; MovementsAStarGreedyHeuristicFoundT = MovementsAStarGreedyHeuristicTFou; IgnoreSelfObjectsT = IgnoreSelfObject; UsePenaltyRegardMechnisamT = UsePenaltyRegardMechnisa; BestMovmentsT = BestMovment; PredictHeuristicT = PredictHurist; OnlySelfT = OnlySel; AStarGreedyHeuristicT = AStarGreedyHuris; ArrangmentsChanged = Arrangments; //Initiate Global Variable By Local Parmenter. Table = new int[8, 8]; for (var ii = 0; ii < 8; ii++) { for (var jj = 0; jj < 8; jj++) { Table[ii, jj] = Tab[ii, jj]; } } for (var ii = 0; ii < AllDraw.CastleMovments; ii++) { CastleThinking[ii] = new ThinkingChess(ii, 4, CurrentAStarGredyMax, MovementsAStarGreedyHeuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHeuristicT, OnlySelfT, AStarGreedyHeuristicT, ArrangmentsChanged, (int)i, (int)j, a, CloneATable(Tab), 16, Ord, TB, Cur, 4, 4); } Row = i; Column = j; color = a; Order = Ord; Current = Cur; } }
//Table Foundation of Genetic Alogorithm Method. public int[,] GenerateTable(List <int[, ]> List, int Index, int Order) { //Initiate Local Variables. Begine5: RowColumn.Clear(); int Store = Index; int[,] Cromosom1 = null; int[,] Cromosom2 = null; try { Cromosom1 = List[List.Count - 2]; Cromosom2 = List[List.Count + MinusOne]; } catch (IndexOutOfRangeException t) { Log(t); return(null); } Index = Store; //Found of Gen. if (!FindGenToModified(Cromosom1, Cromosom2, List, Index, Order, false)) { goto EndFindAThing; } //Initiate Global Variables. BeginFind: Color color = Color.Gray; if (Order == -1) { color = Color.Brown; } try { //If Cromosom Location is Not Founded. if (CromosomRow == -1 && CromosomColumn == -1) { //Initiayte Local Variables. List.RemoveAt(List.Count + MinusOne); Index--; goto Begine5; } //Found Kind Of Gen. Ki = List[List.Count + MinusOne][CromosomRow, CromosomColumn]; //Initiate Local Variables. GeneticTable = new int[8, 8]; //If Gen Kind Not Found Retrun Not Valididity. if (List[List.Count + MinusOne][CromosomRow, CromosomColumn] == 0) { return(null); } else { //Clone a Copy. for (var ii = 0; ii < 8; ii++) { for (var jj = 0; jj < 8; jj++) { GeneticTable[ii, jj] = List[List.Count + MinusOne][ii, jj]; } } } //Initiate Global and Local Variables. color = Color.Gray; if (Order == -1) { color = Color.Brown; } //For All Gens. for (Gen1 = 0; Gen1 < 8; Gen1++) { for (Gen2 = 0; Gen2 < 8; Gen2++) { //If Gen is Current Gen Location Continue Traversal Back. if (Gen1 == CromosomRow && Gen2 == CromosomColumn) { continue; } //Rulement of Gen Movments. if ((new ChessRules(0, MovementsAStarGreedyHeuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHeuristicT, OnlySelfT, AStarGreedyHeuristicT, ArrangmentsChanged, GeneticTable[CromosomRow, CromosomColumn], CloneATable(GeneticTable), Order, CromosomRow, CromosomColumn)).Rules(CromosomRow, CromosomColumn, Gen1, Gen2, color, GeneticTable[CromosomRow, CromosomColumn])) { //Initiate Global Variables and Syntax. int[] A = new int[2]; A[0] = CromosomRow; A[1] = CromosomColumn; RowColumn.Add(A); GeneticTable[Gen1, Gen2] = GeneticTable[CromosomRow, CromosomColumn]; GeneticTable[CromosomRow, CromosomColumn] = 0; //Table Repeatative Consideration. if (ThinkingChess.ExistTableInList(CloneATable(GeneticTable), List, 0)) { GeneticTable[CromosomRow, CromosomColumn] = GeneticTable[Gen1, Gen2]; GeneticTable[Gen1, Gen2] = 0; continue; } else { //Check Consideration. if ((new ChessRules(0, MovementsAStarGreedyHeuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHeuristicT, OnlySelfT, AStarGreedyHeuristicT, ArrangmentsChanged, GeneticTable[CromosomRow, CromosomRow], CloneATable(GeneticTable), Order, CromosomRow, CromosomColumn)).Check(CloneATable(GeneticTable), Order)) { GeneticTable[CromosomRow, CromosomColumn] = GeneticTable[Gen1, Gen2]; GeneticTable[Gen1, Gen2] = 0; continue; } else { //Return Genetic Table. return(GeneticTable); } } } } } //Initiate Try Catch. GeneticTable = null; int a = GeneticTable[0, 0]; } catch (NullReferenceException t) { //Try Catch Expetion Handling of Not Successful Foundation of Gen. Log(t); if (Order == 1) { Ki = (new Random()).Next(1, 7); } else { Ki = (new Random()).Next(1, 7) * -1; } if (Order == 1) { int Count = 0; do { if (Ki < 6) { Ki++; } else { Ki = 1; } Count++; } while (Count < 6 && !(new ChessRules(0, MovementsAStarGreedyHeuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHeuristicT, OnlySelfT, AStarGreedyHeuristicT, ArrangmentsChanged, Ki, List[List.Count + MinusOne], Order, CromosomRow, CromosomColumn)).FindAThing(List[List.Count + MinusOne], ref CromosomRow, ref CromosomColumn, Ki, true, RowColumn)); if (Count >= 6) { NoGameFounf = true; return(null); } } else { int Count = 0; do { if (Ki > -6) { Ki--; } else { Ki = -1; } Count++; } while (Count < 6 && !(new ChessRules(0, MovementsAStarGreedyHeuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHeuristicT, OnlySelfT, AStarGreedyHeuristicT, ArrangmentsChanged, Ki, List[List.Count + MinusOne], Order, CromosomRow, CromosomColumn)).FindAThing(List[List.Count + MinusOne], ref CromosomRow, ref CromosomColumn, Ki, true, RowColumn)); if (Count >= 6) { NoGameFounf = true; return(null); } } goto BeginFind; } EndFindAThing: //Foudn of Some Samness Gen. if (Order == 1) { Ki = (new Random()).Next(1, 7); } else { Ki = (new Random()).Next(1, 7) * -1; } if (Order == 1) { int Count = 0; do { if (Ki < 6) { Ki++; } else { Ki = 1; } Count++; } while (Count < 6 && !(new ChessRules(0, MovementsAStarGreedyHeuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHeuristicT, OnlySelfT, AStarGreedyHeuristicT, ArrangmentsChanged, Ki, List[List.Count + MinusOne], Order, CromosomRow, CromosomColumn)).FindAThing(List[List.Count + MinusOne], ref CromosomRow, ref CromosomColumn, Ki, true, RowColumn)); if (Count >= 6) { return(null); } } else { int Count = 0; do { if (Ki > -6) { Ki--; } else { Ki = -1; } Count++; } while (Count < 6 && !(new ChessRules(0, MovementsAStarGreedyHeuristicFoundT, IgnoreSelfObjectsT, UsePenaltyRegardMechnisamT, BestMovmentsT, PredictHeuristicT, OnlySelfT, AStarGreedyHeuristicT, ArrangmentsChanged, Ki, List[List.Count + MinusOne], Order, CromosomRow, CromosomColumn)).FindAThing(List[List.Count + MinusOne], ref CromosomRow, ref CromosomColumn, Ki, true, RowColumn)); if (Count >= 6) { return(null); } } goto BeginFind; }