JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://download.basecase.com/programming-test/defender.js"></script>
JavaScript
/*
,--. ,--. ,--.
,--,--,--. / \ / \ ,-| |,--. ,--.
| || () || () |' .-. | \ ' /
| | | | \ / \ / \ `-' | \ '
`--`--`--' `--' `--' `---' .-' /
`---'
*/
defender.start(
function notify_player(rocks, paddle_y){
//rocks_sorted ascending time order for crash to the surface.
rocks_sorted = rocks.sort(function(a,b){
return a.distance - b.distance;
});
var nearest_rock = rocks_sorted[0];
var adjacent_blocks = Math.sin(nearest_rock.radians) * nearest_rock.distance;
var blocks_to_move = 0;
var negative = false;
if(adjacent_blocks < 0){
adjacent_blocks *= -1;
negative = true;
}
var blocks_to_move = adjacent_blocks > 9 ? 9: Math.ceil(adjacent_blocks);
if(negative){
blocks_to_move *= -1;
}
var moves = [];
if(blocks_to_move > 0){
while(blocks_to_move > 0){
moves.push(-1);
blocks_to_move-=1;
}
}
if(blocks_to_move < 0){
while(blocks_to_move < 0){
moves.push(1);
blocks_to_move+=1;
}
}
return moves;
}
);