Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
        private void wndGraella_Loaded(object sender, RoutedEventArgs e)
        {
            Random r = new Random();

            Escenari esc = CrearEscenari(r);


            CrearGraella(esc);
            MostrarSimpaties();
        }
Exemplo n.º 4
0
        /// <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();
        }
Exemplo n.º 5
0
        //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);
        }
Exemplo n.º 6
0
        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);
            //}
        }
Exemplo n.º 7
0
        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++;
                }
            }
        }