Exemplo n.º 1
0
        /// <summary>
        /// Event que actualitza el valor quan es perd el focus, evalua si el valor ha canviat i si és vàlid.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CanviValor(TextBox tb)
        {
            // REcopero el textbox
            //TextBox tb = (TextBox)e.Source;
            //Si s'ha actualitzat el valor algun cop i els valors son diferents.
            if (valor != default(int))
            {
                //Recopero la fila i la columna on està
                int fila    = (int)tb.GetValue(Grid.RowProperty);
                int columna = (int)tb.GetValue(Grid.ColumnProperty);
                // Recopero els tius dins de la fila i la columna.
                Convidat cFila    = matriuSlots[fila, 0].ConvidatFila;
                Convidat cColumna = matriuSlots[0, columna].ConvidatColumna;
                //Actualitzo els valors dels convidats utilitzant el valor nou.
                if (cFila == cColumna)
                {
                    cFila.PlusSexe = valor;
                }
                else
                {
                    cFila[cColumna.Nom] = valor;
                }
            }

            MostraGraella();
        }
Exemplo n.º 2
0
        /********************************
         * Mètodes
         */
        /// <summary>
        /// Retorna un valor resultant a sumar la simpatia de la persona amb el seu plus de sexe.
        /// </summary>
        /// <param name="actual"></param>
        /// <param name="agrada"></param>
        /// <returns></returns>
        public static int CalculaSimpatia(Convidat actual, Convidat agrada)
        {
            //provem sense el plus sexe aviam si queda mes clar on van per debugar
            int total = actual[agrada.Nom];

            //if ((actual.EsHome() && !agrada.EsHome()) || (!actual.EsHome() && agrada.EsHome()))
            //total += actual.PlusSexe;
            return(total);
        }
Exemplo n.º 3
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.º 4
0
 public SlotGraella(Convidat conv, bool esFila)
 {
     if (esFila)
     {
         this.ConvidatFila    = conv;
         this.ConvidatColumna = null;
     }
     else
     {
         this.ConvidatColumna = conv;
         this.ConvidatFila    = null;
     }
 }
Exemplo n.º 5
0
 /// <summary>
 /// Afegeix totes les simpaties
 ///
 /// </summary>
 private void GenerarSimpaties()
 {
     foreach (Persona p in escenari.TaulaPersones)
     {
         if (p.EsConvidat())
         {
             Convidat actual = (Convidat)p;
             foreach (Persona convidat in escenari.TaulaPersones)
             {
                 if (convidat.EsConvidat() && p != convidat)
                 {
                     Convidat llistat = (Convidat)convidat;
                     actual.AfegirSimpatia(llistat.Nom, r.Next(-5, 6));
                 }
             }
         }
     }
 }
Exemplo n.º 6
0
 /********************************
  * Constructors
  */
 public SlotGraella(Convidat fila, Convidat columna)
 {
     this.ConvidatFila    = fila;
     this.ConvidatColumna = columna;
 }
Exemplo n.º 7
0
 /// <summary>
 /// Retorna el plus de sexe d'un convidat en concret.
 /// </summary>
 /// <param name="c"></param>
 /// <returns></returns>
 public string ExtreuPlusSexe(Convidat c)
 {
     return(c.PlusSexe.ToString());
 }