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