PSE Advent Calendar 2021 (Day 13): A Christmas Hokuro

This puzzle is part of the Puzzling StackExchange Advent Calendar 2021. The accepted answer to this question will be awarded a bounty worth 50 reputation.

< Previous Door Next Door >

Hokuro is a Kakuro-inspired puzzle type that was introduced on PSE about a year ago.

The rules

• Each cell contains one of the following symbols:

• Each arrow indicates a step in that direction, while the dot indicates no movement.

• The clues in the black cells show the sum of the movements indicated by the symbols in the corresponding row or column.

• Symbols in consecutive white cells must be unique (a 'sum' cannot contain the same symbol more than once).

For example, one of the ways to get the symbol ↑ in 4 steps:

In some cases it may come in handy to take a peek at the Hokuro Cheat Sheet.

The puzzle

• I imported this into Google Sheets for anyone who prefers to solve it this way: docs.google.com/spreadsheets/d/… It's the second sheet (Xmas Hokuro). You will need to copy the whole thing and paste it into your own sheet, then change a few things like horizontal and vertical align the cells in the center, the row and column widths and heights etc. Dec 13, 2021 at 20:11
• @hb20007 Very nice, thank you! Dec 14, 2021 at 8:16

Step by step walkthrough

Step 1

Highlighted ↙(2) is either (●↙) or (↓←). If we consider (●↙), there's no combination of ↗(3) that includes ↙. Or if you want to think about it logically, since we're going ↙, the only way to end up with ↗ at the end is to go ↗ two times but that's not possible since it violates the rules. Also, there's no combination of →(4) that includes ↙←. Again, thinking about it logically, if we go left 2 times there's no way to end up with a right pointing arrow with 2 moves left. So, we can eliminate (●↙) since ↙ doesn't fit anywhere. Then placing (↓←) is easy.

Step 2

The only combination of ↗(3) that fits is (↗→←) and that is easy to place, or if you want to think logically, since there's already a ←, we need to negate it with → and then ↗ to achieve the desired result.

Step 3

The only combinations of ●(5) that fit are (●↗→↙←) and (↗→↓↙↖). In both cases they contain a ↙. Placing ↙ is easy; it does not belong to neither the first nor the second square since in both cases it's going in an opposite direction to the desired outcome and we cannot reverse it in 1 move.

Step 4

This part is also simple. The only combination of ←(4) that fits is (●→↙↖) so we need to place ↙↖ but ↙ is already present in the bottom row so it cannot go there. We can also fill the missing square of ←(3).

Step 5

There are 3 possibilities for ←(2): (●←), (↑↙) and (↓↖). We can immediately discard (↑↙) since ↙ already exists on the top row and ↙ does not belong on the bottom row as the final outcome is pointing upwards and we cannot reverse the bottom direction in 1 move. We can also discard (↓↖) through some analysis. ↖ needs to go on the bottom row since it already exists on the top row. If that happens then the last square of ↑(3) must be filled with →. Now if we look at the top clue ←(3), the only way to satisfy this clue is to fill the remaining 2 squares with ↙↖ but these two symbols already exist on the middle row so that cannot be the case. We are left with (●←) so we can fill that in, and the remaining square of ↑(3).

Step 6

The only combination of ←(3) that works is (↗↙←) and that is easy to fill since ↙ already exists in the middle row.

Step 7

The only combination of ↖(3) that fits is (↗↙↖). Also easy to fill in since ↗ exists in the last column so it cannot go there.

Step 8

The only combination of →(4) that fits needs →↗ and that can be filled in easily.

Step 9

Highlighted ●(5) can only be (●↗→↙←) or (↗→↓↙↖). If we take (●↗→↙←), the missing symbols are ●↙← but neither of them can fit in the bottom square so that is out of the question. From (↗→↓↙↖) we need ↓↙↖ and only ↓ fits in the bottom square so we can fill that in.

Step 10

Here ●(5) can only be (●↗→↙←) or (↗→↓↙↖). If we consider (●↗→↙←), ←● are missing and ← has to go at the top square since it is not valid for →(2). After that we can fill in the missing ↑ for ↖(2) but now that creates a problem. This is a bit hard to explain but the 2 squares for ↘(3) above the ↑ we just filled will have to be populated with ↓↘ which are both downward pointing arrows. Now if we look at the 2 clues to the left of these squares, we see ↖(3) and ↗(3) which are both upward pointing arrows. This means that their missing squares will have to be both upward pointing to achieve the desired direction. But now this means that the ↙(4) in the middle column will contain 2 upward pointing arrows which is a contradiction since we cannot achieve a downward final result with 2 arrows out of 4 already pointing upwards. After all that long analysis we can eliminate (●↗→↙←) and finally fill in (↗→↓↙↖) which is straightforward. We can also fill the 2 obvious squares.

Step 11

Consider the highlighted ↘(3). The only combination that fits is (●→↓). If we fill in → at the top, this leaves the ↖(3) on its left with →←↖. At the bottom, we filled in ↓, so the ↗(3) on its left is missing ↑ and ↗. The middle column ↙(4) ended up having ↓← and now the only way to satisfy it is to fill ↙↗ or ↖↘. Taking both the row and the column together, we can now deduce that the last square in the middle column ↙(4) has to be ↗, which means that the one on its right is ↑. This creates a contradiction in the rightmost vertical ↑(4). We have just added ↖↑, and there already was a ←. It is not possible to fill in the final square to get ↑ as a result. So, this means that the correct way to fill the highlighted ↘(3) was with ↓ at the top and → at the bottom.

Step 12

Highlighted ↖(3) can only be filled with ↖ and ↑. If we fill it as ↓↑↖, that leaves the middle column ↙(4) as ↓↙↑● since that's the only combination and ↙ does not belong in the last square. This means that the ↗(3) below the highlighted clue will be filled with →●↑ which has now created a problem for the ↑(4) to the right of the middle column. It is left with ↖↑← and with nothing to satisfy the last square. Now we know that ↑ cannot be filled in the middle square of the highlighted clue.

Step 13

As shown in step 9, we know that the highlighted ●(5) is missing ↖ and ↙. We can see that ↙ doesn't go in the top square since that would be a ↑ going next to it to satisfy ←(2) but there is already a ↑ in that column. With that in place, the entire top part of the puzzle can be filled in since only 1 square would be left from each clue.

Step 14

Consider the highlighted ↓(5), we can see that it already contains 2 upward pointing arrows. In order to achieve a final downward direction, the last three symbols have to be downward, specifically ↘↓↙. The second row already contains ↓↙. This leaves ↘ to fit there.

Step 15

This one took me a while to figure out. Taking the highlighted ●(9), we know that the remaining symbols are ↑↗→. The first part was realizing that the first two squares cannot be both pointing upwards because if they were then the first 2 columns would need to be filled with downward pointing arrows to satisfy the clues, but now if we filled both columns with downward arrows, the ↓(2) on the left will never be fulfilled. This means that → cannot be in the last square. This still left me with 2 possible squares for →. I couldn't find any logical reasoning in a few moves so I had to play out one of them. I placed the → in the second square and went from there. ↗ couldn't go in the first square so it had to go in the last square and ↑ was left in the first square. The rest of the symbols marked in yellow below easily followed until I arrived at the contradiction shown in blue. This meant that → had to go in the first square.

Step 16

Taking the same row again, I realized that ↑ doesn't go in the second square since ↓(5) doesn't contain a combination with both ↖ and ↑. The last square in that row can also be filled.

Step 17

Taking the highlighted ↙(3), the remaining symbols must be ← and ↙. ↙ cannot go in the middle row because we are already expecting a downward pointing arrow from the ↓(5) on the right, since, as previously mentioned, 3 downward pointing arrows are needed to satisfy that clue. So we can fill ← in the second square and the 2 adjacent symbols easily.

Step 18

This one is straightforward. Only ↓ and ↙ are left for ↓(5) and ↙ already exists in the first row to be filled.

Step 19

This one is exactly the same as step 18. ↓ and ↙ are left and ↙ already exists in the last row. The remaining square of ●(2) and ↗(3) can also be filled.

Step 20

In the highlighted ●(4), we need to negate the existing arrows with ↗ and ↑. We can see that ↗ cannot go in the last square since ↖(2) would be impossible to satisfy with a right-pointing arrow. The other square of ↖(2) can also be filled in.

Step 21

The two possibilities of ↙(2) are (●↙) and (↓←). (↓←) is definitely wrong since both symbols exist in the top row. (●↙) can be easily filled in.

Step 22

In the highlighted ●(7), we need to fill in → and ↗. If we fill in → in the second square, ↖ would have to come above it to fulfill ↑(2) but that leads to a contradiction since there's no valid combination of ↘(4) that contains ↖↗↓. With this, we can complete the rest of the puzzle.

• Welcome to PSE! This looks like a good solution. However, the best received solutions for grid deduction puzzles on this forum are those that provide detailed explanations of the logic used, often including progress diagrams. This answer of Reinier's is an ideal example. It doesn't need to be a doctoral thesis, but some indication of your logic steps will definitely increase your upvote total, as well as improve the quality of the site as a puzzle resource. Dec 13, 2021 at 14:40
• Oh I see, my bad. I'll keep that in mind. I don't mind if someone else's solution is accepted if they provide a step by step walkthrough. Either way if I do have time later I will try to reproduce my steps and write down an explanation Dec 13, 2021 at 14:48
• No worries! Don't think you did anything bad...just wanted to give a gentle intro to the ethos of the site. Looking forward to having you around :-) Dec 13, 2021 at 14:53
• Wow! That is an answer :-) Awesome improvement; thank you for taking my constructive criticism to heart. Dec 13, 2021 at 22:06
• Thank you. Criticism is always welcome :-) Dec 13, 2021 at 23:32