예제 #1
0
        /// <summary>
        /// Assignem les simpaties de tots els convidats
        /// </summary>
        private void assignarSimpaties()
        {
            Random r = new Random();
            int    simpatia;

            for (int person = 0; person < esc.Tp.NumPersones; person++)
            {
                for (int personaALaLlista = 0; personaALaLlista < esc.Tp.NumPersones; personaALaLlista++)
                {
                    if (esc.Tp.ElementAt(person).Nom != esc.Tp.ElementAt(personaALaLlista).Nom)
                    {
                        simpatia = r.Next(-5, 6);

                        if (!(esc.Tp.ElementAt(personaALaLlista) is Cambrer && !(esc.Tp.ElementAt(person) is Cambrer)))
                        {
                            // aplicar simpatia per cada persona contra totes les de la llista menys dels cambrers
                            if (esc.Tp.ElementAt(person) is Home)
                            {
                                Home h = esc.Tp.ElementAt(person) as Home;
                                h[esc.Tp.ElementAt(personaALaLlista).Nom] = simpatia;
                            }
                            else if (esc.Tp.ElementAt(person) is Dona)
                            {
                                Dona d = esc.Tp.ElementAt(person) as Dona;
                                d[esc.Tp.ElementAt(personaALaLlista).Nom] = simpatia;
                            }
                        }
                    }
                }
            }
        }
        private void ompleSimpaties()
        {
            TextBox simpatiaPersona;

            // Mostrem les simpaties de cada convidat anvers a totes les altres a la graella
            for (int i = 0; i < num_convidats; i++)
            {
                for (int j = 0; j < num_convidats; j++)
                {
                    if (j != i && !(esc.Tp.ElementAt(i) is Cambrer) && !(esc.Tp.ElementAt(j) is Cambrer))
                    {
                        simpatiaPersona = new TextBox();

                        simpatiaPersona.FontSize            = 16;
                        simpatiaPersona.FontWeight          = FontWeights.Bold;
                        simpatiaPersona.VerticalAlignment   = VerticalAlignment.Center;
                        simpatiaPersona.HorizontalAlignment = HorizontalAlignment.Center;

                        if (esc.Tp.ElementAt(i) is Home)
                        {
                            Home aux = (Home)esc.Tp.ElementAt(i);
                            simpatiaPersona.Text       = (aux[esc.Tp.ElementAt(j).Nom] + aux.PlusSexe).ToString();
                            simpatiaPersona.LostFocus += simpatiaPersona_LostFocus;
                        }
                        else if (esc.Tp.ElementAt(i) is Dona)
                        {
                            Dona aux = (Dona)esc.Tp.ElementAt(i);
                            simpatiaPersona.Text       = (aux[esc.Tp.ElementAt(j).Nom] + aux.PlusSexe).ToString();
                            simpatiaPersona.LostFocus += simpatiaPersona_LostFocus;
                        }

                        Grid.SetColumn(simpatiaPersona, j + 1);
                        Grid.SetRow(simpatiaPersona, i + 1);
                        grdGraella.Children.Add(simpatiaPersona);
                    }
                }
            }
        }
예제 #3
0
        private void CrearPersones()
        {
            Random r = new Random();
            int    sexe, fila, columna;
            string nomImatge;

            // Generem les dones
            for (int dona = 0; dona < num_dones; dona++)
            {
                // generem valors aleatòris
                fila    = r.Next(0, num_files);
                columna = r.Next(0, num_columnes);

                while (!esc.DestiValid(fila, columna))
                {
                    fila    = r.Next(0, num_files);
                    columna = r.Next(0, num_columnes);
                }

                sexe = r.Next(0, 4);

                // Assignem el nom de la imatge
                nomImatge = "/Fotos/Dones/" + imgDones[r.Next(0, imgDones.Length)];

                // Creem una nova dona i la col·loquem a l'escenari
                Dona d = new Dona(nomsDones[dona], sexe, nomImatge);
                d.Columna = columna;
                d.Fila    = fila;
                esc.posar(d);

                creaQuadre(nomImatge, d.Nom, d.Fila, d.Columna, 14);
            }

            // Generem els homes
            for (int home = 0; home < num_homes; home++)
            {
                // generem valors aleatòris
                fila    = r.Next(0, num_files);
                columna = r.Next(0, num_columnes);
                while (!esc.DestiValid(fila, columna))
                {
                    fila    = r.Next(0, num_files);
                    columna = r.Next(0, num_columnes);
                }
                sexe = r.Next(0, 4);

                // Assignem el nom de la imatge
                nomImatge = "/Fotos/Homes/" + imgHomes[r.Next(0, imgHomes.Length)];


                // Creem un nou home i la col·loquem a l'escenari
                Home h = new Home(nomsHomes[home], sexe, nomImatge);
                h.Columna = columna;
                h.Fila    = fila;
                esc.posar(h);

                creaQuadre(nomImatge, h.Nom, h.Fila, h.Columna, 14);
            }

            // Generem els cambrers
            for (int cambrer = 0; cambrer < num_cambrers; cambrer++)
            {
                // generem valors aleatòris
                fila    = r.Next(0, num_files);
                columna = r.Next(0, num_columnes);
                while (!esc.DestiValid(fila, columna))
                {
                    fila    = r.Next(0, num_files);
                    columna = r.Next(0, num_columnes);
                }

                nomImatge = "/Fotos/Cambrer/Camarero.png";

                // Creem un nou home i la col·loquem a l'escenari
                Cambrer c = new Cambrer(nomImatge);
                c.Columna = columna;
                c.Fila    = fila;
                esc.posar(c);

                creaQuadre(nomImatge, "*", c.Fila, c.Columna, 14);
            }

            // Acabem d'omplir les caselles amb stackpanel per permetre el drag&drop
            StackPanel sp;

            for (fila = 0; fila < num_files; fila++)
            {
                for (columna = 0; columna < num_columnes; columna++)
                {
                    if (esc[fila, columna].Buida)
                    {
                        sp            = new StackPanel();
                        sp.AllowDrop  = true;
                        sp.MouseDown += persona_MouseDown;
                        sp.DragEnter += persona_DragEnter;
                        sp.Drop      += persona_Drop;
                        sp.Background = new SolidColorBrush(Colors.Red);
                        sp.Opacity    = 0;
                        Grid.SetColumn(sp, columna);
                        Grid.SetRow(sp, fila);
                        grdEscenari.Children.Add(sp);
                    }
                }
            }
        }