示例#1
0
        public void Fabrica_de_blocos_separa_os_blocos()
        {
            List<Bloco> blocos = FabricaBlocos.GerarBlocos("1010");

            var blocoEsperado = new Bloco(new Centena("1"), 2);

            Assert.AreEqual(blocoEsperado, blocos[0]);
        }
示例#2
0
    public void AdicionarObjeto(char tipo, int x, int y, int z)
    {
        Bloco toInstantiate;

        if (tipo == '9')
        {
            Vector3 posicaoInicial = new Vector3(x, y, z);
            kevin = Instantiate <Player>(kevinScript, new Vector3(-posicaoInicial.x * tamanho_x_bloco + posicaoInicial.z * tamanho_x_bloco, posicaoInicial.y * tamanho_y_bloco + posicaoInicial.x * tamanho_y_bloco / 2 + posicaoInicial.z * tamanho_y_bloco / 2, 0f), Quaternion.identity);
            kevin.Iniciar(true);
            kevin.DefinirRetorno(posicaoInicial);
            kevin.animator.SetTrigger("nascer");
            return;
        }
        else if (tipo == '6')
        {
            toInstantiate = blocos[1];
        }
        else if (tipo == '2')
        {
            toInstantiate = blocos[2];
        }
        else if (tipo == ':')
        {
            toInstantiate = blocos[3];
        }
        else if (tipo == ';')
        {
            toInstantiate = blocos[4];
        }
        else if (tipo == '3')
        {
            toInstantiate = blocos[5];
        }
        else if (tipo == '5')
        {
            toInstantiate = blocos[6];
        }
        else if (tipo == '=')
        {
            //Cobra
            toInstantiate = blocos[7];
        }
        else if (tipo == '>')
        {
            toInstantiate = blocos[8];
        }
        else if (tipo == '4')
        {
            //BlocoInfo
            toInstantiate = blocos[9];
        }
        else if (tipo == 'D')
        {
            //Desativado
            toInstantiate = blocos[0];
        }
        else if (tipo != '0')
        {
            //Padrao
            toInstantiate = blocos[0];
        }
        else
        {
            return;
        }

        Bloco instance = Instantiate(toInstantiate, new Vector3(-x * tamanho_x_bloco + z * tamanho_x_bloco, y * tamanho_y_bloco + x * tamanho_y_bloco / 2 + z * tamanho_y_bloco / 2, 0f), Quaternion.identity) as Bloco;

        Vector3 local = new Vector3(x, y, z);

        instance.iniciar(-x - z * columns + num_base + y * columns * matrixes, local, fase, true);

        if (tipo == '4')
        {
            ((BlocoInfo)instance).ReceberInfo("Touch with a single finger to move and use two fingers to enter and move blocks.");
        }

        if (tipo == 'D')
        {
            instance.Desativar();
        }

        instance.transform.SetParent(boardHolder);

        mapa.Add(local, instance);
    }
示例#3
0
        public string CreateDocumentFromFile(byte[] streamedFileContent)
        {
            try
            {
                var heigth = 2000 * 1.38;
                var btm    = _imageService.ResizeImage(Bitmap.FromStream(new MemoryStream(streamedFileContent)), 2000, (int)heigth);
                var client = ImageAnnotatorClient.Create();


                byte[] resizeImageEdit = _imageService.ImageToByteArray(btm);
                var    image           = Google.Cloud.Vision.V1.Image.FromBytes(resizeImageEdit);
                var    response        = client.DetectDocumentText(image);

                //Graphics.FromImage()

                var blocos         = new List <Bloco>();
                var boxesWords     = new List <Tuple <System.Drawing.PointF, System.Drawing.PointF, System.Drawing.PointF, System.Drawing.PointF> >();
                var boxesParagraph = new List <Tuple <System.Drawing.PointF, System.Drawing.PointF, System.Drawing.PointF, System.Drawing.PointF> >();
                var boxesBlock     = new List <Tuple <System.Drawing.PointF, System.Drawing.PointF, System.Drawing.PointF, System.Drawing.PointF> >();

                var cropBoxes = new CropBoxes();

                foreach (var page in response.Pages)
                {
                    foreach (var block in page.Blocks)
                    {
                        boxesBlock.Add(BoundigBoxToPoints(block.BoundingBox));
                        var bloco = new Bloco();

                        foreach (var paragraph in block.Paragraphs)
                        {
                            boxesParagraph.Add(BoundigBoxToPoints(paragraph.BoundingBox));
                            var paragrafo = new Paragrafo();

                            var texton1 = string.Empty;
                            var texton2 = string.Empty;
                            foreach (var word in paragraph.Words)
                            {
                                var wordBox = BoundigBoxToPoints(word.BoundingBox);
                                boxesWords.Add(wordBox);
                                string palavra = string.Join(string.Empty, word.Symbols.Select(x => x.Text));
                                var    field   = VerificarCampos(palavra, texton1, texton2);
                                cropBoxes.Push(field, wordBox);
                                texton2 = texton1;
                                texton1 = palavra;

                                paragrafo.Palavras.Add(palavra);
                            }

                            bloco.Paragrafos.Add(paragrafo);
                        }
                        blocos.Add(bloco);
                    }
                }
                cropBoxes.PopulateBoxes();
                var imageEdit = resizeImageEdit;

                // Salva a imagem no banco
                var attachmentID = this._documentosRepository.AttachFile(resizeImageEdit);
                var editID       = this._documentosRepository.AttachFile(imageEdit);

                Dictionary <DocumentField, string> cropedImages        = ExtractFields(cropBoxes, imageEdit);
                Dictionary <OptionsField, string>  cropedOptionsImages = ExtractOptionsFields(cropBoxes, imageEdit);

                var doc = new Document
                {
                    Status              = StatusDocumento.UPLOAD,
                    AttachmentId        = attachmentID.ToString(),
                    EditedId            = editID.ToString(),
                    DadosOriginais      = blocos.ToArray(),
                    CropedFields        = cropedImages,
                    CropedOptionsFields = cropedOptionsImages
                };

                ProcessarDadosOriginaisAsync(doc);

                // Cria documento
                doc = _documentosRepository.SalvarOuAtualizarDocumento(doc);

                //ProcessarDadosML(doc);
                AtualizarCamposSelecao(doc);
                //doc = _documentosRepository.AtualizarDocumentoAsync(doc).Result;

                if (doc != null && doc.Id != null)
                {
                    return(doc.Id);
                }
                return(ObjectId.Empty.ToString());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                throw;
            }
        }
示例#4
0
 public bool salva(Bloco bloco)
 {
     return
 }
示例#5
0
 public void cadastraBloco(Bloco bl)
 {
 }
示例#6
0
    // Start is called before the first frame update
    public string Code()
    {
        Bloco block = this.gameObject.GetComponent <Bloco>();

        return(block.ToCode());
    }
示例#7
0
        static void Main(string[] args)
        {
            Unidade uni = new Unidade {
                identificacao = "84"
            };
            Fornecedor forn = new Fornecedor();
            Condominio cond = new Condominio
            {
                nome            = "Reserva Tropical",
                dataInauguracao = DateTime.Now,
                proprietario    = "Lello Imobiliaria",
                cnpj            = "00001441445",
            };
            Area ar = new Area
            {
                id_area   = 6,
                nome      = "Piscina",
                descricao = "Piscina Infantil",
                capacMax  = 10,
                seAluga   = true,
                ativo     = true
            };
            Aviso av = new Aviso
            {
                titulo    = "Portão da garagem",
                descricao = "O portão vai ficar destavidado nos dias 30/11 e 31/11",
                cond      = cond,
            };
            Bloco bl = new Bloco
            {
                id_bloco = 1,
                nome     = "Flamboyant",
                cond     = cond,
            };
            ContaPagar cp = new ContaPagar
            {
                id_cp      = 1,
                valor      = 300,
                id_tipo    = 1,
                desc_conta = "Manutenção do portão",
                fornecedor = forn,
                condominio = cond,
            };
            ContaReceber cr = new ContaReceber
            {
                id_cr      = 1,
                valor      = 450,
                unidade    = uni,
                condominio = cond,
            };

            CondominioDAO objDAO = new CondominioDAO();


            /*CRIA*/


            List <Condominio> cd = objDAO.busca();

            //lstArea = objDAO.busca();
            /*ALTERA*/
            //areaDAO.altera(ar);

            /*BUSCA especifico*/

            foreach (Condominio obj in cd)
            {
                Console.WriteLine(obj.id_cond + "\n" + obj.nome + "\n" + obj.qtdBlocos);
            }
            Console.ReadKey();
        }
        // GET: Blockchain/Detalhes/5
        public ActionResult Detalhes(int id)
        {
            Bloco bloco = _servico.ObterBloco(id);

            return(View(bloco));
        }
示例#9
0
    public void SetSelected(string bloco)
    {
        Resultado.UltimoBlocoVisitado = string.Empty;
        Instrucoes = new Dictionary <Bloco, string>();
        bloco      = bloco.Remove(0, 6);
        var find = new Caminhos();

        LabelBlocoSelecionado = GameObject.Find("LabelBlocoSelecionado").GetComponent <Text>();

        locais = find.FindPath(bloco).Split('>');
        var   caminhos    = new List <string>();
        Bloco ultimoBloco = null;

        for (int i = 0; i < locais.Length - 1; i++)
        {
            var local        = RetornarLocal(locais[i]);
            var proximoLocal = RetornarLocal(locais[i + 1]);
            var caminhoX     = string.Empty;
            var caminhoY     = string.Empty;

            if (local.OrdemX > proximoLocal.OrdemX)
            {
                caminhoX = "ande para esquerda";
            }
            if (local.OrdemX < proximoLocal.OrdemX)
            {
                caminhoX = "ande para direita";
            }
            if (local.OrdemX == proximoLocal.OrdemX)
            {
                caminhoX = string.Empty;
            }

            if (local.OrdemY > proximoLocal.OrdemY)
            {
                caminhoY = "desça";
            }
            if (local.OrdemY < proximoLocal.OrdemY)
            {
                caminhoY = "suba";
            }
            if (local.OrdemY == proximoLocal.OrdemY)
            {
                caminhoY = string.Empty;
            }

            var conector = string.Empty;
            var str      = string.Empty;
            if (i + 1 == locais.Length - 1)
            {
                str         = $"para chegar no seu destino, o bloco {proximoLocal.Nome}";
                ultimoBloco = proximoLocal;
            }
            else
            {
                str = $"até chegar no bloco {proximoLocal.Nome}";
            }
            if (!string.IsNullOrEmpty(caminhoX) && !string.IsNullOrEmpty(caminhoY))
            {
                conector = " e ";
            }

            var texto = string.Empty;
            if (local.PontosReferencia.ContainsKey(proximoLocal))
            {
                texto = local.PontosReferencia.FirstOrDefault(p => p.Key == proximoLocal).Value + $" depois {(!string.IsNullOrEmpty(caminhoX) ? caminhoX : "ande")} {str}";
            }
            else
            {
                texto = $"{caminhoX}{conector}{caminhoY} " + str;
            }

            Instrucoes.Add(local, texto);
        }
        Instrucoes.Add(ultimoBloco, "Este é o seu destino!");
        var menu = new Menu();

        menu.ChangeScene(ScenesNames.Resultado);
    }
示例#10
0
        public Bloco ObterPorId(int id)
        {
            Bloco bloco = db.Blocos.Find(id);

            return(bloco);
        }
示例#11
0
 public void ValidaEditar(Bloco domain)
 {
     throw new NotImplementedException();
 }
示例#12
0
 public void Editar(Bloco bloco)
 {
     db.Entry(bloco).State = EntityState.Modified;
     db.SaveChanges();
 }
示例#13
0
        public Bloco Mostrar(int id)
        {
            Bloco bloco = db.Blocos.Find(id);

            return(bloco);
        }
示例#14
0
 public void Adicionar(Bloco bloco)
 {
     bloco.DataCadastro = DateTime.Now.ToLocalTime();
     db.Blocos.Add(bloco);
     db.SaveChanges();
 }
示例#15
0
        private void grdBloco_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            RegBlocoCad = new Bloco();

            if (grdBloco.Rows[e.RowIndex].Cells["BLOCO_ID"].Value.ToString() == "")
            {
                RegBlocoCad.BLOCO_ID = 0;
            }
            else
            {
                RegBlocoCad.BLOCO_ID = Convert.ToInt32(grdBloco.Rows[e.RowIndex].Cells["BLOCO_ID"].Value.ToString().Trim());
            }

            if (grdBloco.Rows[e.RowIndex].Cells["OBRA_ID"].Value.ToString() == "")
            {
                RegBlocoCad.OBRA_ID = 0;
            }
            else
            {
                RegBlocoCad.OBRA_ID = Convert.ToInt32(grdBloco.Rows[e.RowIndex].Cells["OBRA_ID"].Value.ToString());
            }

            RegBlocoCad.BLOCO = Convert.ToString(grdBloco.Rows[e.RowIndex].Cells["BLOCO"].Value);

            if (grdBloco.Rows[e.RowIndex].Cells["TIPO_ESTATO_ID"].Value.ToString() == "")
            {
                RegBlocoCad.TIPO_ESTATO_ID = 0;
            }
            else
            {
                RegBlocoCad.TIPO_ESTATO_ID = Convert.ToInt32(grdBloco.Rows[e.RowIndex].Cells["TIPO_ESTATO_ID"].Value.ToString());
            }

            if (grdBloco.Rows[e.RowIndex].Cells["TIPO_ATIVO_ID"].Value.ToString() == "")
            {
                RegBlocoCad.TIPO_ATIVO_ID = 0;
            }
            else
            {
                RegBlocoCad.TIPO_ATIVO_ID = Convert.ToInt32(grdBloco.Rows[e.RowIndex].Cells["TIPO_ATIVO_ID"].Value.ToString());
            }

            if (grdBloco.Rows[e.RowIndex].Cells["DATA_CAD"].Value.ToString() == "")
            {
                RegBlocoCad.DATA_CAD = DateTime.Now;
            }
            else
            {
                RegBlocoCad.DATA_CAD = Convert.ToDateTime(grdBloco.Rows[e.RowIndex].Cells["DATA_CAD"].Value.ToString());
            }

            RegBlocoCad.OBS = Convert.ToString(grdBloco.Rows[e.RowIndex].Cells["OBS"].Value);

            if (grdBloco.Rows[e.RowIndex].Cells["REPETICAO"].Value.ToString() == "")
            {
                RegBlocoCad.REPETICAO = 0;
            }
            else
            {
                RegBlocoCad.REPETICAO = Convert.ToInt32(grdBloco.Rows[e.RowIndex].Cells["REPETICAO"].Value.ToString());
            }

            RegBlocoCad.ALT = Convert.ToString(grdBloco.Rows[e.RowIndex].Cells["ALT"].Value);
            RegBlocoCad.CAD = Convert.ToString(grdBloco.Rows[e.RowIndex].Cells["CAD"].Value);

            if (grdBloco.Rows[e.RowIndex].Cells["ORDEM"].Value.ToString() == "")
            {
                RegBlocoCad.ORDEM = 0;
            }
            else
            {
                RegBlocoCad.ORDEM = Convert.ToInt32(grdBloco.Rows[e.RowIndex].Cells["ORDEM"].Value);
            }

            if (grdBloco.Rows[e.RowIndex].Cells["SICRONIZADO"].Value.ToString() == "")
            {
                RegBlocoCad.SICRONIZADO = 0;
            }
            else
            {
                RegBlocoCad.SICRONIZADO = Convert.ToInt32(grdBloco.Rows[e.RowIndex].Cells["SICRONIZADO"].Value.ToString());
            }

            if (grdBloco.Rows[e.RowIndex].Cells["SYCRBLOCO_ID"].Value.ToString() == "")
            {
                RegBlocoCad.SYCRBLOCO_ID = 0;
            }
            else
            {
                RegBlocoCad.SYCRBLOCO_ID = Convert.ToInt32(grdBloco.Rows[e.RowIndex].Cells["SYCRBLOCO_ID"].Value.ToString());
            }

            if (grdBloco.Rows[e.RowIndex].Cells["BLOCO_ID"].Value.ToString() != "0" && grdBloco.Rows[e.RowIndex].Cells["BLOCO_ID"].Value.ToString() != "")
            {
                alterarBloco        += 1;
                RegBlocoCad.DATA_ALT = DateTime.Now;
            }
            else
            {
                if (RegBlocoCad.BLOCO_ID == 0 && RegBlocoCad.BLOCO != "" && RegBlocoCad.BLOCO != null)
                {
                    grdBloco.Rows[e.RowIndex].Cells["OBRA_ID"].Value = grdObra.CurrentRow.Cells["OBRA_ID"].Value;
                    RegBlocoCad.OBRA_ID = Convert.ToInt32(grdObra.CurrentRow.Cells["OBRA_ID"].Value);

                    int auxBloco_Id;
                    auxBloco_Id = BlocoNeg.Inserir(dir, RegBlocoCad);

                    if (auxBloco_Id != 0)
                    {
                        grdBloco.Columns["BLOCO_ID"].ReadOnly = true;
                        RegBlocoCad = new Bloco();
                        grdBloco.Rows[e.RowIndex].Cells["BLOCO_ID"].Value = auxBloco_Id;
                    }
                }
            }
        }
示例#16
0
        static void Main(string[] args)
        {
            Fornecedor forn = new Fornecedor
            {
                id_fornecedor = 1
            };
            Condominio cond = new Condominio
            {
                id_cond         = 1,
                nome            = "Reserva Tropical",
                dataInauguracao = DateTime.Now,
                proprietario    = "Lello Imobiliaria",
                cnpj            = "00001441445",
            };
            Area ar = new Area
            {
                id_area   = 6,
                nome      = "Piscina",
                descricao = "Piscina Infantil",
                capacMax  = 10,
                seAluga   = true,
                ativo     = true
            };
            Aviso av = new Aviso
            {
                titulo    = "Portão da garagem",
                descricao = "O portão vai ficar destavidado nos dias 30/11 e 31/11",
                cond      = cond,
            };
            Bloco bl = new Bloco
            {
                id_bloco = 1,
                nome     = "Flamboyant",
                cond     = cond,
            };
            ContaPagar cp = new ContaPagar
            {
                id_cp      = 1,
                valor      = 300,
                id_tipo    = 1,
                desc_conta = "Manutenção do portão",
                fornecedor = forn,
                condominio = cond,
            };

            CondominioDAO objDAO = new CondominioDAO();
            Pessoa        ps     = new Pessoa
            {
                id_pessoa = 2,
                nome      = "Leila Almeida",
                cpf       = "00613465865",
                rg        = "075586241",
                data_nasc = Convert.ToDateTime("1959-09-22")
            };

            Unidade uni = new Unidade
            {
                identificacao = "84", bloco = bl, ativo = true, vagas = 3, proprietario = ps, id_unidade = 1
            };
            ContaReceber cr = new ContaReceber
            {
                id_cr      = 1,
                valor      = 450,
                unidade    = uni,
                condominio = cond,
            };
            Morador morador = new Morador()
            {
                nome      = "Carlos",
                rg        = "55555",
                cpf       = "11111111111",
                ativo     = true,
                data_nasc = DateTime.Now,
                unidade   = uni
            };

            Terceiro tcr = new Terceiro
            {
                id_terceiro = 2,
                servico     = "Limpeza",
                ativo       = true,
                id_pessoa   = 1,
                nome        = "Paulo Silva",
                cpf         = "22887730819",
                rg          = "381605851",
                id_servico  = 1,
                fornecedor  = forn
            };

            Obra ob = new Obra
            {
                id_obra             = 2,
                descricao_obra      = "Reforma da piscina",
                dt_inicio           = Convert.ToString(DateTime.Now),
                dt_previsao_termino = "2017-12-13",
                finalizada          = true,
                area         = ar,
                desc_tipo    = "Conserto",
                ativo        = true,
                id_tipo_obra = 1,
                cond         = cond,
                dt_termino   = Convert.ToDateTime("2017-12-15")
            };

            /*CRIA*/
            ObraDAO dao = new ObraDAO();

            //dao.cadastraObra(ob);

            /*ALTERA*/
            dao.altera((ob.dt_termino).ToString(), ob.finalizada, ob.id_obra);

            List <Obra> lstObj = dao.busca();

            //lstArea = objDAO.buscaT();


            /*BUSCA especifico*/

            foreach (Obra obj in lstObj)
            {
                Console.WriteLine(obj.id_obra.ToString() + " "
                                  + obj.descricao_obra + " "
                                  + obj.dt_inicio.ToString() + " "
                                  + obj.dt_previsao_termino.ToString() + " "
                                  + obj.finalizada.ToString() + " "
                                  + obj.dt_termino.ToString()
                                  );
                //Console.WriteLine(obj.id_pessoa.ToString() + " " + obj.nome + " " + obj.cpf + " "
                //                    + obj.rg + " " + obj.data_nasc + " " + obj.fornecedor.id_fornecedor.ToString()
                //                    + " " + obj.fornecedor.nomeEmpresa + " " + obj.id_servico.ToString()
                //                    + " " + obj.servico);
            }
            Console.ReadKey();
        }
示例#17
0
        public void sufixo_de_teste(string textoCentena, int ordem, string expected)
        {
            var bloco = new Bloco(new Centena(textoCentena), ordem);

            Assert.AreEqual(expected, ClasseNumerica.SufixoDe(bloco));
        }
示例#18
0
 public async Task <Bloco> Atualizar(Bloco blocoEntidade)
 {
     return(await _repositorioBase.Atualizar(blocoEntidade));
 }
示例#19
0
    private void motarEstrutura(Bloco est)
    {
        Debug.Log(sent);

        /*
         * VERIFICA QUAL E O TIPO DE BLOCO
         */
        if (est.nomedoBloco().Equals("enquanto"))
        {
            sent += est.nomedoBloco() + "(){";

            Debug.Log(est.meuPainel().GetComponentsInChildren <Bloco>().Length);
            foreach (Bloco obj in (est.meuPainel().GetComponentsInChildren <Bloco>()))
            {
                Debug.Log(obj.nomedoBloco());
                ordenador.Add(obj);
            }

            if (ordenador.Count > 0)
            {
                for (int i = ordenador.Count - 1; 0 <= i; i--)
                {
                    aVerificar.Add((Bloco)ordenador[i]);
                }
                ordenador.Clear();
            }
        }
        else if (est.nomedoBloco().Equals("se"))
        {
            sent += est.nomedoBloco();

            foreach (Bloco obj in (est.meuPainel().GetComponentsInChildren <Bloco>()))
            {
                ordenador.Add(obj);
            }

            if (ordenador.Count > 0)
            {
                for (int i = ordenador.Count - 1; 0 <= i; i--)
                {
                    aVerificar.Add((Bloco)ordenador[i]);
                }
                ordenador.Clear();
            }
            ;
            est.setBlocoVerificado(true);
        }
        else if (est.nomedoBloco().Equals("virgula"))
        {
            sent += "}";
            aVerificar.RemoveAt(aVerificar.Count - 1);
        }



        if (aVerificar.Count > 0)
        {
            bl = (Bloco)aVerificar[aVerificar.Count - 1];

            aVerificar.RemoveAt(aVerificar.Count - 1);
            if (!bl.nomedoBloco().Equals("var") && !bl.nomedoBloco().Equals("virgula"))
            {
                aVerificar.Add(blocoVirgular);//Adicionando um bloco quer dizer fecha virgular do enquanto;
            }
            motarEstrutura(bl);
        }
        else
        {
            Debug.Log("Teste=" + sent);
            aVerificar.Clear();
        }
    }
示例#20
0
 public async Task <Bloco> Criar(Bloco entidade)
 {
     return(await _repositorioBase.Criar(entidade));
 }
示例#21
0
    public bool Compile()
    {
        Bloco block = this.gameObject.GetComponent <Bloco>();

        return(block.Compile());
    }
示例#22
0
 public ActionResult Create(Bloco bloco)
 {
     genericDAL.Add(bloco);
     return(RedirectToAction("Index"));
 }
示例#23
0
 public void sufixo_de_teste(string textoCentena, int ordem, string expected)
 {
     var bloco = new Bloco(new Centena(textoCentena), ordem);
     Assert.AreEqual(expected, ClasseNumerica.SufixoDe(bloco));
 }
    void PopularLista()
    {
        blocos.Clear();
        Bloco A = new Bloco("A", -3, 0);
        Bloco B = new Bloco("B", -2, 0);
        Bloco C = new Bloco("C", -1, 0);
        Bloco D = new Bloco("D", 0, 0); // Exceção
        Bloco E = new Bloco("E", 0, 0);
        Bloco F = new Bloco("F", 1, 0);
        Bloco G = new Bloco("G", 2, 0);
        Bloco H = new Bloco("H", 3, 0);
        Bloco I = new Bloco("I", -2, 1);
        Bloco J = new Bloco("J", 4, 0);
        Bloco K = new Bloco("K", 6, 0);
        Bloco L = new Bloco("L", 4, -2);
        Bloco M = new Bloco("M", -2, -3);
        Bloco N = new Bloco("N", 5, -1);
        Bloco Q = new Bloco("Q", -4, 1);
        Bloco R = new Bloco("R", -3, 2);
        Bloco S = new Bloco("S", -2, 2);
        Bloco T = new Bloco("T", -1, 2);
        Bloco U = new Bloco("U", -6, 2);
        Bloco V = new Bloco("V", -5, 3);
        Bloco W = new Bloco("W", -4, 3);

        A.Vizinhos = new List <Bloco>()
        {
            B, M
        };
        B.Vizinhos = new List <Bloco>()
        {
            I, A, C
        };
        C.Vizinhos = new List <Bloco>()
        {
            I, B, D
        };
        E.Vizinhos = new List <Bloco>()
        {
            F
        };
        D.Vizinhos = new List <Bloco>()
        {
            C, F
        };
        F.Vizinhos = new List <Bloco>()
        {
            E, G
        };
        G.Vizinhos = new List <Bloco>()
        {
            F, H, J, L, N, K
        };
        I.Vizinhos = new List <Bloco>()
        {
            B, C, T, S, R, Q
        };
        T.Vizinhos = new List <Bloco>()
        {
            I, S, Q
        };
        S.Vizinhos = new List <Bloco>()
        {
            T, R, I, W, V, U, Q
        };
        R.Vizinhos = new List <Bloco>()
        {
            Q, S, I, U
        };
        Q.Vizinhos = new List <Bloco>()
        {
            I, R, S, T
        };
        U.Vizinhos = new List <Bloco>()
        {
            V, R
        };
        V.Vizinhos = new List <Bloco>()
        {
            U, W, S
        };
        W.Vizinhos = new List <Bloco>()
        {
            V, S
        };
        H.Vizinhos = new List <Bloco>()
        {
            G, J, L, N, K
        };
        J.Vizinhos = new List <Bloco>()
        {
            H, G, L, N, K
        };
        L.Vizinhos = new List <Bloco>()
        {
            H, G, J, N, K
        };
        N.Vizinhos = new List <Bloco>()
        {
            H, G, J, L, K
        };
        K.Vizinhos = new List <Bloco>()
        {
            H, G, J, L, N
        };
        M.Vizinhos = new List <Bloco>()
        {
            A
        };
        I.PontosReferencia = new Dictionary <Bloco, string>
        {
            { R, PontosDeReferencia.IParaRSTQ },
            { S, PontosDeReferencia.IParaRSTQ },
            { T, PontosDeReferencia.IParaRSTQ },
            { Q, PontosDeReferencia.IParaRSTQ },
            { A, PontosDeReferencia.IParaABC },
            { B, PontosDeReferencia.IParaABC },
            { C, PontosDeReferencia.IParaABC }
        };
        A.PontosReferencia.Add(M, PontosDeReferencia.AParaM);

        B.PontosReferencia.Add(I, PontosDeReferencia.BParaI);

        C.PontosReferencia.Add(F, PontosDeReferencia.CParaF);
        C.PontosReferencia.Add(I, PontosDeReferencia.CParaI);

        M.PontosReferencia.Add(A, PontosDeReferencia.MParaA);

        R.PontosReferencia.Add(Q, PontosDeReferencia.RParaQ);
        R.PontosReferencia.Add(U, PontosDeReferencia.RParaU);

        U.PontosReferencia.Add(R, PontosDeReferencia.UParaR);

        S.PontosReferencia.Add(Q, PontosDeReferencia.STParaQ);

        T.PontosReferencia.Add(Q, PontosDeReferencia.STParaQ);

        Q.PontosReferencia.Add(R, PontosDeReferencia.QParaRST);
        Q.PontosReferencia.Add(S, PontosDeReferencia.QParaRST);
        Q.PontosReferencia.Add(T, PontosDeReferencia.QParaRST);

        F.PontosReferencia.Add(C, PontosDeReferencia.FParaC);

        blocos.AddRange(new[] { A, B, C, D, E, F, G, H, I, J, K, L, M, N, Q, R, S, T, U, V, W });
    }