/// <summary> /// Make a new empty map /// </summary> /// <param name="width"></param> /// <param name="height"></param> public BoolMap(int width, int height) { Map = new BoolRow[height]; for (int x = 0; x < width; x++) { Map[x] = new BoolRow(width); } }
internal List <BooleanState> GetSuccessors() { List <BooleanState> myStates = new List <BooleanState>(); int Estado = 0; //Comenzamos por las filas (Cambio en una fila, un nuevo estado) for (int i = 0; i < Size + 1; i++) { for (int j = 0; j < Size; j++) { if (!BoolRow[i, j])//Si no hay linea dibujada, supondremos que se ha dibujado { // Estado++; // Console.WriteLine("--------------------------------------------------------------Estado: " + Estado); BooleanState NewChild = new BooleanState(); bool t = !BoolRow[i, j]; bool[,] boolRow2 = (bool[, ])BoolRow.Clone(); boolRow2[i, j] = t; NewChild.Size = Size; NewChild.BoolRow = boolRow2; NewChild.BoolColumn = (bool[, ])BoolColumn.Clone(); NewChild.Player = Player; NewChild.CreateBoxMatrix(); //NewChild.Print(); myStates.Add(NewChild); } if (!BoolColumn[i, j])//Si no hay linea dibujada, supondremos que se ha dibujado { // Estado++; // Console.WriteLine("--------------------------------------------------------------Estado: " + Estado); BooleanState NewChild = new BooleanState(); bool t = !BoolColumn[i, j]; bool[,] boolRow2 = (bool[, ])BoolRow.Clone(); NewChild.BoolColumn = (bool[, ])BoolColumn.Clone(); NewChild.BoolColumn[i, j] = t; NewChild.BoolRow = boolRow2; NewChild.Player = Player; NewChild.Size = Size; NewChild.CreateBoxMatrix(); //NewChild.Print(); myStates.Add(NewChild); } } } return(myStates); }