Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
That's a good point. I chose
reduce
, because I preferred a declarative style for this exercise. Since the array contains only a few boxes, the performance difference is negligible. For a much larger dataset, though, I'd definitely switch to an early-exit loop. Thanks for the feedback!The traverseBoxes uses a reduce method, that will iterate over all elements of the array, even if it finds the result on the first one. Consider:
export function traverseBoxes(boxes: Box[], path: string[] = []): string[] {
for (const box of boxes) {
const result = pathToBomb(box, path);
if (result.length > 0) return result;
}
return [];
}
I agree: "Ghost objects are given a random color attribute"
The color is an "attribute" of the object. So it should not change with each call to
color
.Maybe the instructions have changed, but as they read now, I agree with vajdagabor. Currently the instructions say this:
ghost = Ghost.new
ghost.color #=> "white" or "yellow" or "purple" or "red"
In my reading, that means that the ghost object will always return the same color. The color is not returned on instantiation, it's returned on a the .color method call of that particular instance of the Ghost class.
I agree with eik3 definition of the expected task. I also though it should assing color only upon initialization. Yet Denym is totally right. If so, then the kata creator should of defined this with a test.
Then the submit test cases should be different :)
That's how I read the description, it says "given random color when instantiated". I expect a valid solution to work this way:
This comment is hidden because it contains spoiler information about the solution
Nice and clean solution, however the pageItemCount method is not correct:
Good call. I've sent a new solution with this corrected regexp:
/'?[a-z]+[a-z']*/i