DimiPetrov

Archery Tournament

Nov 4th, 2020
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.     let field = input.shift().split('|').map(Number);
  3.     let fieldIndex = 0;
  4.     let points = 0;
  5.  
  6.     for (let i = 0; i < field.length; i++) {
  7.         let splitted = input[i].split('@');
  8.         let command = splitted[0];
  9.         let commandIndex = Number(splitted[1]);
  10.         let length = Number(splitted[2]);
  11.  
  12.         switch (command) {
  13.             case 'Shoot Left':
  14.                 if (commandIndex >= 0 && commandIndex <= field.length - 1) {
  15.                     fieldIndex -= commandIndex + length;
  16.                     if (fieldIndex < 0) {
  17.                         fieldIndex = field.length - length;
  18.                     }
  19.                     field[fieldIndex] -= 5;
  20.                     points += 5;
  21.                     break;
  22.                 }
  23.  
  24.             case 'Shoot Right':
  25.                 if (commandIndex >= 0 && commandIndex <= field.length - 1) {
  26.                     fieldIndex += commandIndex + length;
  27.                     if (fieldIndex >= field.length) {
  28.                         fieldIndex = length - 1;
  29.                     }
  30.                     field[fieldIndex] -= 5;
  31.                     points += 5;
  32.                     break;
  33.                 }
  34.  
  35.             case 'Reverse':
  36.                 let reversed = field.reverse();
  37.                 field === reversed;
  38.                 break;
  39.  
  40.             case 'Game over':
  41.                 console.log(field.join(' - '));
  42.                 console.log(`Iskren finished the archery tournament with ${points} points!`);
  43.         }
  44.     }
  45. }
  46.  
  47. solve([
  48.     '10|10|10|10|10',
  49.     'Shoot Left@0@2',
  50.     'Shoot Right@4@5',
  51.     'Shoot Right@6@5',
  52.     'Reverse',
  53.     'Game over'
  54. ]
  55. )
Advertisement
Add Comment
Please, Sign In to add comment