Spocoman

Darts

Feb 13th, 2022 (edited)
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. РЕШЕНИЕ СЪС SWITCH:
  2.  
  3. function darts(input) {
  4.     let index = 0;
  5.     let name = input[index++];
  6.     let counterYes = 0;
  7.     let counterNo = 0;
  8.     let total = 301;
  9.  
  10.     while (true){
  11.         let zone = input[index++];
  12.         if (zone === "Retire") {
  13.             break;
  14.         }
  15.         let dots = Number(input[index++]);
  16.    
  17.         switch (zone) {
  18.            
  19.             case "Double":
  20.                 dots *= 2;
  21.                 break;
  22.  
  23.             case "Triple":
  24.                 dots *= 3;
  25.                 break;
  26.         }
  27.  
  28.         if (total < dots) {
  29.             counterNo++;
  30.         } else {
  31.             total -= dots;
  32.             counterYes++;
  33.         }
  34.  
  35.         if (total === 0) {
  36.             break;
  37.         }
  38.     }
  39.  
  40.     if (total === 0) {
  41.         console.log(`${name} won the leg with ${counterYes} shots.`);
  42.     } else {
  43.         console.log(`${name} retired after ${counterNo} unsuccessful shots.`);
  44.     }
  45. }
  46.  
  47.  
  48. РЕШЕНИЕ С IF-ELSE:
  49.  
  50. function darts(input) {
  51.     let index = 0;
  52.     let name = input[index++];
  53.     let counterYes = 0;
  54.     let counterNo = 0;
  55.     let total = 301;
  56.  
  57.     while (true){
  58.         let zone = input[index++];
  59.         if (zone === "Retire") {
  60.             break;
  61.         }
  62.         let dots = Number(input[index++]);
  63.        
  64.         if (zone === "Double") {
  65.             dots *= 2;
  66.         } else if (zone === "Triple") {
  67.             dots *= 3;
  68.         }
  69.        
  70. if (total < dots) {
  71.             counterNo++;
  72.         } else {
  73.             total -= dots;
  74.             counterYes++;
  75.         }
  76.  
  77.         if (total === 0) {
  78.             break;
  79.         }
  80.     }
  81.  
  82.     if (total === 0) {
  83.         console.log(`${name} won the leg with ${counterYes} shots.`);
  84.     } else {
  85.         console.log(`${name} retired after ${counterNo} unsuccessful shots.`);
  86.     }
  87. }
  88.  
  89.  
  90. РЕШЕНИЕ СЪС SHIFT() И ТЕРНАРЕН ОПЕРАТОР:
  91.  
  92. function darts(input) {
  93.     let name = input.shift();
  94.     let counterYes = 0;
  95.     let counterNo = 0;
  96.     let total = 301;
  97.  
  98.     while (true) {
  99.         let zone = input.shift();
  100.         if (zone === "Retire") {
  101.             break;
  102.         }
  103.         let dots = Number(input.shift()) * (zone === "Double" ? 2 : zone === "Triple" ? 3 : 1);
  104.  
  105.          _= total < dots ? counterNo++ : counterYes++;
  106.         total -= total >= dots ? dots : 0;
  107.            
  108.         if (total === 0) {
  109.             break;
  110.         }
  111.     }
  112.  
  113.     console.log( total === 0 ? `${name} won the leg with ${counterYes} shots.`
  114.                              : `${name} retired after ${counterNo} unsuccessful shots.`);
  115. }
  116.  
Add Comment
Please, Sign In to add comment