private CCartella[] RichiediCartelle(int N) { CCartella[] Cartelle = new CCartella[N]; if (N > CartelleDisponibili.Count()) { CartelleDisponibili.AddRange(CGeneraCartelle.Genera(N - CartelleDisponibili.Count())); } for (int i = 0; i < N; i++) { Cartelle[i] = new CCartella(CartelleDisponibili[N - 1 - i].Cartella); CartelleDisponibili.RemoveAt(N - 1 - i); } return(Cartelle); }
public static CCartella GeneraCartella() { AggiornaDaInserire(); int[,] Matrice = new int[3, 9]; for (int i = 0; i < 3; i++) { int numSpazi = 0; for (int j = 0; j < 9; j++) { bool trovato = true; do { int Indice = r.Next(daInserire[j].Count()); int n = daInserire[j].ElementAt(Indice); daInserire[j].RemoveAt(Indice); if (j == 0) { n++; } for (int k = 0; k < i; k++) { if (Matrice[k, j] == n) { trovato = false; } } Matrice[i, j] = n; }while (!trovato); } while (numSpazi < 4) { int indice = r.Next(9); if (Matrice[i, indice] != -1) { Matrice[i, indice] = -1; numSpazi++; } } } CCartella c = new CCartella(Matrice); return(c); }