Advertisement
Guest User

Untitled

a guest
Oct 21st, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. /*
  2. Trabalho 1 - Inteligencia Artificial
  3.  
  4. Daniel Valim Pereira - RA 511315
  5. Diego Tenório de Araújo - RA 552143
  6. Rafael de Almeida Sobieski - RA 489646
  7.  
  8. */
  9. #include<iostream>
  10. #include<cstdio>
  11. #include<cstdlib>
  12. #include<cstring>
  13.  
  14. using namespace std;
  15.  
  16. int n;
  17. int custo = 0;
  18.  
  19. void buscaLargura(){}
  20.  
  21. void buscaProfundidade(){}
  22.  
  23. void buscaProfundidadeLimitada(){}
  24.  
  25. void buscaProfundidadeIterativa(){}
  26.  
  27. void buscaCustoUniforme(){}
  28.  
  29. void buscaA(){}
  30.  
  31. int retornaEspaco(char* regua){
  32.  
  33. for(int i=0; i<2*n+1; i++){
  34. if(regua[i] == '-')
  35. return i;
  36. }
  37.  
  38. }
  39.  
  40. int meta(char* regua){
  41.  
  42. int flag = 0;
  43. for(int i=0; i<2*n+1; i++){
  44. if(regua[i] == 'A'){
  45. flag = 1;
  46. }
  47. if(flag && regua[i] == 'B')
  48. return 0;
  49.  
  50. }
  51. return 1;
  52.  
  53. }
  54.  
  55. int main(int argc, char ** argv){
  56.  
  57. FILE *fp;
  58. char regua[100];
  59.  
  60. /* Verificacao dos parametros de entrada*/
  61. if(argc != 3){
  62. printf("Erro na entrada de dados!\n");
  63. return 0;
  64. }
  65.  
  66. /* Abertura de Arquivo */
  67. fp = fopen (argv[1], "r+");
  68. if(fp == NULL){
  69. printf("Erro na leitura do arquivo de dados!\n");
  70. return 0;
  71. }
  72. fscanf(fp, "%d %s", &n, &regua);
  73.  
  74. /* Selecao do tipo de busca de acordo com a entrada no argv[2]*/
  75. if(strcmp(argv[2], "BL") == 0){
  76. printf("Busca em largura: \n");
  77. buscaLargura();
  78. }
  79. else if(strcmp(argv[2], "BP") == 0){
  80. printf("Busca em profundidade: \n");
  81. buscaProfundidade();
  82. }
  83. else if(strcmp(argv[2], "BPL") == 0){
  84. printf("Busca em profundidade limitada: \n");
  85. buscaProfundidadeLimitada();
  86. }
  87. else if(strcmp(argv[2], "BPI") == 0){
  88. printf("Busca em profundidade iterativa: \n");
  89. buscaProfundidadeIterativa();
  90. }
  91. else if(strcmp(argv[2], "BCU") == 0){
  92. printf("Busca de custo uniforme: \n");
  93. buscaCustoUniforme();
  94. }
  95. else if(strcmp(argv[2], "A*") == 0){
  96. printf("Busca A*: \n");
  97. buscaA();
  98. }
  99.  
  100. if(meta(regua)){
  101. printf("Estado objetivo encontrado!\n");
  102. return 0;
  103. }
  104.  
  105.  
  106. int espaco = retornaEspaco(regua);
  107. int ini, fim; //casas limite dos indices que podem trocar de lugar com o '-' para a geraçao de nos
  108.  
  109. if(espaco == 0){
  110. ini = 1;
  111. fim = n;
  112. }else if(espaco == 2*n){
  113. ini = n;
  114. fim = 2*n-1;
  115. }else{
  116. ini = espaco - n;
  117. fim = espaco + n;
  118. if(ini < 0) ini = 0;
  119. if(fim > 2*n) fim = 2*n;
  120. }
  121.  
  122. fclose(fp);
  123.  
  124. return 0;
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement