Hashiwokakero is a Japanese number puzzle which can be played on paper. Given a set of islands on a 2D grid, each island having a number between 1 and 8, the goal is to build bridges connecting all islands. There are a number of restrictions on how these bridges can be build:
Bridges can only be drawn horizontally or vertically;
Bridges are not allowed to cross each other;
One can draw one or two bridges along each direction (single or double bridge);
The total number of bridges leaving an island need to match the number assigned to that island.
Arduboy-specific Hashiwokakero
The game includes 144 puzzles created by Vegard Hanssen:
there are puzzles for three sizes (8-by-8, 12-by-8, and 16-by-8), and for each
size there are four different difficulty levels (âeasyâ, âmediumâ, âhardâ, and
âexpertâ), each having 12 puzzles.
Display unoccluded solution: after solving a puzzle, once the âSolved!â text is displayed, the user can press any directional button (left/right/up/down) to hide the âSolved!â text and thus view the solution without occlusion.
Improved navigation in instructions: the four text panels can be navigated using LEFT/RIGHT buttons. The A-button behaves as RIGHT as well. Using the B-button navigates back to the main menu as does moving RIGHT from the last instruction panel.
Fixed misuse of the Japanese word âhashiâ in the instructions: âhashiâ only means bridge, now we use the full âhashiwokakeroâ in the text, which means âto build bridgesâ.
Remove unused functions from Arduboy2: to save ~700 bytes of ROM the setup now does not use all Arduboy2 initialization methods such as those for sound and the Arduboy logo.
Bring back the controls from v1.0: both the island-centric controls and the bridge-centric controls work now, allowing easy addition/removal of bridges where ever the cursor is.
Changes in version 1.1, released 19th July 2022
Different controls: adding and removing bridges is now island-centric, that is, moving the cursor on top of an island and holding down the A-button displays possible bridge additions; while holding the A-button one can use the direction button to add bridges in the respective direction. Likewise holding the B-button removes bridges.
Menu navigation: the A-button selects menu items and the B-button moves Backwards to the previous menu.
Exiting a puzzle: holding the A-button and B-button simultaneously will terminate a puzzle and navigate back to the start menu.
Another wonderful puzzle game! Having in-game help is wonderful and the puzzle interface was really straightforward to figure out.
After playing around a bit, one wish that I have is that one of the A/B buttons could be used as a âbackâ button, both in the menus (e.g., accidentally selected wrong difficulty) and in-game, to prompt whether to abandon the puzzle and return to the menu.
EDIT: I now see that during gameplay, the A/B buttons differ in whether to prioritize horizontal or vertical bridges, which is required functionality in certain situations. Adding interface for abandoning a puzzle would probably be more involved. Maybe press and hold a button or press both A/B together? Not sureâŠ
Great point about missing âBackâ functionality, both when selecting difficulties as well as during a game. Let me think about it and add this feature for version 1.1.
The other main functionality that is missing is to store which puzzles the player has already solved so far and indicate this during level selection (and perhaps display the reference solution in case the player has already solved it).
I just played one level and really liked it. Great job!
As for the bridge placement controls, I think Iâd like a scheme where you hit the A button while over a number and press in a direction to increment the bridge count in that direction. I found selecting the space to be confusing, especially when I didnât remember which button did which direction, and I found myself often destroying parts Iâd already worked on.
I like this, itâs similar to Simon Tathamâs approach. Perhaps a slight change: while holding down the A button over a number, press in a direction to increment bridge count in that direction. That reduces the amount of input movement needed to construct multiple bridges from the same number, a situation that seems to happen a lot.
I just uploaded version 1.1 which adopts the âholding Aâ and âholding Bâ button controls on top of islands to add/remove bridges. I.e. holding A and then tapping one of Up, Right, Down or Left will add a bridge in the respective direction, if possible.
You canât go back in the instructions, so if you accidentally skip ahead too far you have to go all the way to the end to exit and then re-enter. It would be better if left was âback a pageâ, right was ânext pageâ and B was âexitâ.
Thanks for the suggestions, I implemented all your three fixes in version 1.2. The âSolved!â text can now be hidden if any directional cursor key is pressed.
Also, in addition to the island-centric controls I brought back the traditional bridge-centric controls as I personally prefer them. They do work nicely with each other and often one is more convenient to use than the other, for example when one wants to remove a particular bridge the bridge-centric controls work better in my opinion.
Regarding the homepage, yes that is my homepage. Arduboy is just a spare time activity though to remember some 8bit programming from my childhood