/// <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); } } } }
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); } } } }