Ejemplo n.º 1
0
        private void montarTeste()
        {
            Caixa a1 = new Caixa();
            Caixa a2 = new Caixa();
            Caixa a3 = new Caixa();
            Caixa a4 = new Caixa();
            Caixa a5 = new Caixa();
            Caixa a6 = new Caixa();
            Caixa a7 = new Caixa();


            a1.filhos.Add(a2);
            a1.filhos.Add(a3);

            a3.filhos.Add(a4);
            a3.filhos.Add(a5);

            a2.filhos.Add(a6);
            a2.filhos.Add(a7);

            a1.msg = "Ianez";
            a2.msg = "Débora";
            a3.msg = "Samarinha";

            a4.msg = "Netinho";
            a5.msg = "Gabriel";

            a6.msg = "Feijão";
            a7.msg = "Arroz";

            Caixa caixa = new Caixa();

            caixa.msg = "Ana";
            caixa.filhos.Add(a1);

            Montar(caixa);
        }
Ejemplo n.º 2
0
        public void Montar(Caixa mae)
        {
            Grupo++;
            List <Caixa> volta      = new List <Caixa>();
            Caixa        pai        = mae;
            Boolean      voltando   = false;
            int          ogrupo     = 0;
            int          altura_pai = 0;
            int          c          = 0;

            while (true)
            {
                if (!voltando)
                {
                    ogrupo = Grupo;
                }

                G_altura[ogrupo] += C_altura + 10;

                if (G_altura[ogrupo] < altura_pai)
                {
                    G_altura[ogrupo] = altura_pai;
                }

                dynamic novo = MontarCaixa(pai.msg);
                pai.feito = true;
                Canvas.SetTop(novo, G_altura[ogrupo]);
                Canvas.SetLeft(novo, 110 * ogrupo);
                pai.meugrupo = ogrupo;
                pai.id       = c;
                if (pai.filhos.Count > 1)
                {
                    volta.Add(pai);
                }
                c++;
                if (pai.filhos.Count > 0)
                {
                    altura_pai = G_altura[ogrupo];
                    if (!voltando)
                    {
                        Grupo++;
                    }
                    else
                    {
                        ogrupo = pai.meugrupo + 1;
                        if (ogrupo > Grupo)
                        {
                            Grupo++;
                        }
                    }

                    pai = pai.filhos[0];
                }
                else
                {
                    if (volta.Count > 0)
                    {
                        for (int b = 0; b < volta.Count; b++)
                        {
                            Boolean deletar = true;
                            for (int a = 0; a < volta[0].filhos.Count; a++)
                            {
                                if (volta[0].filhos[a].feito == false)
                                {
                                    deletar    = false;
                                    pai        = volta[0].filhos[a];
                                    voltando   = true;
                                    altura_pai = G_altura[volta[0].meugrupo];
                                    ogrupo     = volta[0].meugrupo + 1;
                                    break;
                                }
                            }
                            if (deletar)
                            {
                                volta.RemoveAt(0);
                            }
                            else
                            {
                                break;
                            }
                            b = -1;
                        }
                        if (volta.Count == 0)
                        {
                            break;
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }