public WndEscenari(int nFiles, int nColumnes, int nDones, int nHomes, int nCambrers) { r = new Random(); escenari = new Escenari(nFiles, nColumnes); diccionariStacks = new Dictionary <string, StackPanel>(); escenari.Moguda += escenari_Moguda; EmplenaNomsDones(); EmplenaNomsHomes(); GeneraHomes(nHomes); GeneraDones(nDones); GeneraCambrers(nCambrers); InitializeComponent(); //ugPista.Rows = nFiles; // ugPista.Columns = nColumnes; GenerarPista(nFiles, nColumnes); GenerarSimpaties(); btnSimpaties.IsEnabled = false; gr = new Graella(escenari); gr.Tancar += gr_Tancar; gr.Show(); gr.Focusable = true; CrearEscenariGrafic(); }
public Graella(Escenari escenari) { InitializeComponent(); files = new Dictionary <string, int>(); columnes = new Dictionary <string, int>(); this.escenari = escenari; matriuSlots = new SlotGraella[escenari.Homes + escenari.Dones + 1, escenari.Homes + escenari.Dones + 1]; CrearGraella(escenari); }
private void wndGraella_Loaded(object sender, RoutedEventArgs e) { Random r = new Random(); Escenari esc = CrearEscenari(r); CrearGraella(esc); MostrarSimpaties(); }
/// <summary> /// Genera el procés de creació d'una graell nova sencera. Es crida al constructor. /// </summary> /// <param name="e"></param> private void CrearGraella(Escenari e) { // Empleno els noms de les files i de les columnes per els convidats amb un sol convidat a cada fila o a cada columna. EmplenaNomsFiles(); EmplenaNomsColumnes(); EmplenaSimpaties(); MostraGraella(); ConstrueixVisual(); }
//a partir daqui nomes serveix per crear l'escenari. en l'aplicacíó ja estara fet no caldra tornar-ho a fer aqui. private Escenari CrearEscenari(Random r) { Escenari esc = new Escenari(50, 50); List <Persona> persones = new List <Persona>(); Convidat conv = null; for (int i = 0; i < 30; i++) { int temp = r.Next(2); if (temp == 0) { Home h = new Home("Home" + i, r.Next(0, 3), r.Next(0, 8), r.Next(0, 8)); persones.Add(h); } else if (temp == 1) { Dona d = new Dona("Dona" + i, r.Next(0, 3), r.Next(0, 8), r.Next(0, 8)); persones.Add(d); } } foreach (Persona p in persones) { //Console.WriteLine(p); if (esc.DestiValid(p.Fila, p.Columna)) { esc.Posar(p); } } foreach (Persona p in esc.TaulaPersones.Gent.Values) { if (p is Convidat) { Convidat actual = (Convidat)p; foreach (Persona convidat in esc.TaulaPersones.Gent.Values) { if (convidat is Convidat && p != convidat) { Convidat llistat = (Convidat)convidat; actual.AfegirSimpatia(llistat.Nom, r.Next(-5, 6)); conv = actual; } } } } return(esc); }
static void Main(string[] args) { Escenari esc1 = new Escenari(NUM_FILES_ESCENARI, NUM_COLUMNES_ESCENARI); //Home antonio = new Home("antonio", 1); //Convidat maria = new Dona("maria", 2); //Home josep = new Home("josep", 2); ////Cambrer c1 = new Cambrer(); //Random rF; //Random rC; ////random de files i columnes //// Mostrem la posicio d'una persona de la taula ////tp1["antonio"].Fila = 2; ////tp1["antonio"].Columna = 12; ////Console.WriteLine("Files: " + esc1.Files + ", Columnes: " + esc1.Columnes); ////Console.WriteLine(tp1["antonio"].Nom + ": Columna -> "+ tp1["antonio"].Columna + ", Fila -> "+ tp1["antonio"].Fila); //// Col·loquem un cambrer ////c1.Fila = 4; c1.Columna = 5; ////esc1.posar(c1); //maria.Fila = 3; maria.Columna = 2; //esc1.posar(maria); //antonio.Fila = 1; antonio.Columna = 6; //esc1.posar(antonio); ////Console.WriteLine(c1.Nom); ////Direccio direccio = c1.OnVaig(esc1); //string[,] escStrings = esc1.ContingutNoms(); //antonio["maria"] = 5; //antonio["josep"] = 1; //maria["antonio"] = 5; //maria["josep"] = 1; //Direccio d = antonio.OnVaig(esc1); //Direccio d1 = maria.OnVaig(esc1); //int i = antonio["maria"]; //Console.WriteLine(maria.Fila + " " + maria.Columna + " " + antonio.Fila + " " + antonio.Columna); //for (int a = 0; a < 10; a++) //{ // esc1.Cicle(); // Console.WriteLine(maria.Fila + " " + maria.Columna+" "+antonio.Fila + " " + antonio.Columna); //} }
private void CrearGraella(Escenari e) { int actual = 1; Label lblPersonaActual; foreach (Persona p in e.TaulaPersones.Gent.Values) { if (p is Convidat) { //afageix una fila i una columna mes grdSimpaties.RowDefinitions.Add(new RowDefinition()); grdSimpaties.ColumnDefinitions.Add(new ColumnDefinition()); //per la fila //crea un nou label amb el nom de la persona i la posa al tag //posa la label dins la graella, la fila sempre sera 0 la columna anira canviant lblPersonaActual = new Label(); lblPersonaActual.Content = p.Nom; lblPersonaActual.Name = "lbl" + p.Nom + "fila"; lblPersonaActual.Tag = p; grdSimpaties.Children.Add(lblPersonaActual); lblPersonaActual.SetValue(Grid.RowProperty, 0); lblPersonaActual.SetValue(Grid.ColumnProperty, actual); //diccionari de files que conte el nom de la persona i la fila que li toca files.Add(p.Nom, actual); //per la columna //crea igualment una nova label amb el nom de la persona //posa la label dins la graella, la columna sempre sera 0 i la fila anira canviant lblPersonaActual = new Label(); lblPersonaActual.Content = p.Nom; grdSimpaties.Children.Add(lblPersonaActual); lblPersonaActual.Name = "lbl" + p.Nom + "columna"; lblPersonaActual.SetValue(Grid.RowProperty, actual); lblPersonaActual.SetValue(Grid.ColumnProperty, 0); //diccionari de columnes que conte el nom de la persona i la columna que li toca columnes.Add(p.Nom, actual); actual++; } } }