Frequently Asked Questions (FAQ)

Table of Contents

General

What's the meaning of the name "Kagiru"?

No, this software isn't named after the place in Papua New Guinea.

Kagiru is Japanese for "to limit", and that inspired this game's name.

Why this word?

Lots of reasons:

  • It's the last word of "Suuji wa dokushin ni kagiru", aka Sudoku.
  • And it's actually these limits that help us solve Suduku puzzles. It's exactly managing the constraints what makes them so interesting. Without them, a 9x9 puzzle would have 6,670,903,752,021,072,936,960 solutions. Constraints help to solve the problem by reducing the number of solution alternatives, hence the complexity of the problem.
  • The very same concept holds for lots of other ideas. Not just Sudoku puzzles, but architectural problems, even the fundamental problems of life can be solved "simply" via adding enough constraints and principles.

And if you don't like the above reasons, you can always think of the word "limited" in terms of how limited this software is ;-)

What does Kagiru's logo stand for?

You probably mean this:

It's the Japanese symbol ("Kanji") for Kagiru, aka "to limit".

Why did you create this game in the first place?

Because i like developing software and i'm too lazy to solve sudoku puzzles by hand.

But there are so many other Sudoku software games available on the Internet?

So what, who cares?

Is Kagiru Sudoku the best Sudoku software?

Sure no. Yet i'm trying to make it better and better all the time.

Ok, I'm interested... what's Kagiru Sudoku's price?

It's free, both free as in free beer as well as in freedom.

Meaning it doesn't cost you a thing. And you can freely distribute the game. And you can even get its (open) source code, if you want to.

On installing Kagiru Sudoku...

An installer, a self-executable, ... which one do I need?

  • Pick the self-executable if you just want to try the game.
    • Download the self-executable to a directory.
    • You'll be able to run it from there.
      • In Windows, you should be able to do this by double clicking the JAR file.
      • On all Java platforms, the following should work: java -jar [insert the name of the jar file here].
  • The installer will help you in properly installing the game into some seperate directory, incorporate it into your start menu, have an uninstaller, ... The installer works multi-platform, thanks to IzPack.

You don't need the sources ZIP file to just run the game.

Do I need any other software to run Kagiru Sudoku?

Well, you do need a Java runtime to run the game.

Is Java on my pc? Or do I have to install it?

Well, it could very well be.

Why don't you try it?

Double click (in Windows). You'll see if it works.

What version of Java do I need?

You do need Java 5.0 to run Kagiru Sudoku.

Doesn't seem to work though... how can I get this Java?

You can download the Java runtime environment at the Sun Java website.

Of course, it won't cost you a thing.

By the way, what hardware is required to run the game?

No idea.

Kagiru Sudoku works fairly well when I tested on some PIII-800 MHz setup i have lying around.

You succeed to run it on lower hardware? Or fail to run it higher? Let me know. So this question can get a better answer.

On using Kagiru Sudoku...

On launching Kagiru...

How come, at startup, I'm in the middle of a puzzle?

  • By default, Kagiru Sudoku restores the last puzzle, in the situation you left it when you closed down the game.
    You can disable this via Save puzzle on exit (Alt_E + E) in the Extra menu.
  • When you launch the game for the very first time, a puzzle is generated.

When I launch Kagiru, it seems to halt, how come?

Note that launching includes an online version check. Depending on the network availability, this could take some time.

If however, Kagiru "halts" for more than a few minutes, it probably couldn't restore its context.

Deleting your kagiru.cfg options file should fix this. You'll find this file in your installation directory. Exceptionally, it can get corrupt, that's why.

Hmmm, my firewall complains Kagiru Sudoku goes online at startup? Why's that?

The game checks if your current version is still the most recent version, and if it's still supported.

All of this is done in the background, yet involves access to the Internet.

Why the version checking?
  • This way, you know when to update your Kagiru Sudoku installation.
  • Older versions can get out of support. Online features can get broken, security breaches could be found, ... this way, you'll know.
  • Plan is to have some online features in Kagiru Sudoku anyway. And for an online game, little problem for online checking.

Note that you can disable this version checking via Version control on startup (Alt_E + V) in the Extra menu.

Does this mean Kagiru will fail to work offline?

When the network is unavailable, Kagiru will continue.

So it's no problem to play the game offline.

Of course, then you won't be notified about game updates.

What languages is the software translated in?

Kagiru Sudoku is currently available in 11 languages in total:

  • German
  • English
  • Spain
  • French
  • Dutch
  • Polish
  • Romanian
  • Russian
  • Swedish
  • Turkish
  • Ukranian

No need for an extra installation to get these: the localisations are really small and included in the binary distribution of the software.

In the application, they're readily available in the menu via View_Language (Alt_V + L) : enjoy!

How, why is my favourite language missing?

Well, you just didn't submit it yet. Nor did any fellow users of your language. That's all.

Know that you're welcome to contribute your translation of Kagiru Sudoku.

In some languages, Kagiru Sudoku tends to fall back to English?

True, some new labels aren't available in all languages yet.

If a label is missing, its English variant is used as a fallback.

What's the meaning of the asterisk next to some labels?

If the English variant is used as a fallback for a label missing in another language, this is highlighted via the asterisk (*) at the end of that label.

On generating puzzles...

Do the generated puzzles have a unique solution?

They do.

How can that be? Are you sure there is only one solution?

Yes, we're sure.

  • The built-in generator tries solving the puzzles before providing you them.
  • The solver, in turn, never "guesses": it only marks a value in a cell when it's 100% sure about it.
  • If the puzzle doesn't solve, the generator won't let you see it, and tries generating a new one instead.

That's (one of the reasons) why generating can take some time. But this way, you're sure you're searching for a unique solution!

Do I have to guess to solve the puzzle?

Ho, my very hard puzzles aren't always very hard! How come?

Well, you may have a point here.

The current version of Kagiru Sudoku uses the number of undefined cells in a puzzle as the (sole) criterium for a puzzle's complexity. This is, however, a rather poor criterium.

The goal is to make better criteria to assess a puzzle's complexity, as well as to make a fast implementation for it. The latter may take some time. And as for finding the better criteria, puzzles solving statistics are shared.

Generating a puzzle can take quite some time, how come?

The current implementation needs optimisation.

The current version is slow / consumes a lot of memory / CPU... why's that?

Remember you've downloaded a 0.x version only.

Kagiru Sudoku is nowhere near finished, and won't be for some time.

It should work correctly and well playable, yet may sometimes not be that performant, yet.

The development of Kagiru Sudoku follows the "Release early, release often" paradigm: you get to profit from it as soon as possibe, you can give feedback or you can contribute.

I found a puzzle in my favourite magazine / newspaper / website... can Kagiru Soduku help me here?

  • Select Puzzle_Input (Alt_P + I) .
  • You can now complete the cells as predefined in the puzzle.
  • Once you're finished defining the puzzle, choose Puzzle_Play (Alt_P + P) to play the puzzle.

If you don't succeed in finishing the puzzle, you can always ask Kagiru to Solve (Alt_P + S) the puzzle :-)

Does the game support shortkeys?

Of course it does.

All functions in the game are accessible via shortkeys.

To quickly navigate in your puzzle, you have the following keys at your disposal:

Shortkey Function
Arrow left Move focus one cell to the left.
Arrow up Move focus one cell to the up.
Arrow right Move focus one cell to the right.
Arrow down Move focus one cell to the down.
Shift + Arrow left Move focus to the left boundary of the puzzle.
Shift + Arrow up Move focus to the top boundary of the puzzle.
Shift + Arrow right Move focus to the right boundary of the puzzle.
Shift + Arrow down Move focus to the bottom boundary of the puzzle.
Ctrl + Arrow left Move focus to the next left boundary of a box.
Ctrl + Arrow up Move focus to the next top boundary of a box.
Ctrl + Arrow right Move focus to the next right boundary of a box.
Ctrl + Arrow down Move focus to the next bottom boundary of a box.
Tab, or Enter Move focus to the next unsolved cell in the puzzle.
Shift + Tab, or Shift + Enter Move focus to the previous unsolved cell in the puzzle.

Of course, the menu has shortkeys, too. These are indicated via the underlined letter, e.g. Alt_P + S for the Puzzle_Save function.

Can I change the keys to my favourite keys?

Actually, you can.

The procedure, for now, is kind of technical:

  1. Copy the file navigation-keys.xml into your JAR's directory, and change what you want to change: Kagiru Sudoku then uses this file, overriding the default key configuration.
  2. The syntax of navigation-keys.xml is pretty straightforward, with one <ACTION>-tag per action, indicating:
    • the key code,
    • if shift, ctrl or alt key have to be down for this action,
    • via the <ORIENTATION>-tag how many cells to move in what direction,
    • via the optional <WRAPPER>-tag what to do when passing beyound the boundary of a row or column, default is to proceed at the other end,
    • via the optional <FILTER>-tag if some cells have to be skipped (e.g. all solved), default is to skip none.

    As for the last two options, if you're somehow handy in Java, you can even implement your own NavigationWrapper or NavigationFilter instances.

Plan is to change this procedure to changing the key configuration via the user interface. This would allow all to change their favourite keys, not just people who like to mess with XML-files.

On Kagiru's automated solving...

What solving technique(s) does Kagiru use?

Is Kagiru Sudoku capable of solving all Sudoku puzzles?

Of course not.

But it can save a lot. All the ones it generated. Even most it didn't generate itself.

What format are the puzzles saved in?

While Kagiru suggests to use the *.kgr extension, it is in fact an XML format.

So it's feasible to:

  • read it yourself, by hand,
  • modify, if necessary or
  • create a utility to interpret, write or convert the files, whatever you want.

What does "Anonymously share difficulty statistics" mean?

How anonymous is that? What exactly is shared?

The following properties are shared when you solve a puzzle:

  • the time it took you to solve the puzzle,
  • the original puzzle's number of undefined cells,
  • some parameters on how difficult it was for the software to automatically solve this puzzle,
  • all puzzle's cells,
  • the puzzle's hash code (internal Java identifier) and
  • the current version of Kagiru Sudoku you're running.

At server side, your IP is logged. This happens on most webservers, and is in the case of Kagiru Sudoku used to filter spam.

Note that no personal data is shared.

You can check Kagiru Sudoku's source code on this, and disable this feature via Anonymously share difficulty statistics (Alt_E + A) if you want to.

Why this sharing?

To collect as much information as possible on puzzle's difficulty.

To improve how Kagiru assesses a puzzle's difficulty.

What are symmetric puzzles?

This is a (rotationally) symmetric puzzle:

This is not:

It is generally accepted for good Sudoku puzzles to be symmetric puzzles.

At the end of a puzzle, I often notice having made a mistake at the beginning. Can't Kagiru help here?

That's exactly what the following option is for: View_[Errors in play] (Alt_V + E) .

When enabled, this helper will show error cells as you complete them.

E.g. when you type a 5 in a row where there is already a 5, they will both show red.

On Kagiru Sudoku's development...

Can't Kagiru Sudoku do this or that better?

Maybe. Make your suggestion online.

Good feedback is what makes software better.

I found a bug in Kagiru Sudoku? What now?

Report it online. So it can be fixed. Be sure, though, your bug isn't reported yet.

What features can I expect from Kagiru Sudoku's next version?

Check the new features online. The higher the priority, the sooner it'll be in the next version of Kagiru Sudoku.

When is the next version of Kagiru Sudoku due?

When i feel like "shipping" it.

Note that you will be informed about the availability of new version when you launch Kagiru.

If you have an outdated version, you'll see the following message:

If you have version that is no longer supported, you'll see the following error message, and you'll no longer be able to continue:

What feature are you as Kagiru's developer most proud of?

The localication, without a doubt, that is, the translation in 11 languages.

Why's that?

Because it's important for software to interface with its users in an as much familiarising as possible way.

Can I contribute?

Yes, you can.

If you want to contribute a new feature for Kagiru or patch a bug, let me know.

But you do me at least as much favour by translating Kagiru Sudoku in your own language.

How can I translate Kagiru Sudoku in another language?

There is a special page dedicated to translating Kagiru Sudoku.

How do I build Kagiru Sudoku from scratch?

There are binary and platform independent downloads available. So you don't have to.

But ok, if you're still reading this, and you really, really want to... it's not that hard. There is a special page on building Kagiru Sudoku from scratch.

On Kagiru Sudoku using Java...

Why is Kagiru Sudoku developed in Java?

Because i'm lazy. Let me clarify on this...

  1. In the first place, I like the language as a programming language by itself: lets you express powerful statements without too much lines of code. I hate copy/pasting code, by principle, because you always end up regretting it in terms of changes or defects. Java simply allows you to maintain a good OO design. Apart from being fun, that's also plain efficient. And given my lazyness... ;-)
  2. It's platform independent. Which is great. Because i like having my software available for multple platforms, and i'm lazy. Way too lazy to do porting efforts :-)
  3. All of that comes with a great, standard library, allowing you to really concentrate on the application and its logic. And not having to put effort in other things. Which is great, me being lazy and all ;-)
  4. On top of that, there are great tools for Java. Because it's a standard, you can pick great (and free) things right off the webshelf. Really great for lazy people like me ;-)
  5. I know the language. So i don't have to learn a new one. Though i like to learn new stuff. But it's just, i'm lazy, remember :-)

All of this sums up to Java being one of the fastest languages, if not the fastest, in terms of development efficiency, for this kind of applications.

I understand Kagiru Sudoku is written in Java... why no handheld version?

Won't be for anytime soon.

Handheld Java software requires both significantly specific libaries as well as another attitude in terms of software engineering: code and data needs to much more optimised for compactness. In doubt between with maintainability, i choose the latter.

Why the dependency for "Java 5.0"?

Because i like generics.

And these are only supported as of Java 5.0.

Yeah, i put my personal programmer's luck above that of many users still having an older Java version ;-)

On Myjaut...

What is Myjaut?

Myjaut is a self-made, multi-purpose library on top of the Java API to handle various particular, yet not Kagiru specific functions like:

  • efficient XML file handling,
  • runtime localisation,
  • file lookup,
  • JRE safe starting,
  • application controlling,
  • options handling,
  • user interfacing,
  • version lookup & checking,
  • command handling & monitoring,
  • tokenizing and
  • property management.

Do Kagiru Sudoku users need to bother about Myjaut?

No, they don't.

Myjaut is included inside the Kagiru Sudoku binary downloadables.

Usage of Myjaut and seperation of generic functions in that library is a development decision. It should be transparant for end users of the software.

Asking end users to install Myjaut before installing Kagiru Sudoku would be way too much overhead.

I wonder how Kagiru Sudoku manages this or that trick?

Check the sources. You can find them online:

Feedback always appreciated!

What about another question I have?

Let me know!

So I can answer you, and add the answer here, as well.