コード例 #1
0
  public static void main(String[] args) {
    AgentModel ab = new AgentModel();

    ab.addAction("Atravessar 2 canibais", new AtravessarDoisCanibais());
    ab.addAction("Atravessar 2 missionarios", new AtravessarDoisMissionarios());
    ab.addAction("Atravessar 1 canibal", new AtravessarUmCanibal());
    ab.addAction("Atravessar 1 missionario", new AtravessarUmMissionario());
    ab.addAction("Atravessar 1 missionario e 1 canibal", new AtravessarUmMissionarioUmCanibal());

    /**
     * Cria o estado inicial Com a posição do barco e o numero de canibais e missionarios nas
     * margens.
     */
    Estado inicial = new Estado();
    inicial.setBarcoPosicao(Estado.BARCO_ESQUERDA);
    inicial.setQtdCanibaisEsquerda(3);
    inicial.setQtdMissionariosEsquerda(3);
    ab.setInitState(inicial);

    Estado objetivo = new Estado();
    objetivo.setQtdCanibaisDireita(3);
    objetivo.setQtdMissionariosDireita(3);
    objetivo.setBarcoPosicao(Estado.BARCO_DIREITA);

    ab.addObjective(objetivo);

    ab.setFunctions(new Funcoes());

    ab.setType(IAgent.BREADTH_FIRST_SEARCH);

    IAgent agente = AgentFactory.createAgent(ab);

    INode nofinal = null;
    try {
      nofinal = agente.function();
    } catch (EmptyBorderException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    // List cam = agente.obterCaminho(nofinal);
    // agente.exibirGrafico(null);
    System.out.println(agente);
    System.out.println(nofinal);
    System.out.println(agente);
    System.out.println(nofinal);
  }