In Which I Review Puzzle Apps #1: Shirodoko

I was browsing /r/puzzles when I saw a post by someone, stating that en had created a Kurodoko-related app called Shirodoko. For those of us who clicked the link above and are about to complain that I've linked you to an article about Kuromasu instead, they are the same thing.

Now, the first thing that ticked me off was the name. For those of us not in the know, "Kurodoko" is often translated as "Where Is Black Cells?", so Shirodoko would be "Where Is White Cells?". I was rather annoyed, therefore, to notice that in none of the screenshots for the game were there any white shaded cells.

I also saw that in one of the screenshots, there were differently-coloured cells instead of a sea of black (or white) cells. "Oh no," thought I to myself, "Perhaps this is a 12-year-old who firmly believes that en's design choices are brilliant." The reason this is a problem is because it looks annoying, takes up more code, and serves no purpose. You don't need to put it in your code. Take it out so that the game will run faster on slow devices (like BlueStacks App Player).

But still, perhaps the screenshots were merely not representative of the game as a whole. So I downloaded it. After all, it was free.

I opened it up and discovered that it was connected to Google Play Game Services. The authorization screen for Google Play Game Services is extremely annoying. If possible, I would suggest to turn off the requirements of it wanting to know who's in my circles, and turn off the ability to post to my page.

The first thing I looked for when playing it was an option to turn off coloured squares. It was THERE that I found an option to turn the squares white as well. So that mystery's solved then.

The app's page said ""Translated" in over 30 languages. The language option in the app, though, only allows switching between English, French, and Spanish. Celui qui a créé cette application est un sale menteur. Én probablemente debe tomar un momento para pensar en sus palabras.

I wanted to see how well the creator had entered the rules. En had done so very well (besides the use of "coloured" instead of "shaded"). Then I checked the tutorial.

Here is a sample screen from the tutorial. (Did I forget to mention that this app is ad-supported? Because it is.)

The app says that the 9 and 10 at the bottom are both already solved, and that the 11 and 12 are solved because of this.

However, there are no black dots at R6C9, R7C9, R8C5, R8C6, and R8C9, which implies that some of those squares COULD be shaded. Therefore, the tutorial is contradictory and/or inconsistent.

Not only that; there is more than one solution to the tutorial problem.

I can forgive the fact that there were coloured blocks. I can forgive the screenshots not reflecting the title. I can forgive the Google Play Game Services screen, and all of the tiny little bugs, inconsistencies, and bad UI choices (why on earth would you not program the "tap twice to pencil-mark a square" option instead?!) that annoy me.

But this is an abomination. Logic puzzles should only have ONE solution, or else they cannot be solved using logic! It doesn't matter if they can all be accepted as a correct answer, the fact is that there is no longer a fully logical path to the solution, and that one is required to guess somewhere! Puzzlemaster Grant Fikes stated it well (you should probably read the comments, too): "How am I, as a logic puzzle connoisseur who wishes to keep his blog PG-rated, supposed to respond to such an atrocity? There is no appropriate invective-free response to this kind of horror. You simply do not bill something as a logic puzzle with only one solution, and have it actually have multiple solutions."

This is why I have subtracted 10 points from its original rating. Please, take your app back to the drawing board, and don't return until each puzzle has exactly one solution.

########

Verdict: -8/5. Do not get this app until it has updated accordingly.

(Note: if you would like me to review your Android puzzle app, please contact me at the email found in the About page.)

Parity in Alcazar (and other such loop puzzles), Part II

In the previous post, I showed you how checkerboard parity in Alcazar (and other such puzzles) works. I believe it is time for a case study, using the first puzzle from one of the packs in the Alcazar app; namely, the upcoming pack "The Ball Rooms".

A bit of background information here: The puzzles in this pack were computer-generated by a different program to the one which generated the rest of the puzzles in the app. The person who wrote this new program was a certain A. Ball, hence the name "The Ball Rooms". These puzzles are claimed to be even more difficult than the rest of the app; in fact, Mr. Ball himself was completely stumped on the first puzzle! I have therefore written this post to demonstrate checkerboard parity in action, show Mr. Ball that that puzzle is indeed solvable with pure logic, and also show you that checkerboard parity is to Alcazar what the Sledgehammer is to Sudoku.

Let us begin the puzzle. I am running this on BlueStacks Emulator, but that has nothing to do with the puzzle. If you don't have an Android device or an emulator, you can use this weblink instead, to follow along with these deductions.
Firstly, you can fill in all the "trivial" cells. That is, any cell with exactly two walls surrounding it.
Now apply parity on the whole puzzle. Because you can only use two exits, one of which is already known to be black, and there are an equal number of white and black cells, you can remove all the other black exits.

Near the top-righthand corner, there is a small 2x2 region on which you can apply checkerboard parity. Some people would call this "wicking", "weak points", or "loop forcing", but it's really just checkerboard parity in disguise!

Next, consider the 5x4 region in the bottom left. There are an equal number of white and black cells, and one white exit is already used. Since there is only one black exit left, that exit must be used.
Also, any other white exits in that region cannot be used.
Now we're back to trivial cells. Note, of course, that this could be considered as parity on a 1x1 region. So almost all Alcazar strategies are equivalent to checkerboard parity*!
Now, consider the 2x2 region just below the right centre. It has two white exits in use, and can only use two black exits. So it must use those, and can't use any other white exits.
More trivialties.
Note this irregularly-shaped region. It has an equal number of white and black cells, and only has one available black exit, so it must be used. Also, in the bottom right, you can add a white exit, by parity.
Do this next one yourself.
Trivialties.
This should also be pretty obvious.
And now trivial deductions solve the puzzle.

Checkerboard parity is a lot more useful than you might think, considering that most solving strategies are checkerboard parity in disguise. In fact, all of the steps in this puzzle come directly from checkerboard parity, so if you're creating an Alcazar solver, that's all you need to implement**!

I hope you leave this blog a little wiser on this subject than before (and able to complete the whole of "The Ball Rooms"). Especially you, Mr. Ball.

##########

*"No closed loops" is also checkerboard parity in disguise. Consider the region formed by the squares used by the path in consideration. There is an equal number of each colour of cells (as the ends of the path are adjacent), so there is one white exit and one black exit. Therefore, each end of the path must extend out of the region, not into it, and so one can draw a wall between the two ends.

**There are a few advanced strategies, but for the most part, they have not yet been discovered. I believe I have discovered one which is definitely not equivalent to checkerboard parity (which I shall not reveal at this time), and one which may or may not be equivalent (I haven't thoroughly checked it yet).

Parity in Alcazar (and other such loop puzzles)

On the subject of parity:

When we refer to "parity" in Alcazar, we mainly refer to two types:

1. Exit parity. Every closed region must have an even number of used exits.

2. Checkerboard parity. Every time one moves, one must move from a light cell to a dark cell and vice versa.

There is a third type of parity in loop puzzles, which I call "flow parity", but this is not very easily applicable to Alcazar puzzles.

Exit parity shall be covered in a later post. For now, I shall focus only on checkerboard parity.

Take, for example, the following puzzle.
You will notice that there are 6 dark cells and 6 light cells. Now, suppose you drew a valid Alcazar path on the grid. You would find that along your path, you alternate between light and dark cells. Because there are an equal number of each, you must start at a light cell and end on a dark cell, or vice versa.

Now, say you've solved the puzzle to this point.
(Yes, you could use weak points, but for the sake of demonstration, let's not.) You now have a light exit, as you can see. By parity, the other exit must be dark. So you can eliminate all other light exits, and solve the puzzle that way.
Now look at this puzzle:
Here we have an odd number of cells; 7 dark cells and 8 light cells. This means that you must both start and end on a light cell. If you did not, you would miss some cells. Note that this means that you can't use any of the dark exits at all! So you can eliminate those exits and end up with this:
...which is easily solvable.

This logic doesn't just apply to the whole puzzle. It can also be applied to regions as well!
Note the region in the top left, marked in red. You can only enter and exit it once (as there are only three exits), and it has an equal number of each colour square, so you must enter and exit on opposite colours. So you must use the dark exit as shown:
Be careful, however! Regions that can enter more than once will make things more complicated! Look at the region in the top right. There are four exits, so could they not all be used?

Thankfully, they cannot. If they did, then three would be dark and one would be light. However you draw paths in such a configuration, you will end up with one path that starts and ends on dark cells, and one that starts and ends on different-coloured cells. This would mean that you would use one more dark cell than light.

So you can only enter and exit it once. You can now draw in the light exit and solve the puzzle afterwards.

There is a general rule for any number of exits, though, and it goes as such (click to enlarge):

Note that regions don't have to be rectangular. Unfortunately, I find myself unable to construct an example puzzle for this, so I shall have to end on this particular note.