vonko1988

JSAngryBits

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