예제 #1
0
        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);
        }
예제 #2
0
        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);
        }