Introduction

This site exists to make available a small collection of computer games, namely: Sudoku, Kakuro, Sokoban, Minesweeper, Futoshiki, Boggle, Codeword, Sumpuzzle, Jigsaw, Scrabbler, Akari, Bridges and Shikaku. All of the thousands of puzzles contained in the games can be solved by logic: no guessing is required, even when playing Minesweeper. Every game has a hint option.

Contents

The programs can be downloaded for free and are easy to install and run on Linux, Windows and Mac OS X. The programs are written in the language Python and the download includes their source code. This means that those who are interested can see how the programs are written and can change them.

Site Overview

Each of the games is described on its own page. These pages will give an idea of the capabilities and use of the individual games but the best way to find out if you'll like a game is to download and try it. Download and installation information is on the Downloads page. How to report a bug or make suggestions for improvements or additions is described under Contacts. Some programs, such as sudoku, kakuro and sokoban have options which enable players to read in external puzzle files. The accepted file formats are on the Formats page. Information about how the programs are structured and written is on the Coding page. The Patterns page contains Python code and video examples of some of the non-periodic tiling patterns used in the jigsaw game. Similarly, the L-Systems page contains Python code and video examples of some of the L-Systems patterns used in the jigsaw game. Numerous people and web sites have provided help or information which has contributed to the creation of the programs and some are acknowledged are on the Thanks page.


News

August 15th 2016. "Division by Boxes": 6.0

A new game Shikaku or Divide by Box has been added to the download. It is a good game, probably easier than most of the others, and ideal for a quick diversion. In the relatively carefree days back in June we had the "Building Bridges" release, but how appropriate that, after an unforgiveable referendum and the spineless response of the majority of our Parliamentary representatives, our current release is named "Division by Boxes". Unsurprisingly the team are not in the best of spirits and it has been difficult to motivate them to do the testing, but please report any problems found and we'll fix them as quickly as possible.

June 21st 2016. Bridges bug fixes: pzl 5.1

Thanks to all those who dutifully fulfilled our request to report bugs in the first release of Bridges. Some combinations of multiple or incorrectly placed bridges were triggering crashes and the hint function was not working as intended. Hopefully all now fixed.

June 10th 2016. "Building bridges": pzl 5.0

A new game pzl Bridges (or Hashiwokakero) is now included in the download. Give it a try. Further tidying work on the rest of the code. Please report any problems found.

February 25th 2016. Sokoban additions and jigsaw bug fixes: pzl 4.4

Sokoban now has two display size options plus the ability to employ user-defined skins. The Python 3 version revealed some bugs in the jigsaw program which have been fixed.

February 5th 2016. "Five by Five": pzl 4.2

The site has been converted to HTML5 and all pages validated. Coding the site in HTML5 means that videos can be displayed in modern browsers using non-proprietary code and we have added several from the jigsaw game. Most are on the new Patterns and L-Systems coding pages. Flocking and Bouncing animations for jigsaw completion have been added to jigsaw. The code of the programs has been checked with Pylint and numerous small changes made. In addition the code has been processed by 2to3 and consequently improved for compatibility with Python 3. The only differences between the Python 2.7 and Python 3 code are the calls to Tk and with this release, for the first time, we are also making a Python 3 version available.

December 20th 2015. "Wandering guides": pzl 4.1

A minor but useful addition to the Sudoku, Kakuro, Futoshiki and Akari games: when a hint is active and the wand is leaning backwards, an explanation of the hint can be obtained by clicking middle mouse button on the wand. A box will pop up with a concise description of the algorithm employed. A new section The Interface which includes information about this has been added to the website.

October 21st 2015. "Light up with Akari": pzl 4.0

A new game pzl Akari is now included in the download. Give it a try. It has proved a hit with the team. The clock has been changed in Sudoku, Kakuro and Futoshiki. In addition, Minesweeper has a slightly different look.

August 4th 2015. Font specification changes: pzl 3.6

A problem with font sizes was reported for some of the programs when they were used under the Cinnamon desktop environment. The problem may also occur for other desktops. Under Cinnamon the fonts used in the programs, rather than having fixed sizes, could be changed by altering the "Text scaling factor" available within the desktop Preferences menu (Fonts). This scaling was possible because the program code defined the font sizes in "points". This was a poor decision as the fonts must fit within their designated spaces in the grid layouts, which are of fixed sizes. The programs now define font sizes on Linux in "pixels" and hence they are fixed and always fit within the available spaces.

December 18th 2014. Minesweeper bug fix: pzl 3.5

When playing minesweeper, some unscrupulous players click randomly in the hope of avoiding mines by sheer chance and hence of achieving a fast time. Minesweeper does not condone this tactic and deals with it in the following way: if a player clicks on a square which is not touching an exposed square it will always reveal a mine and the game is over. Neat idea, but the program did not distinguish these squares from those containing already exposed mine counts, and clicks on these were also treated as cheating. Too harsh. Now clicks on exposed mine counts are ignored and such players assumed to be clumsy rather than attempting to cheat.

November 23rd 2014. Minor changes: pzl 3.4

1. Jigsaw and scrabbler windows were failing to resize correctly on a Dell XPS laptop running Ubuntu Unity 12.04 LTS, possibly due to a timing issue (kls).

2. Jigsaw failing to start on Arch Linux due to import problem (SF).

October 21st 2014. "Style after substance" bug fix: pzl 3.3

Two bugs reported by user Albert. Thanks.

1. Codeword: the style improvements were not performed or checked carefully enough and the program was broken because, during editing, a test for inequality was inadvertently changed to one for equality.

2. Jigsaw: on Ubuntu, geometry manager replies to queries about window sizes were not always up to date, resulting in crashes caused by division by zero.

September 21st 2014. "Style after substance" pzl 3.2

It has become fashionable for releases of software to be given names and we follow this fad for the first time here: this release is named "Style after substance". The team are all fans of of the late Iain M. Banks and our release names will be in the whimsical style of the ship names in his Culture novels. The current name refers to the team's recent efforts, contained in this release, which aim to make the program code more compliant with the Python Style Guide but which do not add to the functionality of the programs. If they've done their work correctly these changes should not be visible to the player.

Program change. If an external kakuro puzzle has more than one solution (and hence is not a true puzzle) the kakuro solver may take too long searching for an answer. For this reason it now has a built-in time limit and will quit trying when this limit is reached.

August 10th 2014 Kakuro and jigsaw bug fixes, code reorganisation

It was discovered that the algorithm in kakuro used to solved external puzzles was not trying all possible solutions when it needed to guess. This has been fixed and puzzles previously found to be unsolvable can now be solved. In finding the cause of this error a new feature was added to the program: if the solver cannot solve a puzzle it will attempt to draw the puzzle so that the player can check that she has defined it correctly.

The new L-Systems patterns, when not being animated, were not being drawn in the intended position on the board. This has been corrected.

The organisation of the files in the download has been changed. This has resulted in a smaller download and will make program maintenance easier.

July 20th 2014 Scrabbler game released and Jigsaw improved

A new game pzl Scrabbler is now included in the download. This is a SCRABBLE-like game in which player's compete against the computer to make words on a board.

The pzl Jigsaw game now has 19 new classes of built-in patterns for creating puzzles. In addition the control of the sizes of the puzzle , board and pieces has been simplified.

The pzl_launcher program now has an option to uninstall all the pzl programs.

May 30th 2014 Jigsaw puzzle game released

A new game pzl Jigsaw is now included in the download. This game makes jigsaw puzzles from digital images, such as the players photos, and players reassemble them on the screen to create the original image.

May 14th 2014 PZL Games rated 5 stars by Softpedia

The package is now available from the Softpedia site and has been awarded 5 out of 5 by the Softpedia editor.

January 29th 2014 PZL Games Launched

Here at PZL Towers we are justifiably proud of our dedicated and highly skilled team of designers, developers and programmers. They have just completed an excellent set of computer games, namely: Sudoku, Kakuro, Sokoban, Minesweeper, Futoshiki, Boggle, Codeword and Sumpuzzle. These programs are fitting examples of the team's inventiveness, expertise and attention to detail.

Not only are these people outstanding in their respective fields, they are also strong supporters of Open Source and Cross Platform Software, and though it conflicts with management policy and our responsibility to our shareholders, we have decided to respect the team's wishes and to allow these potentially valuable programs to be downloaded at no cost, complete with their source code. Though some may interpret this as a cynical PZL PR stunt we hope that the sensible majority will acknowledge it as a generous gift from a sometimes misunderstood organisation.

 

The Games

The newer games are shown as videos and the others are shown as a series of screenshots, each of which, when clicked will reveal a time-lapsed animation of the game being played using its hint options.

As a courtesy to visitors who may be unfamiliar with the games, and hence need a little extra time to take in what they are seeing, we employ the least dextrous and most slow witted of the team to solve the puzzles displayed in these videos. While it may not show the games in their best light, using this person to make the videos is also good for team spirit, as it affords an opportunity for much warm hearted banter and mutual amusement among the members of the group as they stand around the screen and cheer him on.

Shikaku Example

A video from Shikaku showing the easiest 10x10 puzzle being solved with the grey scale shading switched on. The player selects puzzle number 300 and spots immediately that the 2 clue in the top right is the only one which can reach the corner cell and that a 6 clue can only have a single rectangle. Notice the operations required. Later the player fills in a complete solution for an 8 clue and then uses the thumb icon to check if it is correct. It isn't, and the program colours two incorrect cells black. A further click on the thumb corrects the errors. Further on the player uses the hint button to request a clue. Note throughout how the shading changes as the number of possible solutions diminishes.

Bridges Example

A video from bridges. An unskilled player is shown muddling through, at one point using the hint option to find the next bridge to place, but eventually getting the puzzle solved.

Jigsaw Example

A video from jigsaw showing two puzzles being completed. The first an image file and the second a built in pattern. First the board is set to the desired image size, and then the file is read in and automatically scaled to fit the board. Next the board is enlarged to make space for the jigsaw pieces. Then the pieces are created and scattered about the board. Finally the puzzle is solved using the mouse. The same steps are used for the pattern. To save time for the demonstation the puzzles have been broken into the minimum number of pieces.

Sudoku Example

Sudoku Example

A screenshot from sudoku. The large digits are the current answers and the small digits are the remaining candidate answers for the individual squares. Click to see an animation showing the use of the hint button to solve this complete puzzle. The delay between images is 2 seconds.

Futoshiki Example

Futoshiki Example

A screenshot from futoshiki. The large digits are the current answers and the small digits are the remaining candidate answers for the individual squares. The inequality symbols < and > indicate the relative value of the answers to adjacent squares. Click to see an animation showing the use of the hint button to solve this complete puzzle. The delay between images is 2 seconds.

Kakuro Example

Kakuro Example

A screenshot from kakuro. The strips of squares to be solved are shown in white with their possible answers written in tiny numbers around their edges. The sum squares at the ends of the strips contain the numbers that the strip's answers must make when added together. Here the player has clicked on the 21 at the left end of the horizontal strip of 3, and the program has popped up a list of the 3 combinations of three digits which sum to 21. Click to see an animation showing the use of the hint button to solve this complete puzzle. The delay between images is 2 seconds.

Sumpuzzle Example

Sumpuzzle Example

A screenshot from sumpuzzle showing the beginning of a game. Here only the operators +, -, x and / and the results are shown. The values that make up the sums are missing and each of their squares contains tiny "candidate" numbers 1-9. These are buttons which can be left clicked for removal or middle clicked for setting the number for the square. A right click will replace a deleted candidate. Also seen in this figure is the fact that the player has left clicked on the green icon at the end of the second horizontal sum. This has brought up a list of the 4 possible sets of numbers which satisfy that sum. The player hence knows that the first number in this sum is 5, 6, 8, or 9, that the second is 9, 8, 6 or 5, and the third is 8 or 5. Click to see an animation showing the use of the buttons to solve this complete puzzle. The delay between images is 2 seconds.

Codeword Example

Codeword Example

A screenshot from codeword showing a newly started game. At the top of the window is a Toolbar, a box containing the puzzle number and a clock. Below this are two rows of squares containing the numbers 1-26. Below this is a row of smaller squares containing the letters A-Z. Below this is the crossword grid. To serve as clues three numbers have had their letter assignments (C,F,G) revealed. As the mouse cursor passes over squares in the top two rows it lights up in green the corresponding squares in the crossword grid. Here the cursor is currently on the square for number 7 and their pattern is revealed. It looks like 7 may be assigned to the letter E. Click to see an animation showing this puzzle being solved (though the sharp-eyed will notice that the letter-number assignments are different). The delay between images is 2 seconds.

Boggle Example

Boggle Example

A screenshot from boggle showing a newly started game. At the top of the window is a Toolbar and a clock. Below this is the randomly generated grid. Here shading is being used to indicate the number of words originating from each square. Not surprisingly there are none starting on the letter 'X'. Below the grid is an entry box, here containing the letter 'S' as the player has just left-clicked on the 'S' at the top left of the grid. Correct completed words are automatically transfered to the scrolling list underneath. Click to see an animation showing the first few words being found in this grid. Notice the shading of the letter 'T' fading as the words are entered. The delay between images is 2 seconds.

Minesweeper Example

Minesweeper Example

A screenshot from minesweeper showing a newly started game. The number in a square denotes the number of mines in adjacent squares. Click to see an animation showing the grid being solved entirely by the use of the hint button. The delay between images is 2 seconds.

Sokoban Example

Sokoban Example

A screenshot from sokoban showing a newly started game which has a very simple map with only one box (blue star) and one target (green concentric circles). Click to see an animation showing the puzzle being solved. The player moves the man by using the arrow keys or by clicking on the square he wants him to move to.

Scrabbler Example

Scrabbler Example

A screenshot from scrabbler. At the top of the display is a set of buttons, a clock and the player's and machine's current scores. Below this is a white entrybox for entering words, and the player's current rack of tiles is to its right. Underneath these is the board displaying the laid tiles, those of the player in yellow and of the computer in red. The last word played is always shown in white but will be given the appropriate colour when a new word is added to the board. Each letter has a value and these are summed to give a score for each turn. When tiles are placed on squares that are not green the word score is increased. The notional sack of tiles also contains 2 blank tiles which can be used to represent any letter. When placed on the board the letter designated to these tiles is shown in lower case (for example see the "e" in the bottom row of the board). Click to see an animation showing the player using the hint button for every turn! and with the machine's IQ set down to 10. The delay between images is 2 seconds.

Akari Example

Akari Example

A screenshot from pzl Akari part way through a simple game. The object of the game is to illuminate all the white cells with light bulbs. Bulbs are placed on white cells and each will light its row and column in both directions until blocked by a black cell. What makes the game interesting is that no bulb can illuminate another and that when the puzzle is completed the numbered cells must have exactly their given number of bulbs touching their four sides (any touching their corners do not count). Click to see an animation showing the use of the hint button to solve this complete puzzle. The delay between images is 2 seconds.


The Interface

As far as possible the user interface has been made consistent between games. Please see the adjacent figure in which as an example we show a screenshot from the sudoku game.

Interface Example

Interface Example

A screenshot from sudoku showing an active hint. The large digits are the current answers and the small digits are the remaining candidate answers for the individual squares. Where possible the hint display colours the candidates providing the "reason" for the hint in green and the candidates that can be deleted are coloured red. In row 9 there are two squares which contain only 2 different candidates (2,9, shaded green). As they are the only remaining candidates in these squares, they must be their answers. Therefore the other 2s and 9s in the row (shaded red) can be deleted.

The puzzle icon at the top left is a menu used for selecting options, loading and saving files, and configuring the game. It also includes a help option which summarises the use of each game. The button to its immediate right is the game's identifying icon. It is used within the game to load a new puzzle and can be arranged externally as the shortcut icon for launching the game.

Button Info

Button Info

An information box describing the function of the wand button.

Other buttons are used for requesting hints (wand), checking for errors (thumb) and showing the puzzle solution (sad smiley). Where relevant, immediately to the right of the sad smiley is a box for entering specific puzzle numbers so that they can be loaded. Other numbers show scores and clock ticks. The function of each button can be discovered by clicking on it with the middle mouse button. This causes an information box (see Button Info figure) describing the button to pop up.

Hint Info

Hint Info

An information box describing a currently active hint (here the Naked Pairs algorithm). These boxes can be popped up by clicking middle mouse on the wand icon when a hint is active and the wand is sloping backwards.

One of the aims of the games is to help players to learn how to solve the puzzles, hence the hints. When a hint is shown the wand icon switches to slope backwards. When it is in that position clicking on it with the middle mouse button will cause an information box giving a brief explanation of the hint to pop up (see Hint Info figure).

At any time the player can click on the thumb icon and the program will check the current state of the puzzle for errors. If errors are found they are highlighted and the thumb icon turns to the thumbs down position. A further click on the thumb will remove all the incorrect answers.