Advertisement
linknaka

Untitled

Dec 15th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. /*inutilizado
  2. private caminho dropaItens(int[][][] mat,caminho novo,int pesoMax) {
  3.  
  4. //A solução criativa quase usada: Percorrer a lista e anotar peso e valor dos itens, e então usar um algoritmo para montar a combinação de pesos e testar com o max valor atual obtido
  5. //pesoitems[x][0]=linha
  6. //pesoitems[y][1]=coluna
  7. //pesoitems[x][2]=peso
  8. //pesoitems[x][3] se vai pegar(1) ou não(0)
  9. int[][] pesoItems=new int[novo.quantosItems][4];
  10. int[] valorItems=new int[novo.quantosItems];
  11. int index=0;
  12. //Percorre
  13. caminho aux=novo;
  14. while(aux!=null) {
  15. if(aux.colhe==true) {
  16. pesoItems[index][0]=aux.posX;
  17. pesoItems[index][1]=aux.posY;
  18. pesoItems[index][2]=mat[aux.posX][aux.posY][2];
  19. pesoItems[index][3]=0;
  20. valorItems[index]=mat[aux.posX][aux.posY][1];
  21. index++;
  22. }
  23. aux=aux.ant;
  24. }
  25.  
  26. int maximoAtual=0;
  27. for(int i=0;i<valorItems.length;i++) {
  28. maximoAtual=Math.max(maximoAtual,(Soma(pesoItems,valorItems,i,0,0,new int[pesoItems.length],pesoItems[i][2],pesoMax))[0]);
  29. }
  30.  
  31. //Passa setando quais pegou
  32.  
  33. aux=novo;
  34. while(aux!=null) {
  35. aux.colhe=false;
  36. for(int i=0;i<pesoItems.length;i++) {
  37. if(aux.posX==pesoItems[i][0]&&aux.posY==pesoItems[i][1]&&pesoItems[i][1]==1) {
  38. //Colhe
  39. aux.colhe=true;
  40. }
  41. }
  42. aux=aux.ant;
  43. }
  44.  
  45.  
  46. return null;
  47. }
  48.  
  49.  
  50. private int[] Soma(int[][] pesoItems, int[] valorItems, int index, int SomaAtual, int tamanho,int[] escolhas, int pesoAtual, int pesoLimite) {
  51. if(pesoAtual>peso) {
  52. int[] v= {0};
  53. return v;
  54. }
  55. escolhas[tamanho]=index;
  56. if(tamanho>valorItems.length) {
  57. return escolhas;
  58. }
  59. for(int i=0;i<valorItems.length;i++) {
  60. //Deveria fazer alguma coisa em recursão aqui, mas acabou o tempo pra pensar
  61. Soma(pesoItems,valorItems,i,0,tamanho+1,new int[pesoItems.length],pesoAtual+pesoItems[i][2],pesoLimite);
  62. }
  63. return escolhas;
  64.  
  65. }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement