Ciphercode Puzzles Cijfercode Puzzels

Introduction Introductie

Codebreaker puzzles are an odd member of the crossword family, with the grid already fully filled in. However, the letters are replaced by numbers, each number corresponding with a letter. Unless stated explicitly all 26 letters of the alphabet are used. Generally one of more clues are given.
It is also known as codebreaker or codecracker.
Cijfercode puzzels zijn een buitenbeentje in de familie van kruiswoord-puzzels, in het diagram staat namelijk al een volledig ingevuld kruiswoordraadsel. De letters zijn echter vervangen door cijfers, waarbij gelijke cijfers staan voor gelijke letters. Tenzij uitdrukkelijk vermeld, worden alle 26 letters van het alfabet gebruikt. Meestal worden een of meer hints gegeven.
Voor een puzzel in het Nederlands geldt nog een extra regel: de Y wordt zowel voor de Y-grec zelf als de letter-combinatie IJ gebruikt. Gemengd gebruik van de Y en de IJ in een puzzel is een kwestie van smaak. In een puriteinse puzzel zullen ofwel alleen Y-s ofwel alleen IJ-s voorkomen. Maar als dat niet het geval is, dan zal toch op zijn minst het horizontale gebruik van de Y moeten overeenstemmen met het verticale gebruik ervan.
Het is eveneens bekend onder de naam codebreker of codekraker.

It was to avoid a quarrel on monday morning as 'de Volkskrant' (the paper) dropped on the doormat with its weekly codebreaker of Jan Meulendijks, that made me thinking of brewing up a piece of dynamic html with which to solve a codebreaker puzzle on the computer. And so I did.
Once that got into shape, the next step to create codebreakers wasn't that huge anymore. And it turned out that setting such a crossword was as much fun as solving it.
The fruits of this pursuit are (cq become) available on my website, and so may enjoy other people as well. The archive will be enlarged on a decade base with the most recent puzzle.
Om gevechten te voorkomen op de maandagmorgen als de Volkskrant met de codekraker van Jan Meulendijks op de mat viel, liep ik al een tijdje met het idee om een stukje dynamic html te brouwen, waarmee een cijfercode-puzzel op de computer is op te lossen. En zo gedacht, zo gedaan.
Toen dat eenmaal vorm begon te krijgen, was de stap naar het zelf creëren van cijfercodes niet zo groot meer. En het bleek dat het maken van een puzzel minstens net zo leuk is dan het oplossen ervan.
De vruchten van die bezigheid zijn (cq komen) beschikbaar op mijn website, en ik hoop dat zo ook een ander er nog plezier aan kan beleven.
Het archief wordt met de regelmaat van eens per tien dagen uitgebreid met de meest recente puzzel.

Computer Use Computer Gebruik

This type of puzzle is extraordinary well suited to be solved with the support of a computer-program, for example by maintaining programmaticly which letters have been used, or by automaticly replacing a ciphercode by a letter. Also repairing a mistake does no longer leave an unreadable mess and is done in the wink of an eye.
The ciphercode-software on this site does all this.
Dit type puzzel is uitermate geschikt om te worden opgelost met behulp van een computer-programma, bijvoorbeeld door het bijhouden welke letters gebruikt zijn, of door het automatisch vervangen van een cijfercode door een letter. Ook laat het ongedaan maken van een vergissing niet langer een onleesbare bende achter en is in een ogenblik gedaan.
De cijfercode-software op deze site biedt dit alles dan ook.


The grid of the puzzle is in general accompanied by a code-list to keep an overview of the codes which are already known cq will become known during solving the puzzle. Below the diagram and code-list a letterbar is available to keep an overview of the used letters. Below the letterbar a button-bar and a message-bar are shown. Het diagram van de puzzel wordt in het algemeen vergezeld door een code-lijst om een overzicht bij te houden van de bekend gemaakte cq geworden codes. Onder het diagram en de code-lijst is aan letterbalk beschikbaar om een overzicht op de gebruikte letters te houden. Onder de letterbalk worden een knoppenbalk en een informatiebalk getoond.
( Screenshot Schermbeeld )
Using the software is easy. Once you have figured out which letter comes where, placing it in the grid is simple. Using the mouse a cell in the grid or the code-list can be selected; the selected cell is shown highlighted. In the selected cell a letter (A...Z) can be placed using the keyboard, by using the space-bar a letter can be erased. Het gebruik van de software is makkelijk. Als U heeft uitgedacht waar een bepaalde letter moet komen, is het plaatsen in het diagram eenvoudig. Met behulp van de muis wordt een vakje in het diagram of de code-lijst aangewezen. In het aldus aangewezen lichtgeel gemarkeerde vakje kan met behulp van het toetsenbord een letter (A...Z) worden gezet, met de spatiebalk kan een ingevuld vakje worden gewist.

Assistance Level Ondersteuningsniveau

Using a computer-program certainly contributes to the ease - and the speed - of solving the puzzle, though it also takes some of the charm when using pen and paper. For that reason the program has a number of build-in levels of assistance. Gebruikmaking van een computer-programma draagt bij aan het gemak - en de snelheid - van het oplossen van de puzzel, hoewel het wel iets van de charme van het gebruik van pen en papier wegneemt. Om die reden heeft het programma een aantal ingebouwde ondersteunings-niveaus.

Level Balpoint
The programmatic equivalent of solving the ciphercode with pen and paper, each letter has to be placed 'manually' in the grid itself as well as in the code-list. Toggling the usage of letters has also to be done 'manually'. Such a manual action cannot be undone.
Niveau Balpen
Het programmatische equivalent van het oplossen van de cijfercode met pen en papier, elke letter moet 'handmatig' worden ingevuld in zowel het diagram als de code-lijst. Het wegstrepen van de letters moet ook 'handmatig' worden gedaan. Zo'n handmatige actie kan niet ongedaan worden gemaakt.


Level Pencil
Almost identical to 'balpoint', except that one can erase a letter or replace it by another.
Niveau Potlood
Bijna identiek aan 'balpen', behalve dat men een letter kan wissen of zelfs vervangen door een andere.


Level Standard
Offers just a little programmatic support at solving the ciphercode. The usage of the letters is kept automaticly. Placing a letter in the grid is automaticly propagated to the code-list. There is given a warning when a conflict is detected.
Niveau Standaard
Biedt een beperkte programmatische ondersteuning bij het oplossen. Het gebruik van de letters (in de letterbalk) wordt automatisch gedaan. Het invullen van een letter in het diagram wordt automatisch verwerkt in de code-lijst. Er wordt een waarschuwing gegeven als er een conflict wordt geconstateerd.


Level de Luxe
Offers some more assistance as the standard. Placing a letter in the code-list is automaticly propagated to the whole grid. There is given a message when a conflict would occur.
Niveau de Luxe
Biedt wat meer ondersteuning dan de standaard. Het invullen van een letter in de code-lijst wordt automatisch doorgevoerd in het hele diagram. Er wordt een boodschap gegeven als er een conflict dreigt te ontstaan.


Level Turbo
The 'race monster'. Placing a letter is automaticly propagated both to the code-list and the whole grid. If a conflict is detected it will be solved automaticly. Hoovering the cursor over a cell in the code-list will pop up the number of occurences of that code in the grid.
Niveau Turbo
Het 'race monster'. Het invullen van een letter wordt automatisch doorgevoerd in de code-lijst en het hele diagram. Ook bij de constatering van een conflict wordt de laatste letter-invoer doorgevoerd. Het laten zweven van de cursor boven een (leeg) vakje van de code-lijst laat het aantal voorkomens van die code in het diagram tevoorschijn opkomen.

Cell Size Adaption Aanpassing Celgrootte

De size of the typeface can be adapted, and relates directly to the size of the cells in the grid and so the grid itself. The size of the digits cannot be changed.
The size of the screen itself can be adapted in the standard way by 'dragging' the borders.
De grootte van het lettertype kan naar keuze worden ingesteld, met daaraan direct gerelateerd de grootte van een vakje in het diagram en dus ook het diagram zelf. De grootte van de cijfers kunnen niet worden gewijzigd.
De grootte van het scherm zelf kan op de standaard wijze worden aangepast door de randen te 'verslepen'.
( Cellsizes Vakjesgrootte )
Cell resize
By using the two buttons the size of the typeface of a letter can be enlarged or reduced, with a minimum of 18 pixels and a maximum of 36 pixels. The keys '+' and '-' on the keyboard will have the same effect.
Vergroten / verkleinen vakje
Met behulp van de twee knoppen kan de grootte van het lettertype worden gewijzigd, met een minimum van 18 beeldpunten, en een maximum van 36. De '+' en '-' toetsen op het toetsen bord hebben hetzelfde effect.


Save settings
The preferences (the fontsize, the position and size of the window, and the assistance-level) can be saved by means of a so-called cookie. Whenever the program is started later on it will use these saved preferences.
To prevent pollution on your computer the cookie has a tenability of one full year.
Opslaan instellingen
De privé-instellingen (de lettergrootte, de positie en grootte van het venster, en het ondersteuningsniveau) worden opgeslagen in een zogenaamd cookie (onder de namen CC17x13_AZSIZE, CC17x13_WINDOW en CC17x13_OPMODE). Bij een volgende start van het programma worden de opgeslagen instellingen gebruikt.
Om de vervuiling van uw computer te verminderen heeft het cookie een houdbaarheidstijd van een jaar).

Help on solving Hulp bij het oplossen

Help on solving the puzzle is only available when the solution (item CODELIST) is present in the source-file. Hulp bij het oplossen wordt alleen geboden als de oplossing (item CODELIST) aanwezig is in het bron-bestand.

Verify solution
The filled in part of the puzzle is verified. When a conflict is detected the erraneous letters are highlighted in red. On request the error(s) are erased.
Controle van oplossing
Het ingevulde deel van de puzzel wordt gecontroleerd. Als er een afwijking wordt geconstateerd worden de foute letters in rood weergegeven. Desgevraagd worden de fouten verwijderd.


Provide solution
After confirmation the complete solution will be shown.
Geef oplossing
Na bevestiging zal de volledige oplossing worden vertoond.


Help
Activates this help page.
Help
Activeert deze hulp pagina.

Keyboard usage Gebruik toetsenbord

A letter (A..Z) will be placed in the selected highlighted cell. Depending on the level of assistance there is taken action when a conflict is detected with the already placed letters.
A space will erase the letter in the selected highlighted cell. However, a clue can not be erased. And in level ballpoint erasing is not allowed at all.
A commercial-at sign (@) will show all cells with the same code as the selected highlighted cell.
A plus sign (+) enlarges the fontsize (and so each cell and the complete grid), a minus sign (-) reduces the fontsize.

If the solution is present in the source-file two more keys are supported:
A question mark (?) will denote if the letter in the selected highlighted cell is correct.
An exclamation mark (!) will provide the correct letter in the selected highlighted cell.
Een letter (A..Z) wordt in het geselecteerde vakje geplaatst. Afhankelijk van het ondersteunings-niveau wordt actie ondernomen als er een conflict is met de al ingevulde letters.
Een spatie verwijdert de letter in het geselecteerde vakje. Echter, een hint kan niet worden verwijderd. En op niveau balpen is verwijderen nooit toegestaan.
Een apenstaartje (@) toont alle vakjes aan met dezelfde code als het geselecteerde vakje.
Een plusteken (+) vergroot de lettergrootte (en dus elk vakje en het complete diagram), een minteken (-) verkleint de lettergrootte.

Als de oplossing aanwezig is in het bron-bestand worden nog twee toetsen ondersteund:
Een vraagteken (?) geeft aan of the letter in het selecteerde vakje correct is.
Een uitroepteken (!) geeft de correcte letter in the selecteerde vakje.

XML format XML formaat

The data of the puzzle are stored in a .xml file, a format that is recognized by most of today's internet browsers. This has the big advantage of almost fully uncoupling the presentation of the puzzle and the other software assistance, and that everybody able to work with a text-editor can put his own puzzles to the computer. De gegevens van de puzzel zelf zijn opgeslagen in een .xml bestandje, een formaat dat tegenwoordig door de meeste internet browsers wordt ondersteund. Het grote voordeel is dat de presentatie van de puzzel en de andere software-ondersteuning volledig is losgekoppeld, en dat eenieder die overweg kan met een tekst-verwerker zijn eigen puzzels op de computer zetten.
( .XML-File example Voorbeeld .XML-bestand )
To enable that direct inputting of a puzzle, at the design there is deliberately choosen for a simple xml-layout, such that the text in the xml-file resembles a puzzle on paper. Juist om het direct intoetsen van een puzzel makkelijk te maken is er bij het ontwerp met opzet voor een simpele xml-opmaak gekozen, waarbij de tekst in het xml-bestand lijkt op een puzzel op papier.

The .xml-file always starts with a identification-line telling the browser what type of file this is (xml of version 1.0). Next comes a line telling the browser where to look for the transformation-script with which the xml-data will be transformed into html. The remaining part is the xml-data consisting of a xml root-element starting with <BODY> and closed by </BODY> in which a number of child-elements is situated.
The sections below give a summary of the supported child-elements; all child-elements are optional, except for the <DIAGRAM>-element.
Het .xml-bestand start altijd met een identificatie-regel die de browser verteld wat voor type bestand het is (xml version 1.0). Vervolgens komt een regel die de browser verteld waar de transformatie-script staat voor het omzetten van de xml-data in html. Het resterende deel is de xml-data bestaande uit een xml-element beginnend met <BODY> en beeindigd met </BODY> waarbinnen een aantal sub-elementen is gerangschikt.

<LANGUAGE>
The <LANGUAGE>-element specifies the language used in messages and button-captions.
Possible values: EN, NL
Default value: EN
Note: The value is not case-sensitive.
Het <LANGUAGE>-element geeft de taal aan die wordt gebruikt in boodschappen en de knop-titels.
Mogelijke waarden: EN, NL
Standaard waarde: EN
Opmerking: De waarde is niet hoofdlettergevoelig.

<MODE>
The <MODE>-element specifies the assistence-level.
Possible values: Balpoint, Pencel, Standard, Luxe, Turbo
Default value: Standard
Note: The value may be abbreviated to a single letter and is not case-sensitive.
The <MODE>-element specifies the assistence-level.
Mogelijke waarden: Balpen, Potlood, Standaard, Luxe, Turbo
Standaard waarde: Standaard
Opmerking: De waarde kan worden ingekort tot een letter en is niet hoofdlettergevoelig.

<TITLE>
The <TITLE>-element is displayed in the message-field in the button-bar.
Default value: -
Het <TITLE>-element wordt getoond in het boodschap veld in de knoppenbalk.
Standaard waarde: -

<ORIGIN>
The <ORIGIN>-element is displayed on the left side of the information-bar.
Default value: -
Het <ORIGIN>-element wordt getoond in het linker deel van de informatie-balk.
Standaard waarde: -

<AUTHOR>
The <AUTHOR>-element is displayed on the right side of the information-bar.
Default value: -
Het <AUTHOR>-element wordt getoond in het rechter deel van de informatie-balk.
Standaard waarde: -

<DIAGRAM>
The <DIAGRAM>-element defines the layout by defining the usage of each of the cells in the grid. There are four types of cells: besides from the white and the black cells there are index cells and empty cells. The white cells contain a ciphercode, the black cells are used to seperate the words, the index-cells function as a quick lookup list, and the empty cells are used to seperate the index-cells from the blacks and the whites.
A number of one or two digits (eg 15) denotes a white cell; a double equal-sign (==) denotes a black cell; a double minus-sign (--) denotes a empty cell and a number between square brackets (eg [03]) denotes a index cell. Cells are seperated by white space (one or more spaces or a tab); (alternatively you may use a comma as a seperator between cells). At an index-cell the closing bracket also serves as cell-seperator, whereas a space within square brackets is ignored. Each line of text corresponds with a row of cells (alternatively you may use a semicolon as a seperator between rows).
Het <DIAGRAM>-element geeft de opmaak door het gebruik van elk vakje afzondelijk in het rooster te geven. Er worden vier soorren vakjes onderscheiden: naast de witte en de zwarte vakjes bestaan index-vakjes en lege vakjes. De witte vakjes bevatten een cijfercode, de zwarte vakjes worden gebruikt om woorden te scheiden, de index-vakjes functioneren als opzoek lijstje en de lege cellen worden gebruikt om de index-vakjes te scheiden van de witte en de zwarte.
Een getal van een of twee cijfers (bv 15) betekent een wit vakje; een dubbel gelijk-teken (==) betekent een zwart vakje; een dubbel min-teken (--) betekent een leeg vakje en een getal tussen rechte haken (bv [03]) betekent een index-vakje. Vakjes worden van elkaar gescheiden door een of meer spaties of een tab (als alternatief kan een komma als scheidingsteken worden gebruikt). Bij een index-vakje dient de sluithaak tevens als een scheidingsteken, terwijl een spatie binnen rechte haken wordt genegeerd. Elke tekstregel komt overeen met een rij vakjes (als alternatief kan een puntkomma als scheidingsteken tussen rijen worden gebruikt).

<CLUE>
Each <CLUE>-element supplies a solving-clue. In the real world on paper this is done by prefilling one or more letters in the grid. A clue can be placed in a white cell or in an index-cell.
Format 1 (for both index-call as white cell):
<CLUE>cellid=letter</CLUE> (eg <CLUE>D7=R</CLUE>) or
The cellid is build from a letter (A is first row, B is second row, ...) and a number (1 is first column, 2 is second, ...); all cells (also index and empty) are counted !
Format 2 (only for index-cell):
<CLUE>letter=code</CLUE> (eg <CLUE>R=12</CLUE>)
Format 3 (only for white cell):
<CLUE ROW="row-number" COL="column-number">letter</CLUE> (eg <CLUE ROW=4 COL=7>R</CLUE>)
The row- and column-nummer start at 1, and denote the row resp. column within the crossword itself; so index- and separator-cells do not count.
Elk <CLUE>-element geeft een voorgift. In de echte wereld op papier wordt dat gedaan door een of meer letters in het diagram te plaatsen. Een voorgift kan zowel in een leeg vakje als in een index-vakje worden geplaatst.
Formaat 1 (zowel bij index-vakje als bij blank vakje):
<CLUE>cellid=letter</CLUE> (bv <CLUE>D7=R</CLUE>) of
De cellid is opgebouwd uit een letter (A is eerste rij, B is tweede rij, ...) en een nummer (1 is eerste kolom, 2 is tweede, ...); alle vakjes (ook de index- en scheidings-vakjes) worden meegeteld !
Formaat 2 (alleen bij index-vakje):
<CLUE>letter=code</CLUE> (bv <CLUE>R=12</CLUE>)
Formaat 3 (alleen bij blank vakje):
<CLUE ROW="rij-nummer" COL="kolom-nummer">letter</CLUE> (bv <CLUE ROW=4 COL=7>R</CLUE>)
Het rij- en kolom-nummer beginnen bij 1, en geven de rij cq kolom binnen het kruiswoord zelf aan; dus index- en scheidings-vakjes worden niet meegeteld.

<CODE>
Each <CODE>-element supplies one or more letters of the solution in a comma- seperated list of 'letter=code' elements (eg <CODE>A=7,K=21</CODE>)
nb: The equal sign may be omitted
Elk <CODE>-element geeft een of meerdere letters van de oplossing weer in een door komma's gescheiden lijst van 'letter=code' elementen (bv <CODE>A=7,K=21</CODE>)
nb: Het gelijk teken mag worden weggelaten

<CODELIST>
The <CODELIST>-element supplies all letters of the solution; the first letter has code 1, the second code 2, and so on (eg <CODELIST>HAFMO...IZ</CODELIST>). Het <CODELIST>-element geeft alle letters van de oplossing weer; de eerste letter heeft code 1, de tweede code 2, enzovoort (bv <CODELIST>HAFMO...IZ</CODELIST>).

When a clue-letter is given by means of a <CODE> or <CODELIST>-element there is an alternative way to provide a clue: by replacing the number in the grid by the letter. Als de code van een letter-aanwijzing bekend is door middel van een <CODE> of <CODELIST>-element dan is er een alternatieve manier om een aanwijzing te verzorgen: door het vervangen van de code in het diagram door de letter.
( Clue alternative Alternatieve aanwijzing )

Uploading puzzle-data Aanleveren puzzel gegevens

All internet-browsers support the XML-formaat, however de current generation has a much more strict security policy. They do not allow that the code of the puzzle (in the xml-file) and the transform-script (ciphcode.xsl) reside on a different location; sometimes they require both are placed in the same map.
To resolve this problem there is a page ccxml.htm dedicated to execute the xml-file on a local disc via the website.
Alle internet-browsers kennen tegenwoordig het XML-formaat, echter de huidige generatie is veel strikter is hun veiligheids beleid. Zij staan niet toe dat de code van de puzzel (in het xml-bestand) en het vertaal script (ciphcode.xsl) op een verschillende plaats staan; sommige vereisen zelfs dat ze in een en dezelfde map worden geplaatst.
Om dit probleem te ondervangen staat er op de website een speciale pagina ccxml.htm om een xml-bestandje op de lokale schijf via de website uit te voeren.

Future Enhancements Toekomstige uitbreidingen

- Introduction of letters outside the basic latin alphabet, like IJ of ß
- Page for creating a ciphercode in xml-format.
- Invoering van letters buiten het basis latijnse alfabet, zoals IJ of ß
- Pagina voor het aanmaken van een cijfercode in xml-formaat.

last modified: 21-jan-2014