public override void executaAcao() { personagem.apagaRotas(); if (Controle.clicouNoNada()) { if (personagem.anda(Metodos.getPosicaoMouseNaGrid())) { novoEstado(); } else { voltaEstado(); } } else { personagem.mudaBox(); if (Controle.getClicado2() != null && BuscaLargura.buscaOrientada(personagem.toPasso(), Controle.getClicado2().toPasso(), personagem.alcance)) { if (Controle.getClicado2().setMensagem(personagem)) { Controle.reiniciaClicados(); finaliza(); } } else { voltaEstado(); } personagem.mudaBox(); } }
// Use this for initialization void Start() { if (Fluxo.tipoJogo == 1) { maquina = new Maquina(); } if (Fluxo.tipoJogo == 2) { conexao = new Conexao(); cliente = new ClienteP2P(); servidor = new ServidorP2P(); } turno = 1; mudaTurno(false); BuscaLargura.init(prefab, solido); }
public override void executaAcao() { if (!Controle.clicouNoNada()) { personagem.mudaBox(); if (Controle.getClicado2() != null && BuscaLargura.buscaOrientada(personagem.toPasso(), Controle.getClicado2().toPasso(), personagem.alcance)) { if (Controle.getClicado2().setMensagem(personagem)) { Controle.reiniciaClicados(); novoEstado(); } } else { voltaEstado(); } personagem.mudaBox(); } }
private static void AdicionarConjuntoTestes(ref StringBuilder resposta, ConjuntoTeste conjuntoTeste) { resposta.AppendLine($"Teste {conjuntoTeste.Numero}"); List <string> autores = null; try { var inicial = conjuntoTeste.IndiceAutores[NOME_ERDOS]; var buscaLargura = new BuscaLargura(conjuntoTeste.Grafo, inicial); autores = conjuntoTeste.IndiceAutores.Keys.ToList(); autores.Remove(NOME_ERDOS); OrdernarAutores(ref autores); foreach (var autor in autores) { string numeroErdos = RetornarNumeroErdos(buscaLargura, conjuntoTeste.IndiceAutores[autor]); resposta.AppendLine($"{autor}: {numeroErdos}"); } } catch (KeyNotFoundException) { autores = conjuntoTeste.IndiceAutores.Keys.ToList(); OrdernarAutores(ref autores); foreach (var autor in autores) { resposta.AppendLine($"{autor}: {ERDOS_INFINITO}"); } } finally { resposta.AppendLine(); } }
private static string RetornarNumeroErdos(BuscaLargura buscaLargura, int indiceAutor) { int numeroErdos = buscaLargura.DistanciaPara[indiceAutor]; return(numeroErdos == -1 ? ERDOS_INFINITO : numeroErdos.ToString()); }
public void mostraRota(int mov) { BuscaLargura.busca(new Passo((int)transform.position.x, (int)transform.position.y), mov); }
static void Main(string[] args) { //----------------------------------------------------------------- // EstadoAspiradorDePo //----------------------------------------------------------------- /* * EstadoAspiradorDePo inicial = new EstadoAspiradorDePo(EstadoAspiradorDePo.SUJO, EstadoAspiradorDePo.SUJO, EstadoAspiradorDePo.DIREITA, "Inicial"); * No resultado; * * Console.WriteLine(inicial.Descricao); * * Console.WriteLine(); * BuscaLargura buscaLargura = new BuscaLargura(); * resultado = buscaLargura.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em largura"); * } else { * Console.WriteLine("Busca em largura (" + buscaLargura.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidade buscaProfundidade = new BuscaProfundidade(); * resultado = buscaProfundidade.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade"); * } else { * Console.WriteLine("Busca em profundidade (" + buscaProfundidade.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidadeRecursiva buscaProfundidadeRecursiva = new BuscaProfundidadeRecursiva(); * resultado = buscaProfundidadeRecursiva.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade recursiva"); * } else { * Console.WriteLine("Busca em profundidade recursiva (" + buscaProfundidadeRecursiva.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidadeIterativa buscaProfundidadeIterativa = new BuscaProfundidadeIterativa(); * resultado = buscaProfundidadeIterativa.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade iterativa"); * } else { * Console.WriteLine("Busca em profundidade iterativa (" + buscaProfundidadeIterativa.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } */ //----------------------------------------------------------------- // EstadoAspiradorDePoGrande //----------------------------------------------------------------- /* * int[] quartosIniciais = new int[EstadoAspiradorDePoGrande.TAMANHO]; * for (int i = 0; i < EstadoAspiradorDePoGrande.TAMANHO; i++) { * quartosIniciais[i] = EstadoAspiradorDePoGrande.SUJO; * } * * EstadoAspiradorDePoGrande inicial = new EstadoAspiradorDePoGrande(quartosIniciais, EstadoAspiradorDePoGrande.TAMANHO / 2, "Inicial"); * No resultado; * * Console.WriteLine(inicial.Descricao); * * Console.WriteLine(); * BuscaHeuristicaAEstrela buscaHeuristicaAEstrela = new BuscaHeuristicaAEstrela(); * resultado = buscaHeuristicaAEstrela.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca heuristica A*"); * } else { * Console.WriteLine("Busca heuristica A* (" + buscaHeuristicaAEstrela.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaHeuristicaSubidaDaMontanha buscaHeuristicaSubidaDaMontanha = new BuscaHeuristicaSubidaDaMontanha(); * resultado = buscaHeuristicaSubidaDaMontanha.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca heuristica subida da montanha"); * } else { * Console.WriteLine("Busca heuristica subida da montanha (" + buscaHeuristicaSubidaDaMontanha.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaLargura buscaLargura = new BuscaLargura(); * resultado = buscaLargura.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em largura"); * } else { * Console.WriteLine("Busca em largura (" + buscaLargura.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidade buscaProfundidade = new BuscaProfundidade(); * resultado = buscaProfundidade.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade"); * } else { * Console.WriteLine("Busca em profundidade (" + buscaProfundidade.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidadeRecursiva buscaProfundidadeRecursiva = new BuscaProfundidadeRecursiva(); * resultado = buscaProfundidadeRecursiva.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade recursiva"); * } else { * Console.WriteLine("Busca em profundidade recursiva (" + buscaProfundidadeRecursiva.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidadeIterativa buscaProfundidadeIterativa = new BuscaProfundidadeIterativa(); * resultado = buscaProfundidadeIterativa.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade iterativa"); * } else { * Console.WriteLine("Busca em profundidade iterativa (" + buscaProfundidadeIterativa.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } */ //----------------------------------------------------------------- // EstadoHLAC //----------------------------------------------------------------- EstadoHLAC inicial = new EstadoHLAC(EstadoHLAC.MARGEM_INICIAL, EstadoHLAC.MARGEM_INICIAL, EstadoHLAC.MARGEM_INICIAL, EstadoHLAC.MARGEM_INICIAL, "Inicial"); No resultado; Console.WriteLine(inicial.Descricao); Console.WriteLine(); BuscaHeuristicaAEstrela buscaHeuristicaAEstrela = new BuscaHeuristicaAEstrela(); resultado = buscaHeuristicaAEstrela.Buscar(inicial); if (resultado == null) { Console.WriteLine("Sem solucao para busca heuristica A*"); } else { Console.WriteLine("Busca heuristica A* (" + buscaHeuristicaAEstrela.Status.NosVisitados + "): " + resultado.MontarCaminho()); } Console.WriteLine(); /*BuscaHeuristicaSubidaDaMontanha buscaHeuristicaSubidaDaMontanha = new BuscaHeuristicaSubidaDaMontanha(); * resultado = buscaHeuristicaSubidaDaMontanha.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca heuristica subida da montanha"); * } else { * Console.WriteLine("Busca heuristica subida da montanha (" + buscaHeuristicaSubidaDaMontanha.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } */ Console.WriteLine(); BuscaLargura buscaLargura = new BuscaLargura(); resultado = buscaLargura.Buscar(inicial); if (resultado == null) { Console.WriteLine("Sem solucao para busca em largura"); } else { Console.WriteLine("Busca em largura (" + buscaLargura.Status.NosVisitados + "): " + resultado.MontarCaminho()); } Console.WriteLine(); BuscaProfundidade buscaProfundidade = new BuscaProfundidade(); resultado = buscaProfundidade.Buscar(inicial); if (resultado == null) { Console.WriteLine("Sem solucao para busca em profundidade"); } else { Console.WriteLine("Busca em profundidade (" + buscaProfundidade.Status.NosVisitados + "): " + resultado.MontarCaminho()); } Console.WriteLine(); BuscaProfundidadeRecursiva buscaProfundidadeRecursiva = new BuscaProfundidadeRecursiva(); resultado = buscaProfundidadeRecursiva.Buscar(inicial); if (resultado == null) { Console.WriteLine("Sem solucao para busca em profundidade recursiva"); } else { Console.WriteLine("Busca em profundidade recursiva (" + buscaProfundidadeRecursiva.Status.NosVisitados + "): " + resultado.MontarCaminho()); } Console.WriteLine(); BuscaProfundidadeIterativa buscaProfundidadeIterativa = new BuscaProfundidadeIterativa(); resultado = buscaProfundidadeIterativa.Buscar(inicial); if (resultado == null) { Console.WriteLine("Sem solucao para busca em profundidade iterativa"); } else { Console.WriteLine("Busca em profundidade iterativa (" + buscaProfundidadeIterativa.Status.NosVisitados + "): " + resultado.MontarCaminho()); } //----------------------------------------------------------------- // EstadoMissionarioCanibal //----------------------------------------------------------------- /*EstadoMissionarioCanibal inicial = new EstadoMissionarioCanibal(3, 3, EstadoMissionarioCanibal.MARGEM_INICIAL, "Inicial"); * No resultado; * * Console.WriteLine(inicial.Descricao); * * Console.WriteLine(); * BuscaHeuristicaAEstrela buscaHeuristicaAEstrela = new BuscaHeuristicaAEstrela(); * resultado = buscaHeuristicaAEstrela.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca heuristica A*"); * } else { * Console.WriteLine("Busca heuristica A* (" + buscaHeuristicaAEstrela.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaHeuristicaSubidaDaMontanha buscaHeuristicaSubidaDaMontanha = new BuscaHeuristicaSubidaDaMontanha(); * resultado = buscaHeuristicaSubidaDaMontanha.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca heuristica subida da montanha"); * } else { * Console.WriteLine("Busca heuristica subida da montanha (" + buscaHeuristicaSubidaDaMontanha.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaLargura buscaLargura = new BuscaLargura(); * resultado = buscaLargura.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em largura"); * } else { * Console.WriteLine("Busca em largura (" + buscaLargura.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidade buscaProfundidade = new BuscaProfundidade(); * resultado = buscaProfundidade.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade"); * } else { * Console.WriteLine("Busca em profundidade (" + buscaProfundidade.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidadeRecursiva buscaProfundidadeRecursiva = new BuscaProfundidadeRecursiva(); * resultado = buscaProfundidadeRecursiva.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade recursiva"); * } else { * Console.WriteLine("Busca em profundidade recursiva (" + buscaProfundidadeRecursiva.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidadeIterativa buscaProfundidadeIterativa = new BuscaProfundidadeIterativa(); * resultado = buscaProfundidadeIterativa.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade iterativa"); * } else { * Console.WriteLine("Busca em profundidade iterativa (" + buscaProfundidadeIterativa.Status.NosVisitados + "): " + resultado.MontarCaminho()); * }*/ //----------------------------------------------------------------- // EstadoRainha //----------------------------------------------------------------- /*EstadoRainha inicial = new EstadoRainha("Inicial"); * No resultado; * * Console.WriteLine(inicial.Descricao); * * Console.WriteLine(); * BuscaHeuristicaAEstrela buscaHeuristicaAEstrela = new BuscaHeuristicaAEstrela(); * resultado = buscaHeuristicaAEstrela.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca heuristica A*"); * } else { * Console.WriteLine("Busca heuristica A* (" + buscaHeuristicaAEstrela.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaHeuristicaSubidaDaMontanha buscaHeuristicaSubidaDaMontanha = new BuscaHeuristicaSubidaDaMontanha(); * resultado = buscaHeuristicaSubidaDaMontanha.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca heuristica subida da montanha"); * } else { * Console.WriteLine("Busca heuristica subida da montanha (" + buscaHeuristicaSubidaDaMontanha.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * // TODAS AS BUSCAS SEM HEURÍSTICA OU NÃO RESOLVEM, OU DEMORAM * // *MUITO* PARA RESOLVER! * * //Console.WriteLine(); * //BuscaLargura buscaLargura = new BuscaLargura(); * //resultado = buscaLargura.Buscar(inicial); * //if (resultado == null) { * // Console.WriteLine("Sem solucao para busca em largura"); * //} else { * // Console.WriteLine("Busca em largura (" + buscaLargura.Status.NosVisitados + "): " + resultado.MontarCaminho()); * //} * * //Console.WriteLine(); * //BuscaProfundidade buscaProfundidade = new BuscaProfundidade(); * //resultado = buscaProfundidade.Buscar(inicial); * //if (resultado == null) { * // Console.WriteLine("Sem solucao para busca em profundidade"); * //} else { * // Console.WriteLine("Busca em profundidade (" + buscaProfundidade.Status.NosVisitados + "): " + resultado.MontarCaminho()); * //} * * //Console.WriteLine(); * //BuscaProfundidadeRecursiva buscaProfundidadeRecursiva = new BuscaProfundidadeRecursiva(); * //resultado = buscaProfundidadeRecursiva.Buscar(inicial); * //if (resultado == null) { * // Console.WriteLine("Sem solucao para busca em profundidade recursiva"); * //} else { * // Console.WriteLine("Busca em profundidade recursiva (" + buscaProfundidadeRecursiva.Status.NosVisitados + "): " + resultado.MontarCaminho()); * //} * * //Console.WriteLine(); * //BuscaProfundidadeIterativa buscaProfundidadeIterativa = new BuscaProfundidadeIterativa(); * //resultado = buscaProfundidadeIterativa.Buscar(inicial); * //if (resultado == null) { * // Console.WriteLine("Sem solucao para busca em profundidade iterativa"); * //} else { * // Console.WriteLine("Busca em profundidade iterativa (" + buscaProfundidadeIterativa.Status.NosVisitados + "): " + resultado.MontarCaminho()); * //}*/ //----------------------------------------------------------------- // EstadoMapa //----------------------------------------------------------------- /*// vamos traçar uma rota da cidade 8 para a cidade 15 (se for possível) * EstadoMapa.CidadeFinal = EstadoMapa.Mapa.GetVertice(15); * EstadoMapa inicial = new EstadoMapa(EstadoMapa.Mapa.GetVertice(8), 0); * No resultado; * * Console.WriteLine(inicial.Descricao); * * Console.WriteLine(); * BuscaHeuristicaAEstrela buscaHeuristicaAEstrela = new BuscaHeuristicaAEstrela(); * resultado = buscaHeuristicaAEstrela.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca heuristica A*"); * } else { * Console.WriteLine("Busca heuristica A* (" + buscaHeuristicaAEstrela.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaHeuristicaSubidaDaMontanha buscaHeuristicaSubidaDaMontanha = new BuscaHeuristicaSubidaDaMontanha(); * resultado = buscaHeuristicaSubidaDaMontanha.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca heuristica subida da montanha"); * } else { * Console.WriteLine("Busca heuristica subida da montanha (" + buscaHeuristicaSubidaDaMontanha.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaLargura buscaLargura = new BuscaLargura(); * resultado = buscaLargura.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em largura"); * } else { * Console.WriteLine("Busca em largura (" + buscaLargura.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidade buscaProfundidade = new BuscaProfundidade(); * resultado = buscaProfundidade.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade"); * } else { * Console.WriteLine("Busca em profundidade (" + buscaProfundidade.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidadeRecursiva buscaProfundidadeRecursiva = new BuscaProfundidadeRecursiva(); * resultado = buscaProfundidadeRecursiva.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade recursiva"); * } else { * Console.WriteLine("Busca em profundidade recursiva (" + buscaProfundidadeRecursiva.Status.NosVisitados + "): " + resultado.MontarCaminho()); * } * * Console.WriteLine(); * BuscaProfundidadeIterativa buscaProfundidadeIterativa = new BuscaProfundidadeIterativa(); * resultado = buscaProfundidadeIterativa.Buscar(inicial); * if (resultado == null) { * Console.WriteLine("Sem solucao para busca em profundidade iterativa"); * } else { * Console.WriteLine("Busca em profundidade iterativa (" + buscaProfundidadeIterativa.Status.NosVisitados + "): " + resultado.MontarCaminho()); * }*/ Console.ReadKey(); }