Advertisement
Guest User

helper.js

a guest
May 21st, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function copy(a) {
  2.     var b = new Array(a.length);
  3.     for (var i = 0; i < a.length; i++) {
  4.         b[i] = a[i];
  5.     }
  6.     return b;
  7. }
  8.  
  9. var coeff = [1e+16, 1e+16, 1e+16, 1e+16, 1e+19, 1e+19, 1e+22, 1e+22, 1e+25, 1e+25, 1e+28, 1e+28];
  10. var base = [1.5, 1.5, 1.5, 1.5, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75];
  11.  
  12. var level = [61, 60, 60, 61, 31, 31, 19, 18, 7, 5, 0, 0];
  13. var goal = 1.321e+27;
  14.  
  15. var baseValues = new Array(12);
  16. for (var i = 0; i < 12; i++) {
  17.     baseValues[i] = coeff[i]*Math.pow(base[i], level[i]);
  18. }
  19.  
  20. var uses = new Array(12);
  21. for (var i = 0; i < 12; i++) {
  22.     uses[i] = 0;
  23. }
  24. var values = copy(baseValues);
  25. var N = 8;
  26. var topNLower = new Array(N);
  27. var topNLowerTrack = new Array(N);
  28. var topNUpper = new Array(N);
  29. var topNUpperTrack = new Array(N);
  30. for (var i = 0; i < N; i++) {
  31.     topNLower[i] = 0;
  32.     topNLowerTrack[i] = [];
  33.     topNUpper[i] = 1e+400;
  34.     topNUpperTrack[i] = [];
  35. }
  36. var sumStack = new Array(12);
  37. for (var i = 0; i < 12; i++) {
  38.     sumStack[i] = 0;
  39. }
  40. var sum = 0;
  41. var i;
  42. var k;
  43. while (true) {
  44.     i = 12;
  45.     while (--i >= 0) {
  46.         if (uses[i] > 0)
  47.             break;
  48.     }
  49.     if (i < 0) {
  50.         sum += values[0];
  51.         sumStack[0] = sum;
  52.         values[0] *= base[0];
  53.         uses[0]++;
  54.     } else {
  55.         if (sum < goal) {
  56.             sum += values[i];
  57.             sumStack[i] = sum;
  58.             values[i] *= base[i];
  59.             uses[i]++;
  60.         } else {
  61.             if (i == 11) {
  62.                 sum = sumStack[i-1];
  63.                 uses[i] = 0;
  64.                 while (--i >= 0) {
  65.                     if (uses[i] > 0)
  66.                         break;
  67.                 }
  68.                 if (i < 0) {
  69.                     break;   // we are done
  70.                 }
  71.             }
  72.             if (--uses[i] == 0 && i > 0) {
  73.                 values[i] = baseValues[i];
  74.                 sum = sumStack[i-1];
  75.             } else {
  76.                 values[i] /= base[i];
  77.                 sum -= values[i];
  78.             }
  79.             sumStack[i] = sum;
  80.             sum += values[i+1];
  81.             sumStack[i+1] = sum;
  82.             uses[i+1]++;
  83.         }
  84.     }
  85.     if (sum < goal) {
  86.         if (sum > topNLower[0]) {
  87.             k = N-1;
  88.             while (topNLower[k] >= sum) {
  89.                 k--;
  90.             }
  91.             topNLower[k] = sum;
  92.             topNLowerTrack[k] = copy(uses);
  93.         }
  94.     } else {
  95.         if (sum < topNUpper[N-1]) {
  96.             k = 0;
  97.             while (topNUpper[k] <= sum) {
  98.                 k++;
  99.             }
  100.             topNUpper[k] = sum;
  101.             topNUpperTrack[k] = copy(uses);
  102.         }
  103.     }
  104. }
  105. var str = "";
  106. str += "Welcome to the moneypit/digger help center!\n\n";
  107. str += "Current digger levels : " + level.join(", ") + "\n\n";
  108. str += "Ways of buying to achieve goal: \n";
  109. for (k = 0; k < N; k++) {
  110.     str += topNLower[k] + " from " + topNLowerTrack[k].join(", ") + "\n";
  111. }
  112. str += "Goal : " + goal + "\n";
  113. for (k = 0; k < N; k++) {
  114.     str += topNUpper[k] + " from " + topNUpperTrack[k].join(", ") + "\n";
  115. }
  116. WScript.echo(str);
  117. WScript.sleep(4*60*1000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement