Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Solve(params) {
- var startArray = new Array[8, 16];
- //Now we will fill the matrix with the given bits
- for (var i = 0; i < 8; i++)
- {
- var input = parseInt(params[i]);
- for (var j = 15; j >= 0; j--)
- {
- var bit = (input >> j) & 1;
- startArray[i, 15 - j] = bit;
- }
- }
- //Now we will throw the birds
- var center = 7;
- var direction = "topLeft";
- var x = 0;
- var y = 0;
- var numberHitPigs = 0;
- var points = 0;
- for (var col = center; col >= 0; col--)
- {
- for (var row = 0; row < 8; row++)
- {
- if (startArray[row, col] == 1)
- {
- startArray[row, col] = 0;
- //here the bird will start flying
- y = row;
- x = col;
- direction = "topRight";
- for (var i = x+1; i <=15; i++)
- {
- switch (direction)
- {
- case "topRight":
- if (y > 0)
- {
- x++;
- y--;
- }
- else if (y == 0)
- {
- x++;
- y++;
- direction = "bottomRight";
- }
- break;
- case "bottomRight":
- if (y < 7)
- {
- x++;
- y++;
- }
- else if (y == 7)
- {
- x++;
- y--;
- direction = "topRight";
- }
- break;
- }
- if (startArray[y, x] == 1 && x > center)
- {
- numberHitPigs = 1;
- //Console.WriteLine("hit");
- //Console.WriteLine("flightCounter : {0}", (x-col));
- //Console.WriteLine("{0},{1}", y, x);
- startArray[y, x] = 0;
- for (var k = y - 1; k < (y - 1 + 3); k++)
- {
- for (var m = x - 1; m < (x - 1 + 3); m++)
- {
- if ((k >= 0 && k <= 7 && m >= center + 1 && m <= 15) &&
- (startArray[k, m] == 1))
- {
- numberHitPigs++;
- //Console.WriteLine("hit");
- //Console.WriteLine("{0},{1}", k, m);
- startArray[k, m] = 0;
- }
- }
- }
- points += (x-col) * numberHitPigs;
- break;
- }
- }
- }
- }
- }
- //now we check if the player won
- var win = "Yes";
- for (var j = center + 1; j <= 15; j++)
- {
- for (var i = 0; i < 8; i++)
- {
- if (startArray[i, j] == 1)
- {
- win = "No";
- }
- }
- }
- return(points + " " + win);
- }
Advertisement
Add Comment
Please, Sign In to add comment