コード例 #1
0
ファイル: Globals.cs プロジェクト: lukemols/Negozio_di_Viola
        // Funzioni

        //public static void CreaLista()
        //{
        //    Random rnd = new Random();
        //    Prodotto p;
        //    for (int i = 0; i < 8; i++)
        //    {
        //        p = Globals.listProdottiTutti[rnd.Next(Globals.listProdottiTutti.Count)];
        //        Globals.listProdottiNegozio.Add(p);
        //    }
        //}



        public static void CreaPortafogli()
        {
            double prezzo_min = 1000.00;
            double prezzo_min2 = 1000.00;
            int prezzo;

            switch (Globals.Livello)
            {
                case 1:

                case 2:

                    // Scelgo come target il paio di scarpe con il prezzo acquisto minore 
                    // tra i 4 tipi possibili che l'utente può comprare e inserisco nel portafoglio 
                    // il denaro contato per le scarpe scelte.

                    for (int i = 0; i < 4; i++)
                        if (Globals.listProdottiNegozio[4 * i].PrezzoAcquisto < prezzo_min)
                        {
                            prezzo_min = Globals.listProdottiNegozio[4 * i].PrezzoAcquisto;
                            Globals.indice_scarpe = i;
                        }

                    Globals.scarpe = Globals.listProdottiNegozio[4 * Globals.indice_scarpe];

                    Globals.pFabbrica = Convert.ToString(Globals.scarpe.PrezzoAcquisto) + "€";
                    Globals.pNegozio = Convert.ToString(Globals.scarpe.PrezzoVendita) + "€";

                    prezzo = (int)Globals.scarpe.prezzo_acquisto;

                    Globals.nAcquisto = 0;

                    while (prezzo != 0)
                    {
                        if (prezzo >= 50)
                        {
                            Insert50E();
                            prezzo -= 50;
                        }
                        else if (prezzo >= 20)
                        {
                            Insert20E();
                            prezzo -= 20;
                        }
                        else if (prezzo >= 10)
                        {
                            Insert10E();
                            prezzo -= 10;
                        }
                        else if (prezzo >= 5)
                        {
                            Insert5E();
                            prezzo -= 5;
                        }
                        else if (prezzo >= 2)
                        {
                            Insert2E();
                            prezzo -= 2;
                        }
                        else if (prezzo >= 1)
                        {
                            Insert1E();
                            prezzo -= 1;
                        }
                    }

                    break;

                case 3:

                case 4:

                case 5:

                case 6:

                    // Scelgo come target il paio di scarpe con il prezzo acquisto minore 
                    // tra i 4 tipi possibili che l'utente può comprare e inserisco nel portafoglio 
                    // una cifra >= del denaro contato per le scarpe scelte e < del prezzo delle scarpe 
                    // con prezzo immediatamente superiore.

                    for (int i = 0; i < 4; i++)
                        if (Globals.listProdottiNegozio[4 * i].PrezzoAcquisto < prezzo_min)
                        {
                            prezzo_min = Globals.listProdottiNegozio[4 * i].PrezzoAcquisto;
                            Globals.indice_scarpe = i;
                        }

                    Globals.scarpe = Globals.listProdottiNegozio[4 * Globals.indice_scarpe];

                    Globals.pFabbrica = Convert.ToString(Globals.scarpe.PrezzoAcquisto) + "€";
                    Globals.pNegozio = Convert.ToString(Globals.scarpe.PrezzoVendita) + "€";

                    for (int i = 0; i < 4; i++)
                        if ((i != Globals.indice_scarpe) && (Globals.listProdottiNegozio[4 * i].PrezzoAcquisto < prezzo_min2))
                            prezzo_min2 = Globals.listProdottiNegozio[4 * i].PrezzoAcquisto;

                    /*SE E' IL LIVELLO 6 ALLORA DEFINIAMO UN GUADAGNO DINAMICO!*/
                    if(Globals.Livello == 6)
                    {
                        double delta = scarpe.PrezzoVendita - scarpe.PrezzoAcquisto;
                        Random rnd = new Random();
                        scarpe.prezzo_vendita = (int)(scarpe.prezzo_vendita + delta * ((rnd.NextDouble() * 2f - 1f) / 2));
                        Globals.prezzoConGuadagnoDinamico = scarpe.PrezzoVendita - scarpe.PrezzoAcquisto;
                        /* Quello che si vuole fare è definire un guadagno dinamico:
                        a partire dal prezzo finale statico si vuole prendere un nuovo prezzo finale
                        che sia compreso nel range tra gf - 0.5g e gf + 0.5g dove g è il guadagno statico (DELTA).
                        Per fare ciò si prende un valore double casuale (NEXT DOUBLE) tra 0 e 1,
                        lo si porta nel range 0 - 2 con *2, e poi tra -1 e 1 con -1.
                        Si divide per 2 e si ottiene un valore casuale tra -0.5 e +0.5 che moltiplicherà poi DELTA.
                        Il valore casuale -Delta/2 +Delta/2 trasformato in intero viene infine sommato al prezzo finale statico
                        e si ottiene dunque il PREZZO FINALE DINAMICO.
                        Il guadagno dinamico viene poi calcolato come differenza tra i due valori.
                        */
                    }


                    prezzo = Globals.global_rnd.Next((int)prezzo_min, (int)(prezzo_min2 - 1));

                    Globals.nAcquisto = 0;

                    while (prezzo != 0)
                    {
                        if (prezzo >= 50)
                        {
                            Insert50E();
                            prezzo -= 50;
                        }
                        else if (prezzo >= 20)
                        {
                            Insert20E();
                            prezzo -= 20;
                        }
                        else if (prezzo >= 10)
                        {
                            Insert10E();
                            prezzo -= 10;
                        }
                        else if (prezzo >= 5)
                        {
                            Insert5E();
                            prezzo -= 5;
                        }
                        else if (prezzo >= 2)
                        {
                            Insert2E();
                            prezzo -= 2;
                        }
                        else if (prezzo >= 1)
                        {
                            Insert1E();
                            prezzo -= 1;
                        }
                    }

                    break;

                default:

                    for (int i = 0; i < Globals.portafogli.Length; i++)
                    {
                        Globals.portafogli[i] = Globals.global_rnd.Next(5);
                    }

                    break;
            }

            Globals.wallet_exists = true;
        }
コード例 #2
0
        // Funzioni

        //public static void CreaLista()
        //{
        //    Random rnd = new Random();
        //    Prodotto p;
        //    for (int i = 0; i < 8; i++)
        //    {
        //        p = Globals.listProdottiTutti[rnd.Next(Globals.listProdottiTutti.Count)];
        //        Globals.listProdottiNegozio.Add(p);
        //    }
        //}



        public static void CreaPortafogli()
        {
            double prezzo_min  = 1000.00;
            double prezzo_min2 = 1000.00;
            int    prezzo;

            switch (Globals.Livello)
            {
            case 1:

            case 2:

                // Scelgo come target il paio di scarpe con il prezzo acquisto minore
                // tra i 4 tipi possibili che l'utente può comprare e inserisco nel portafoglio
                // il denaro contato per le scarpe scelte.

                for (int i = 0; i < 4; i++)
                {
                    if (Globals.listProdottiNegozio[4 * i].PrezzoAcquisto < prezzo_min)
                    {
                        prezzo_min            = Globals.listProdottiNegozio[4 * i].PrezzoAcquisto;
                        Globals.indice_scarpe = i;
                    }
                }

                Globals.scarpe = Globals.listProdottiNegozio[4 * Globals.indice_scarpe];

                Globals.pFabbrica = Convert.ToString(Globals.scarpe.PrezzoAcquisto) + "€";
                Globals.pNegozio  = Convert.ToString(Globals.scarpe.PrezzoVendita) + "€";

                prezzo = (int)Globals.scarpe.prezzo_acquisto;

                Globals.nAcquisto = 0;

                while (prezzo != 0)
                {
                    if (prezzo >= 50)
                    {
                        Insert50E();
                        prezzo -= 50;
                    }
                    else if (prezzo >= 20)
                    {
                        Insert20E();
                        prezzo -= 20;
                    }
                    else if (prezzo >= 10)
                    {
                        Insert10E();
                        prezzo -= 10;
                    }
                    else if (prezzo >= 5)
                    {
                        Insert5E();
                        prezzo -= 5;
                    }
                    else if (prezzo >= 2)
                    {
                        Insert2E();
                        prezzo -= 2;
                    }
                    else if (prezzo >= 1)
                    {
                        Insert1E();
                        prezzo -= 1;
                    }
                }

                break;

            case 3:

            case 4:

            case 5:

            case 6:

                // Scelgo come target il paio di scarpe con il prezzo acquisto minore
                // tra i 4 tipi possibili che l'utente può comprare e inserisco nel portafoglio
                // una cifra >= del denaro contato per le scarpe scelte e < del prezzo delle scarpe
                // con prezzo immediatamente superiore.

                for (int i = 0; i < 4; i++)
                {
                    if (Globals.listProdottiNegozio[4 * i].PrezzoAcquisto < prezzo_min)
                    {
                        prezzo_min            = Globals.listProdottiNegozio[4 * i].PrezzoAcquisto;
                        Globals.indice_scarpe = i;
                    }
                }

                Globals.scarpe = Globals.listProdottiNegozio[4 * Globals.indice_scarpe];

                Globals.pFabbrica = Convert.ToString(Globals.scarpe.PrezzoAcquisto) + "€";
                Globals.pNegozio  = Convert.ToString(Globals.scarpe.PrezzoVendita) + "€";

                for (int i = 0; i < 4; i++)
                {
                    if ((i != Globals.indice_scarpe) && (Globals.listProdottiNegozio[4 * i].PrezzoAcquisto < prezzo_min2))
                    {
                        prezzo_min2 = Globals.listProdottiNegozio[4 * i].PrezzoAcquisto;
                    }
                }

                /*SE E' IL LIVELLO 6 ALLORA DEFINIAMO UN GUADAGNO DINAMICO!*/
                if (Globals.Livello == 6)
                {
                    double delta = scarpe.PrezzoVendita - scarpe.PrezzoAcquisto;
                    Random rnd   = new Random();
                    scarpe.prezzo_vendita             = (int)(scarpe.prezzo_vendita + delta * ((rnd.NextDouble() * 2f - 1f) / 2));
                    Globals.prezzoConGuadagnoDinamico = scarpe.PrezzoVendita - scarpe.PrezzoAcquisto;

                    /* Quello che si vuole fare è definire un guadagno dinamico:
                     * a partire dal prezzo finale statico si vuole prendere un nuovo prezzo finale
                     * che sia compreso nel range tra gf - 0.5g e gf + 0.5g dove g è il guadagno statico (DELTA).
                     * Per fare ciò si prende un valore double casuale (NEXT DOUBLE) tra 0 e 1,
                     * lo si porta nel range 0 - 2 con *2, e poi tra -1 e 1 con -1.
                     * Si divide per 2 e si ottiene un valore casuale tra -0.5 e +0.5 che moltiplicherà poi DELTA.
                     * Il valore casuale -Delta/2 +Delta/2 trasformato in intero viene infine sommato al prezzo finale statico
                     * e si ottiene dunque il PREZZO FINALE DINAMICO.
                     * Il guadagno dinamico viene poi calcolato come differenza tra i due valori.
                     */
                }


                prezzo = Globals.global_rnd.Next((int)prezzo_min, (int)(prezzo_min2 - 1));

                Globals.nAcquisto = 0;

                while (prezzo != 0)
                {
                    if (prezzo >= 50)
                    {
                        Insert50E();
                        prezzo -= 50;
                    }
                    else if (prezzo >= 20)
                    {
                        Insert20E();
                        prezzo -= 20;
                    }
                    else if (prezzo >= 10)
                    {
                        Insert10E();
                        prezzo -= 10;
                    }
                    else if (prezzo >= 5)
                    {
                        Insert5E();
                        prezzo -= 5;
                    }
                    else if (prezzo >= 2)
                    {
                        Insert2E();
                        prezzo -= 2;
                    }
                    else if (prezzo >= 1)
                    {
                        Insert1E();
                        prezzo -= 1;
                    }
                }

                break;

            default:

                for (int i = 0; i < Globals.portafogli.Length; i++)
                {
                    Globals.portafogli[i] = Globals.global_rnd.Next(5);
                }

                break;
            }

            Globals.wallet_exists = true;
        }
コード例 #3
0
        private void riempiListeProdotti()
        {
            string str;

            string[] split_vec;

            double pFabbrica, pNegozio;

            int numProdottiTutti;

            Prodotto prod;

            try
            {
                // MessageBox.Show("  " + Globals.prodottiPath + "Prodotti.txt" ); // DEBUG
                StreamReader sr = new StreamReader(Globals.prodottiPath + "Prodotti.txt");

                // Riempi lista Prodotti tutti

                Globals.numeroProdottiTutti = numProdottiTutti = Convert.ToInt32(sr.ReadLine());

                for (int i = 0; i < numProdottiTutti; i++)
                {
                    str       = sr.ReadLine();
                    split_vec = str.Split(new Char[] { ';' });

                    switch (Globals.Livello)
                    {
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                    case 6:

                        //  pFabbrica = Convert.ToDouble(Convert.ToInt16(Convert.ToDouble(split_vec[1])));
                        //  pNegozio = Convert.ToDouble(Convert.ToInt16(Convert.ToDouble(split_vec[2])));
                        pFabbrica = Convert.ToDouble((int)(Convert.ToDouble(split_vec[1])));
                        pNegozio  = Convert.ToDouble((int)(Convert.ToDouble(split_vec[2])));

                        break;

                    default:

                        pFabbrica = Convert.ToDouble(split_vec[1]);
                        pNegozio  = Convert.ToDouble(split_vec[2]);

                        break;
                    }

                    Globals.listProdottiTutti.Add(new Prodotto(split_vec[0], pFabbrica, pNegozio, Image.FromFile(Globals.prodottiPath + split_vec[3]), true));
                }
            }
            catch (Exception IOException)
            {
                Globals.numeroProdottiTutti = numProdottiTutti = Globals.Num_Prodotti_DEF;

                for (int i = 0; i < numProdottiTutti; i++)
                {
                    switch (Globals.Livello)
                    {
                    case 1:

                        pFabbrica = Convert.ToDouble((int)Globals.Prezzi_Fabbrica_DEF[i]);
                        pNegozio  = Convert.ToDouble((int)Globals.Prezzi_Negozio_DEF[i]);

                        break;

                    default:

                        pFabbrica = Globals.Prezzi_Fabbrica_DEF[i];
                        pNegozio  = Globals.Prezzi_Negozio_DEF[i];

                        break;
                    }

                    Globals.listProdottiTutti.Add(new Prodotto(Globals.Nomi_Prodotti_DEF[i], pFabbrica, pNegozio, Globals.Image_Prodotti_DEF[i], true));
                }
            }

            // Scegli 4 tipi di prodotti e riempi lista prodotti negozio

            int n1, n2, n3, n4;

            if (Globals.numeroProdottiTutti == 4)
            {
                n1 = 0;    n2 = 1;    n3 = 2;    n4 = 3;
            }
            else
            {
                n1 = Globals.global_rnd.Next(0, Globals.numeroProdottiTutti - 1);

                while (true)
                {
                    n2 = Globals.global_rnd.Next(0, Globals.numeroProdottiTutti - 1);
                    if (n2 != n1)
                    {
                        break;
                    }
                }

                while (true)
                {
                    n3 = Globals.global_rnd.Next(0, Globals.numeroProdottiTutti - 1);
                    if (n3 != n1 && n3 != n2)
                    {
                        break;
                    }
                }

                while (true)
                {
                    n4 = Globals.global_rnd.Next(0, Globals.numeroProdottiTutti - 1);
                    if (n4 != n1 && n4 != n2 && n4 != n3)
                    {
                        break;
                    }
                }
            }

// MessageBox.Show("n1 - n4 =  " + n1 + ", " + n2 + ", " + n3 + ", " + n4 + " "); // DEBUG


            prod = new Prodotto(Globals.listProdottiTutti[n1].nome,
                                Globals.listProdottiTutti[n1].prezzo_acquisto, Globals.listProdottiTutti[n1].prezzo_vendita,
                                Globals.listProdottiTutti[n1].immagine, Globals.listProdottiTutti[n1].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n1].nome,
                                Globals.listProdottiTutti[n1].prezzo_acquisto, Globals.listProdottiTutti[n1].prezzo_vendita,
                                Globals.listProdottiTutti[n1].immagine, Globals.listProdottiTutti[n1].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n1].nome,
                                Globals.listProdottiTutti[n1].prezzo_acquisto, Globals.listProdottiTutti[n1].prezzo_vendita,
                                Globals.listProdottiTutti[n1].immagine, Globals.listProdottiTutti[n1].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n1].nome,
                                Globals.listProdottiTutti[n1].prezzo_acquisto, Globals.listProdottiTutti[n1].prezzo_vendita,
                                Globals.listProdottiTutti[n1].immagine, Globals.listProdottiTutti[n1].venduto);
            Globals.listProdottiNegozio.Add(prod);

            prod = new Prodotto(Globals.listProdottiTutti[n2].nome,
                                Globals.listProdottiTutti[n2].prezzo_acquisto, Globals.listProdottiTutti[n2].prezzo_vendita,
                                Globals.listProdottiTutti[n2].immagine, Globals.listProdottiTutti[n2].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n2].nome,
                                Globals.listProdottiTutti[n2].prezzo_acquisto, Globals.listProdottiTutti[n2].prezzo_vendita,
                                Globals.listProdottiTutti[n2].immagine, Globals.listProdottiTutti[n2].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n2].nome,
                                Globals.listProdottiTutti[n2].prezzo_acquisto, Globals.listProdottiTutti[n2].prezzo_vendita,
                                Globals.listProdottiTutti[n2].immagine, Globals.listProdottiTutti[n2].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n2].nome,
                                Globals.listProdottiTutti[n2].prezzo_acquisto, Globals.listProdottiTutti[n2].prezzo_vendita,
                                Globals.listProdottiTutti[n2].immagine, Globals.listProdottiTutti[n2].venduto);
            Globals.listProdottiNegozio.Add(prod);

            prod = new Prodotto(Globals.listProdottiTutti[n3].nome,
                                Globals.listProdottiTutti[n3].prezzo_acquisto, Globals.listProdottiTutti[n3].prezzo_vendita,
                                Globals.listProdottiTutti[n3].immagine, Globals.listProdottiTutti[n3].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n3].nome,
                                Globals.listProdottiTutti[n3].prezzo_acquisto, Globals.listProdottiTutti[n3].prezzo_vendita,
                                Globals.listProdottiTutti[n3].immagine, Globals.listProdottiTutti[n3].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n3].nome,
                                Globals.listProdottiTutti[n3].prezzo_acquisto, Globals.listProdottiTutti[n3].prezzo_vendita,
                                Globals.listProdottiTutti[n3].immagine, Globals.listProdottiTutti[n3].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n3].nome,
                                Globals.listProdottiTutti[n3].prezzo_acquisto, Globals.listProdottiTutti[n3].prezzo_vendita,
                                Globals.listProdottiTutti[n3].immagine, Globals.listProdottiTutti[n3].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n3].nome,
                                Globals.listProdottiTutti[n3].prezzo_acquisto, Globals.listProdottiTutti[n3].prezzo_vendita,
                                Globals.listProdottiTutti[n3].immagine, Globals.listProdottiTutti[n3].venduto);

            prod = new Prodotto(Globals.listProdottiTutti[n4].nome,
                                Globals.listProdottiTutti[n4].prezzo_acquisto, Globals.listProdottiTutti[n4].prezzo_vendita,
                                Globals.listProdottiTutti[n4].immagine, Globals.listProdottiTutti[n4].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n4].nome,
                                Globals.listProdottiTutti[n4].prezzo_acquisto, Globals.listProdottiTutti[n4].prezzo_vendita,
                                Globals.listProdottiTutti[n4].immagine, Globals.listProdottiTutti[n4].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n4].nome,
                                Globals.listProdottiTutti[n4].prezzo_acquisto, Globals.listProdottiTutti[n4].prezzo_vendita,
                                Globals.listProdottiTutti[n4].immagine, Globals.listProdottiTutti[n4].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n4].nome,
                                Globals.listProdottiTutti[n4].prezzo_acquisto, Globals.listProdottiTutti[n4].prezzo_vendita,
                                Globals.listProdottiTutti[n4].immagine, Globals.listProdottiTutti[n4].venduto);
            Globals.listProdottiNegozio.Add(prod);
            prod = new Prodotto(Globals.listProdottiTutti[n4].nome,
                                Globals.listProdottiTutti[n4].prezzo_acquisto, Globals.listProdottiTutti[n4].prezzo_vendita,
                                Globals.listProdottiTutti[n4].immagine, Globals.listProdottiTutti[n4].venduto);

            Globals.numeroProdotti = 16;
        }
コード例 #4
0
ファイル: Mappa.cs プロジェクト: lukemols/Negozio_di_Viola
        private void riempiListeProdotti()
        {
            string str;
            string[] split_vec;

            double pFabbrica, pNegozio;

            int numProdottiTutti;

            Prodotto prod; 

            try
            {

  // MessageBox.Show("  " + Globals.prodottiPath + "Prodotti.txt" ); // DEBUG
                StreamReader sr = new StreamReader(Globals.prodottiPath + "Prodotti.txt");

	// Riempi lista Prodotti tutti
	
                Globals.numeroProdottiTutti = numProdottiTutti = Convert.ToInt32(sr.ReadLine());

                for (int i = 0; i < numProdottiTutti; i++)
                {
                    str = sr.ReadLine();
                    split_vec = str.Split(new Char[] { ';' });

                    switch (Globals.Livello)
                    {
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                        case 6:

                            //  pFabbrica = Convert.ToDouble(Convert.ToInt16(Convert.ToDouble(split_vec[1])));
                            //  pNegozio = Convert.ToDouble(Convert.ToInt16(Convert.ToDouble(split_vec[2])));
                            pFabbrica = Convert.ToDouble((int)(Convert.ToDouble(split_vec[1])));
                            pNegozio = Convert.ToDouble((int)(Convert.ToDouble(split_vec[2])));

                            break;

                        default:

                            pFabbrica = Convert.ToDouble(split_vec[1]);
                            pNegozio = Convert.ToDouble(split_vec[2]);

                            break;
                    }

                    Globals.listProdottiTutti.Add(new Prodotto(split_vec[0], pFabbrica, pNegozio, Image.FromFile(Globals.prodottiPath + split_vec[3]), true));

                }
            }
	    catch (Exception IOException)
            {
                Globals.numeroProdottiTutti = numProdottiTutti = Globals.Num_Prodotti_DEF;

                for (int i = 0; i < numProdottiTutti; i++)
                {
                    switch (Globals.Livello)
                    {
                        case 1:

                            pFabbrica = Convert.ToDouble((int)Globals.Prezzi_Fabbrica_DEF[i]);
                            pNegozio = Convert.ToDouble((int)Globals.Prezzi_Negozio_DEF[i]);

                            break;

                        default:

                            pFabbrica = Globals.Prezzi_Fabbrica_DEF[i];
                            pNegozio  = Globals.Prezzi_Negozio_DEF[i];

                            break;
                    }

                    Globals.listProdottiTutti.Add(new Prodotto(Globals.Nomi_Prodotti_DEF[i], pFabbrica, pNegozio, Globals.Image_Prodotti_DEF[i], true));
                }
            }

	// Scegli 4 tipi di prodotti e riempi lista prodotti negozio
	
		int n1, n2, n3, n4;

		if (Globals.numeroProdottiTutti == 4)
		{
                    n1 = 0;    n2 = 1;    n3 = 2;    n4 = 3;   
		}
		else
		{
                    n1 = Globals.global_rnd.Next(0, Globals.numeroProdottiTutti-1);

		    while (true)
		    {
		        n2 = Globals.global_rnd.Next(0, Globals.numeroProdottiTutti-1);
                        if(n2 != n1) break;
		    }

		    while (true)
		    {
		        n3 = Globals.global_rnd.Next(0, Globals.numeroProdottiTutti-1);
                        if(n3 != n1 && n3 != n2) break;
		    }

		    while (true)
		    {
		        n4 = Globals.global_rnd.Next(0, Globals.numeroProdottiTutti-1);
                        if(n4 != n1 && n4 != n2 && n4 != n3) break;
		    }
		}

// MessageBox.Show("n1 - n4 =  " + n1 + ", " + n2 + ", " + n3 + ", " + n4 + " "); // DEBUG


                prod = new Prodotto(Globals.listProdottiTutti[n1].nome, 
                                    Globals.listProdottiTutti[n1].prezzo_acquisto, Globals.listProdottiTutti[n1].prezzo_vendita, 
                                    Globals.listProdottiTutti[n1].immagine, Globals.listProdottiTutti[n1].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n1].nome, 
                                    Globals.listProdottiTutti[n1].prezzo_acquisto, Globals.listProdottiTutti[n1].prezzo_vendita, 
                                    Globals.listProdottiTutti[n1].immagine, Globals.listProdottiTutti[n1].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n1].nome, 
                                    Globals.listProdottiTutti[n1].prezzo_acquisto, Globals.listProdottiTutti[n1].prezzo_vendita, 
                                    Globals.listProdottiTutti[n1].immagine, Globals.listProdottiTutti[n1].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n1].nome, 
                                    Globals.listProdottiTutti[n1].prezzo_acquisto, Globals.listProdottiTutti[n1].prezzo_vendita, 
                                    Globals.listProdottiTutti[n1].immagine, Globals.listProdottiTutti[n1].venduto);
                Globals.listProdottiNegozio.Add(prod);

                prod = new Prodotto(Globals.listProdottiTutti[n2].nome, 
                                    Globals.listProdottiTutti[n2].prezzo_acquisto, Globals.listProdottiTutti[n2].prezzo_vendita, 
                                    Globals.listProdottiTutti[n2].immagine, Globals.listProdottiTutti[n2].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n2].nome, 
                                    Globals.listProdottiTutti[n2].prezzo_acquisto, Globals.listProdottiTutti[n2].prezzo_vendita, 
                                    Globals.listProdottiTutti[n2].immagine, Globals.listProdottiTutti[n2].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n2].nome, 
                                    Globals.listProdottiTutti[n2].prezzo_acquisto, Globals.listProdottiTutti[n2].prezzo_vendita, 
                                    Globals.listProdottiTutti[n2].immagine, Globals.listProdottiTutti[n2].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n2].nome, 
                                    Globals.listProdottiTutti[n2].prezzo_acquisto, Globals.listProdottiTutti[n2].prezzo_vendita, 
                                    Globals.listProdottiTutti[n2].immagine, Globals.listProdottiTutti[n2].venduto);
                Globals.listProdottiNegozio.Add(prod);

                prod = new Prodotto(Globals.listProdottiTutti[n3].nome, 
                                    Globals.listProdottiTutti[n3].prezzo_acquisto, Globals.listProdottiTutti[n3].prezzo_vendita, 
                                    Globals.listProdottiTutti[n3].immagine, Globals.listProdottiTutti[n3].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n3].nome, 
                                    Globals.listProdottiTutti[n3].prezzo_acquisto, Globals.listProdottiTutti[n3].prezzo_vendita, 
                                    Globals.listProdottiTutti[n3].immagine, Globals.listProdottiTutti[n3].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n3].nome, 
                                    Globals.listProdottiTutti[n3].prezzo_acquisto, Globals.listProdottiTutti[n3].prezzo_vendita, 
                                    Globals.listProdottiTutti[n3].immagine, Globals.listProdottiTutti[n3].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n3].nome, 
                                    Globals.listProdottiTutti[n3].prezzo_acquisto, Globals.listProdottiTutti[n3].prezzo_vendita, 
                                    Globals.listProdottiTutti[n3].immagine, Globals.listProdottiTutti[n3].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n3].nome, 
                                    Globals.listProdottiTutti[n3].prezzo_acquisto, Globals.listProdottiTutti[n3].prezzo_vendita, 
                                    Globals.listProdottiTutti[n3].immagine, Globals.listProdottiTutti[n3].venduto);

                prod = new Prodotto(Globals.listProdottiTutti[n4].nome, 
                                    Globals.listProdottiTutti[n4].prezzo_acquisto, Globals.listProdottiTutti[n4].prezzo_vendita, 
                                    Globals.listProdottiTutti[n4].immagine, Globals.listProdottiTutti[n4].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n4].nome, 
                                    Globals.listProdottiTutti[n4].prezzo_acquisto, Globals.listProdottiTutti[n4].prezzo_vendita, 
                                    Globals.listProdottiTutti[n4].immagine, Globals.listProdottiTutti[n4].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n4].nome, 
                                    Globals.listProdottiTutti[n4].prezzo_acquisto, Globals.listProdottiTutti[n4].prezzo_vendita, 
                                    Globals.listProdottiTutti[n4].immagine, Globals.listProdottiTutti[n4].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n4].nome, 
                                    Globals.listProdottiTutti[n4].prezzo_acquisto, Globals.listProdottiTutti[n4].prezzo_vendita, 
                                    Globals.listProdottiTutti[n4].immagine, Globals.listProdottiTutti[n4].venduto);
                Globals.listProdottiNegozio.Add(prod);
                prod = new Prodotto(Globals.listProdottiTutti[n4].nome, 
                                    Globals.listProdottiTutti[n4].prezzo_acquisto, Globals.listProdottiTutti[n4].prezzo_vendita, 
                                    Globals.listProdottiTutti[n4].immagine, Globals.listProdottiTutti[n4].venduto);

                Globals.numeroProdotti = 16;

        }