Zhorzh

Untitled

Jan 6th, 2022
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. let input = [
  2. '@@@xx@*',
  3. '1 -1 -1 4',
  4. ];
  5.  
  6. let print = this.print || console.log;
  7. let gets = this.gets || ((arr, index) => () => arr[index++])(input, 0);
  8.  
  9. let n = gets()
  10. let ways = gets().split(' ').map(Number)
  11. let path = Array.from(n)
  12. let pathlenght = path.length
  13.  
  14. const soul = '@';
  15. const food = '*';
  16. const deadlock = 'x';
  17. const eaten = '_'
  18.  
  19. let soulsCollected = 0
  20. let foodCollected = 0
  21. let deadLocks = 0
  22. let currPosition = 0
  23. let output = ''
  24. let jumpsCounter = 0
  25. let isdead = false
  26.  
  27. for(let i = 0 ; i<= ways.length;i++){
  28.  
  29. switch(path[currPosition]){
  30. case '@':
  31. soulsCollected++;
  32. path[currPosition] = eaten;
  33. break;
  34. case '*':
  35. foodCollected++;
  36. path[currPosition] = eaten;
  37. break;
  38. case 'x':
  39. if(currPosition % 2 == 0){
  40. if(soulsCollected >0){
  41. soulsCollected--
  42. deadLocks++
  43. path[currPosition] = soul
  44. }else{
  45. output += 'You are deadlocked, you greedy kitty!'
  46. output += '\n'
  47. output+= `Jumps before deadlock:${jumpsCounter}`
  48. isdead = true
  49. break
  50. }
  51. }else{
  52. if(foodCollected > 0){
  53. foodCollected--
  54. deadLocks++
  55. path[currPosition] = soul
  56. }else{
  57. output += 'You are deadlocked, you greedy kitty!'
  58. output += '\n'
  59. output+= `Jumps before deadlock:${jumpsCounter}`
  60. isdead = true
  61. break
  62. }
  63. }
  64. break;
  65. default:
  66. break
  67. }
  68. ++jumpsCounter
  69. currPosition += ways[i]
  70. if(currPosition<0){
  71. currPosition = pathlenght + currPosition
  72. } else if (currPosition > pathlenght){
  73. currPosition = currPosition - pathlenght
  74. }
  75. }
  76. if(isdead){
  77. print(output)
  78. }else{
  79. print(`Coder souls collected: ${soulsCollected}`)
  80. print(`Food collected: ${foodCollected}`)
  81. print(`Deadlocks: ${deadLocks}`)
  82. }
Advertisement
Add Comment
Please, Sign In to add comment