Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. function calculateTreasureHunt(inputArr){
  2. const lootedItems = inputArr.shift().split("|");
  3. let totalPirateCredits = 0;
  4.  
  5. for (let i = 0; i < inputArr.length; i++) {
  6. let isHuntOver = false;
  7. const nextInput = inputArr[i].split(" ");
  8. let nextAction = nextInput.shift();
  9. switch (nextAction) {
  10. case "Loot":
  11. nextInput.forEach(element => {
  12. if (!lootedItems.includes(element)){
  13. lootedItems.unshift(element);
  14. }
  15. })
  16. break;
  17. case "Drop":
  18. let dropIndex = Number(nextInput.shift());
  19. if (dropIndex <= lootedItems.length){
  20. let droppedItem = lootedItems.splice(dropIndex, 1).toString();
  21. lootedItems.push(droppedItem);
  22. }
  23. break;
  24. case "Steal":
  25. let numberStolenItems = Number(nextInput.shift());
  26. if (numberStolenItems > lootedItems.length){
  27. numberStolenItems = lootedItems.length;
  28. }
  29. const stolenItems = lootedItems.slice(lootedItems.length - numberStolenItems);
  30. console.log(stolenItems.join(", "));
  31. lootedItems.splice(lootedItems.length - numberStolenItems, numberStolenItems);
  32. break;
  33. case "Yohoho!":
  34. isHuntOver = true;
  35. break;
  36. }
  37.  
  38. if (isHuntOver) {
  39. break;
  40. }
  41.  
  42. }
  43. lootedItems.forEach(element => {
  44. totalPirateCredits += element.length / lootedItems.length;
  45. })
  46.  
  47. if (totalPirateCredits > 0) {
  48. console.log(`Average treasure gain: ${totalPirateCredits.toFixed(2)} pirate credits.`);
  49. }
  50. else {
  51. console.log("Failed treasure hunt.")
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement