vonko1988

JSAngryBitsVer2

Apr 30th, 2014
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function Solve(params) {
  2.         var startArray = [];
  3.  
  4.         //Now we will fill the matrix with the given bits
  5.  
  6.         for (var i = 0; i < 8; i++)
  7.         {
  8.             var input = parseInt(params[i]);
  9.             startArray[i] = new Array;
  10.  
  11.             for (var j = 15; j >= 0; j--)
  12.             {
  13.                 var bit = (input >> j) & 1;
  14.                 startArray[i][15 - j] = bit;
  15.             }
  16.         }
  17.  
  18.         //Now we will throw the birds
  19.         var center = 7;
  20.         var direction = "topLeft";
  21.         var x = 0;
  22.         var y = 0;
  23.         var numberHitPigs = 0;
  24.         var points = 0;
  25.  
  26.         for (var col = center; col >= 0; col--)
  27.         {
  28.             for (var row = 0; row < 8; row++)
  29.             {
  30.                 if (startArray[row][col] == 1)
  31.                 {
  32.                     startArray[row][col] = 0;
  33.  
  34.                     //here the bird will start flying
  35.                     y = row;
  36.                     x = col;
  37.                     direction = "topRight";
  38.  
  39.                     for (var i = x+1; i <=15; i++)
  40.                     {
  41.                         switch (direction)
  42.                         {
  43.                             case "topRight":
  44.                                 if (y > 0)
  45.                                 {
  46.                                     x++;
  47.                                     y--;
  48.                                 }
  49.                                 else if (y == 0)
  50.                                 {
  51.                                     x++;
  52.                                     y++;
  53.                                     direction = "bottomRight";
  54.                                 }
  55.                                 break;
  56.  
  57.                             case "bottomRight":
  58.                                 if (y < 7)
  59.                                 {
  60.                                     x++;
  61.                                     y++;
  62.                                 }
  63.                                 else if (y == 7)
  64.                                 {
  65.                                     x++;
  66.                                     y--;
  67.                                     direction = "topRight";
  68.                                 }
  69.                                 break;
  70.                         }
  71.  
  72.                         if (startArray[y][x] == 1 && x > center)
  73.                         {
  74.                             numberHitPigs = 1;
  75.                             //Console.WriteLine("hit");
  76.                             //Console.WriteLine("flightCounter : {0}", (x-col));
  77.                             //Console.WriteLine("{0},{1}", y, x);
  78.                             startArray[y][x] = 0;
  79.  
  80.                             for (var k = y - 1; k < (y - 1 + 3); k++)
  81.                             {
  82.                                 for (var m = x - 1; m < (x - 1 + 3); m++)
  83.                                 {
  84.                                     if ((k >= 0 && k <= 7 && m >= center + 1 && m <= 15) &&
  85.                                         (startArray[k][m] == 1))
  86.                                     {
  87.                                         numberHitPigs++;
  88.                                         //Console.WriteLine("hit");
  89.                                         //Console.WriteLine("{0},{1}", k, m);
  90.                                         startArray[k][m] = 0;
  91.                                     }
  92.                                 }
  93.                             }
  94.  
  95.                             points += (x-col) * numberHitPigs;
  96.                             break;
  97.                         }
  98.                     }
  99.                 }
  100.             }
  101.         }
  102.  
  103.         //now we check if the player won
  104.  
  105.         var win = "Yes";
  106.  
  107.         for (var j = center + 1; j <= 15; j++)
  108.         {
  109.             for (var i = 0; i < 8; i++)
  110.             {
  111.                 if (startArray[i][j] == 1)
  112.                 {
  113.                     win = "No";
  114.                 }
  115.             }
  116.         }
  117.  
  118.         return(points + " " + win);
  119.    }
Advertisement
Add Comment
Please, Sign In to add comment