Test for words on a boggle board.
IMPORTANT: This challenge is an exercise in problem solving. It is crucial to read this entire document first before beginning anything. We suggest whiteboarding to make sure you understand the problem.
Next, solve boggle
as simply as possible (don't be clever!). Then, solve
bigBoggle
and compare it to your boggle
solution. You might notice
patterns. Finish by make a single solution work for every kind of boggle
presented here.
- js-reference-types
- Familiarity with the concept of arrays.
- Fork and clone this repository.
- Change into the new directory.
- Install dependencies.
- Create and checkout a new branch to work on.
- Fulfill the listed requirements.
Starter code is available in lib/challenge.js
. A pull
request is not required, but it is necessary if you want a code review.
You may wish to refer to FAQs related to forking, cloning.
Map row/column coordinates onto an array index (i.e. represent a square grid using a simple array). Use this mapping to return (potential) words from letters in the grid.
Boggle is a word game played with letter-dice arrange in a 4X4 tray.
A tray is just an array of length 16 with each element a single letter string.
A list of coordinate pairs is an array with length <= 4 and each element is an array of length 2. The sub-arrays contain two integers >= 0 and <= 3.
Write a function - in lib/challenge.js
- that takes a tray and a list of
coordinate pairs and returns a string representing the concatenation of the
letters at each of the coordinates.
See bin/challenge.js
for an example invocation.
Run it with node bin/challenge.js
.
You should run grunt nag
before diagnosing any bugs, since it finds some of
the most common sources of errors.
After grunt nag
passes, you should run grunt test
to run the included tests.
Tests will tell you whether of not you've met these requirements.
Only try these after completing the main challenge.
Big Boggle uses a 5X5 tray.
Make the following change in spec/challenge.spec.js
to enable tests for this
bonus.
- xdescribe('Big Boggle', () => {
+ describe('Big Boggle', () => {
Super Big Boggle uses a 6X6 tray.
Make the following change in spec/challenge.spec.js
to enable tests for this
bonus.
- xdescribe('Super Big Boggle', () => {
+ describe('Super Big Boggle', () => {
- Ensure tray has the correct length
- Ensure that coordinates fall within the tray
- Disallow coordinate pairs that aren't in a line
Return the empty string if a validation fails
- All content is licensed under a CCBYNCSA 4.0 license.
- All software code is licensed under GNU GPLv3. For commercial use or alternative licensing, please contact legal@ga.co.