{"id":217,"date":"2023-08-01T10:32:15","date_gmt":"2023-08-01T08:32:15","guid":{"rendered":"https:\/\/actilud.com\/info\/en\/?p=217"},"modified":"2025-03-31T10:44:42","modified_gmt":"2025-03-31T08:44:42","slug":"creating-zebra-puzzle","status":"publish","type":"post","link":"https:\/\/actilud.com\/info\/en\/creating-zebra-puzzle\/","title":{"rendered":"Creating an zebra puzzle from scratch"},"content":{"rendered":"<p><strong>Let&#8217;s use the Actilud website&#8217;s zebra puzzle editor to create a puzzle in three steps.<\/strong><\/p>\n<p>Have you ever tried to create a zebra puzzle yourself? It&#8217;s not easy, is it? There&#8217;s a lot of checking to be done! After all, it&#8217;s not enough just to write down different logical propositions. They must not contradict each other, and they must lead to a joint solution, which is rare enough the first time around! Of course, the solution also has to be unique! And it&#8217;s best to avoid redundant proposals if we want our puzzle to be interesting&#8230;<\/p>\n<p>In short, it was a tedious job&#8230; until now. Because now the machine can take care of the tedious part, thanks to the <a href=\"https:\/\/actilud.com\/fr\/logigrammes_edit\" target=\"_blank\" rel=\"noopener\">integramme editor on the Actilud website<\/a> . The software is indeed capable of testing thousands of grid combinations in a few seconds&#8230; allowing you to concentrate on the essential, the most interesting part: the <strong>design<\/strong> . All in three steps.<\/p>\n<p>In short, it was tedious work&#8230; until now. But now the machine can take care of the tedious part, thanks to the <a href=\"https:\/\/actilud.com\/en\/logigrammes_edit\">Actilud zebra puzzle editor<\/a>. The software is capable of testing thousands of grid combinations in a matter of seconds&#8230; allowing you to concentrate on the essential, most interesting part of the job: the design. All in just three steps.<\/p>\n<p>The three stages are:<\/p>\n<ul>\n<li><strong>planning<\/strong>: defining the story to be told, creating the grids with their headers and items;<\/li>\n<li><strong>coding<\/strong>: programming the instructions for the Actilud designer. These instructions define the nature of the logical propositions to be generated. It is these propositions that will determine the level of difficulty of the puzzle. At the end of this phase, formal proposals are obtained;<\/li>\n<li><strong>drafting<\/strong>: transformation of formal proposals into clear, readable statements.<\/li>\n<\/ul>\n<p><!--nextpage--><\/p>\n<h1><span class=\"\">A- PLANNING<\/span><\/h1>\n<p>Before you start, take a moment to imagine the situation and the story you&#8217;re going to tell. Then enter the editor: <em>Zebra puzzles<\/em>, <em>zebra puzzle editor.<\/em><\/p>\n<h2>Starting point<\/h2>\n<p>The first phase begins by clicking the <em>Design&#8230;<\/em> button , which is displayed at the very beginning.<br \/>\nThe first three steps are identical to those performed in <em>solver<\/em> mode :<\/p>\n<ul>\n<li>indicate the number of headers,<\/li>\n<li>enter the size of the grids,<\/li>\n<li>fill the table with headers and items.<\/li>\n<\/ul>\n<p>Once you&#8217;ve finished, click <em>Next<\/em>. The advisor then suggests whether to continue (<em>Next<\/em>) or to finish. This time, unlike in <em>solver mode<\/em>, let&#8217;s click <em>Next<\/em>, as we need to enter new information.<\/p>\n<h3>A little vocabulary<\/h3>\n<p>A <em>series<\/em> includes a <em>header<\/em> with its <em>items:<\/em><\/p>\n<blockquote><p>First names: Alice, Bob, Carol, Denis, Enzo<\/p><\/blockquote>\n<h6><em>The First Names<\/em> series is made up of the <em>First Names<\/em> heading and the items <em>Alice, Bob, Carol, Denis, Enzo<\/em> .<\/h6>\n<h2>Additional information<\/h2>\n<h3>Ordering and adding<\/h3>\n<p>In this window you must check the headers whose items are ordered and those which are summable.<\/p>\n<h4>ordered items<\/h4>\n<p>Items have a value that follows an <strong>ascending<\/strong> or <strong>descending<\/strong> progression . Here are some examples of ordered items:<\/p>\n<blockquote><p>Age: 12 years, 13 years, 15 years, 20 years, 23 years (increasing progression)<\/p>\n<p>Weight: 80kg, 70kg, 50kg, 45kg, 40kg (decreasing progression)<\/p><\/blockquote>\n<p>Note that here there is no regularity in the progression between items. This is not absolutely essential, except for an instruction.<\/p>\n<p>This is not an ordered series:<\/p>\n<blockquote><p>Price: \u20ac10, \u20ac15, \u20ac14, \u20ac16, \u20ac19: not ordered<\/p><\/blockquote>\n<p>The most interesting series are those that have a regular progression: the gap between consecutive values \u200b\u200bis always the same.<\/p>\n<blockquote><p>Age: 12 years, 13 years, 14 years, 15 years, 16 years (regularly increasing progression of 1 year)<\/p>\n<p>Weight: 80kg, 75kg, 70kg, 65kg, 60kg (regular decreasing progression of 5kg)<\/p><\/blockquote>\n<p>I&#8217;ve indicated numerical values \u200b\u200bhere, but in fact, any sorting system is valid. For example, alphabetical order. But later, you&#8217;ll have to manually associate numbers with it.<\/p>\n<blockquote><p>City: Amiens, Bordeaux, Caen, Dijon, \u00c9cully: alphabetical order, 1 letter difference.<\/p><\/blockquote>\n<blockquote><p>Any ordered headers allow the use of the THRESHOLD, BIPLET, TRIPLET, BEFORE instructions.<\/p>\n<p>Regular ordered headers allow the additional use of the GAP instruction.<\/p><\/blockquote>\n<h4>Summable items<\/h4>\n<p>Let&#8217;s imagine a puzzle in which farmers harvest apples and pears. In this case, it is possible to create propositions like:<\/p>\n<blockquote><p>Alice harvested 15 tons of fruit.<\/p><\/blockquote>\n<p>Here you have to add the items in the series: apples and pears. See the puzzle &#8221; <em>At the Orchard&#8221;<\/em> on Actilud.<\/p>\n<p>If you want to use them, you therefore need <strong>at least two summable headers.<\/strong><\/p>\n<blockquote><p>Summable headers allow the use of SUM and TOTAL instructions.<\/p><\/blockquote>\n<h3>Entering numeric values \u200b\u200bfor fields<\/h3>\n<p>Once the fields have been checked, the advisor will display pages for each header with the items and numerical values it has tried to determine.<\/p>\n<p>You should check that the numerical values are correct, correct them if necessary, and fill in any blanks. Decimal numbers are accepted. Do not indicate units (kg, km, etc.)<\/p>\n<p>Series must be ascending or descending.<\/p>\n<h2>Type the title and enter the game<\/h2>\n<p>This is the last step. You can come back to this window later. The title and description will be displayed by the advisor when the puzzle is started.<\/p>\n<p>To return to the planning phase at any time, use the menu tool, then plan, then edit.<\/p>\n<figure id=\"attachment_356\" class=\"wp-caption aligncenter\" aria-describedby=\"caption-attachment-356\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-356\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/carrefour.png\" alt=\"\" width=\"64\" height=\"60\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/carrefour.png\" \/><figcaption id=\"caption-attachment-356\" class=\"wp-caption-text\">The menu<\/figcaption><\/figure>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-366 alignleft\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/save.png\" alt=\"\" width=\"29\" height=\"29\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/save.png\" \/>Before continuing, it&#8217;s time to make a backup; a file is created in your computer&#8217;s downloads folder.<\/p>\n<h2>A word about privacy<\/h2>\n<p><em>All<\/em> work you do in the <em>zebra puzzle <\/em>section is managed locally, on your own machine. No information concerning the content of your puzzle is transmitted to the server.<\/p>\n<p><!--nextpage--><\/p>\n<h1><span class=\"\">B- CODING<\/span><\/h1>\n<p>The <em>designer<\/em> is a powerful engine that is used on Actilud in the puzzles <em>&#8220;Jogging&#8221;, &#8220;Kite&#8221;, &#8220;Fashion Show&#8221;, &#8220;Sand Yacht&#8221;, &#8220;Orchard&#8221;<\/em> . It allows you to create random, different puzzles of varying difficulty, depending on the programming.<\/p>\n<p>It therefore needs to be programmed with the instructions present in the left-hand selector, which offers 9 instructions.<\/p>\n<p>Once programmed, the designer executes the instructions and generates a puzzle in the form of formal statements. This riddle is already playable, but to be readable by everyone, the formal statements still need to be translated into a text that everyone can understand.<\/p>\n<p>To enter the coding part, click on the <em>Menu<\/em> <img loading=\"lazy\" decoding=\"async\" class=\"wp-image-356 alignnone\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/carrefour.png\" alt=\"\" width=\"31\" height=\"29\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/carrefour.png\" \/> icon in the toolbar and, in the dialog window that opens, choose the <em>Code button.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-222\" src=\"https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor01-1.png\" alt=\"\" width=\"753\" height=\"458\" srcset=\"https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor01-1.png 753w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor01-1-300x182.png 300w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor01-1-720x438.png 720w\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><br \/>\nThe following window appears:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-223\" src=\"https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-03.png\" alt=\"\" width=\"633\" height=\"476\" srcset=\"https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-03.png 953w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-03-300x226.png 300w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-03-768x578.png 768w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-03-638x480.png 638w\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><\/p>\n<figure id=\"attachment_577\" class=\"wp-caption aligncenter\" aria-describedby=\"caption-attachment-577\"><figcaption id=\"caption-attachment-577\" class=\"wp-caption-text\">The selector, the collector, the advisor and the toolbar.<\/figcaption><\/figure>\n<p>The collector contains and organizes the instructions drawn from the selector. Instructions can be moved within the collector to organize them as desired.<\/p>\n<p>To instantiate an instruction, go to its icon in the selector, click or point and hold; the instruction appears. Simply drag it into the collector. Only instructions present in the collector will be taken into account during execution.<\/p>\n<h2>A minimum program<\/h2>\n<p>Let&#8217;s get started! We&#8217;re going to create a minimal program consisting <em>of a single instruction<\/em> that will generate a complete puzzle.<\/p>\n<blockquote><p>The data in the zebra puzzle is that of <strong>the predefined example<\/strong> : runners arrive in a specific order, wear a different colored jersey and each drink a different fruit juice at the finish.<\/p><\/blockquote>\n<h6>When starting the program: button\u00a0 <em>use a predefined example;<\/em><\/h6>\n<h6>Or click the menu icon in the toolbar, <em>design, <\/em><em>use a pre-defined example<\/em> button\u00a0 .<\/h6>\n<p>We&#8217;ll use the PLACE instruction:<\/p>\n<p>The PLACE instruction icon is the first in the list. Expanded instructions appear as a strip.<\/p>\n<figure id=\"attachment_583\" class=\"wp-caption aligncenter\" aria-describedby=\"caption-attachment-583\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-583 size-full\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau.png\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau.png 316w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau-300x66.png 300w\" alt=\"\" width=\"316\" height=\"70\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau.png\" data-srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau.png 316w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau-300x66.png 300w\" data-sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><figcaption id=\"caption-attachment-583\" class=\"wp-caption-text\">The PLACE instruction deployed.<\/figcaption><\/figure>\n<p>When you click on the pencil <img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-652\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/edit-selectionne.png\" alt=\"\" width=\"29\" height=\"29\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/edit-selectionne.png\" \/>, the advisor displays a description of the instruction and allows you to configure it. The changes are reflected in the display as soon as you confirm the entry <em>.<\/em><\/p>\n<p>As the name suggests, the instruction will <em>place a <\/em><em>true<\/em> or <em>false<\/em> sign in a randomly chosen empty and suitable location on the grids.<\/p>\n<h3>Random choice<\/h3>\n<blockquote><p>We will let the program itself choose whether to place a true sign or a false sign. To do this, in the <em>Sign choice field,<\/em> we choose <em>random.<\/em><\/p><\/blockquote>\n<p>If we validate at this stage, the strip changes appearance:<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-586 aligncenter\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2.png\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2.png 313w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2-300x66.png 300w\" alt=\"\" width=\"313\" height=\"69\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2.png\" data-srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2.png 313w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2-300x66.png 300w\" data-sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><\/p>\n<h3>Number of repetitions<\/h3>\n<p>We wouldn&#8217;t be very far ahead if our designer simply displayed <em>a single<\/em> symbol. Our example puzzle has six 5&#215;5 grids, or 150 squares. Therefore, all 150 squares must be filled by the designer&#8217;s end. This is the role of the <em>Maximum field.<\/em> So, let&#8217;s change the maximum number of repetitions.<\/p>\n<blockquote><p>This is a maximum, but it won&#8217;t necessarily be reached. For my part, when I want to loop through an instruction to the end, I type 1000, regardless of the size of the grids.<\/p><\/blockquote>\n<p>So type 1000 in the <em>Maximum<\/em> field and validate.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-590 size-full\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2-1.png\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2-1.png 314w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2-1-300x65.png 300w\" alt=\"\" width=\"314\" height=\"68\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2-1.png\" data-srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2-1.png 314w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/placer_bandeau2-1-300x65.png 300w\" data-sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/>As you can see, the change is reflected immediately after validation.<\/p>\n<blockquote><p>If the maximum is too low, the designer will multiply creation attempts but will never succeed in creating a complete puzzle. It is then necessary to interrupt the execution and modify the program.<\/p><\/blockquote>\n<h3>Looking for solitude?<\/h3>\n<p>If you check the <em>Isolated box,<\/em> the randomly chosen boxes will be at an intersection where the row and column are completely empty: no <em>false sign, no Boolean and obviously no <\/em><em>true<\/em> sign . Checking <em>isolated<\/em> can be useful if you want to make the puzzle a little more interesting but the calculation time will be increased.<\/p>\n<blockquote><p>In some cases, using <em>isolated<\/em> makes computations impossible; this is the case here if you set\u00a0 <em>Sign Choice\u00a0<\/em> to <em>false<\/em> and\u00a0 <em>isolated\u00a0<\/em> to true. With this single instruction set like this, the solver will never be able to create a puzzle.<\/p><\/blockquote>\n<h2>Execution !<\/h2>\n<p>Click the advisor&#8217;s <em>formal proposals<\/em> button . If it doesn&#8217;t appear, click the pencil icon for the instruction you&#8217;re currently editing in the collector.<\/p>\n<p>The advisor offers two difficulty levels. Leave the <em>standard level.<\/em> Check that the <em>Maximum number of attempts before retrying<\/em> field contains 10,000 (ten thousand) and confirm. After a few seconds of work, the result should appear:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-224\" src=\"https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-04.png\" alt=\"\" width=\"553\" height=\"633\" srcset=\"https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-04.png 553w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-04-262x300.png 262w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-04-419x480.png 419w\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Here is a list of formal propositions. They are already usable by the solver.<\/p>\n<p>This is my list! Yours is bound to be different, since this is all random!<\/p>\n<p>Use the <em>Autocomplete<\/em> button then click on a statement to make it appear in the grid.<\/p>\n<h3>Text explanation<\/h3>\n<p>But what does the line mean:<\/p>\n<blockquote><p>White \u2229 Grape= True<\/p><\/blockquote>\n<h6>The intersection of the <em>white<\/em> row and the <em>grape <\/em>column contains a true sign <em>.<\/em><\/h6>\n<p>Furthermore, there is no possibility of confusion. If there is ever a risk of confusion with two identical items (such as the orange color of a jersey, which can be confused with orange juice), the designer will systematically indicate the corresponding heading:<\/p>\n<blockquote><p>Orange Jersey \u2229 Orange Fruit Juice = False<\/p><\/blockquote>\n<h3><span id=\"Loc-Bis_repetita_placent\"><span class=\"lang-la\" dir=\"ltr\" lang=\"la\">Bis repetita placent<\/span><\/span><\/h3>\n<p>What does the <em>Maximum number of attempts before\u00a0 <\/em> advisor restart field mean, in which we set the value to 10000?<\/p>\n<p>The designer operates recursively. It may occasionally stumble into a dead-end calculation. The number specified is the maximum number of evaluations that <em>a configuration <\/em><em>is allowed to run<\/em> before the designer restarts the program\u2014it tries again.<\/p>\n<p>This can be seen when the attempts counter increases.<\/p>\n<p>If you set the value too low, the designer will not have the opportunity to make all the necessary evaluations to find a viable puzzle.<\/p>\n<p>So, if you see the number of attempts increasing too quickly, it means the number of evaluations allocated is too low. Stop the process and increase the value.<\/p>\n<p>Conversely, if the value is too high, the designer may get lost in his calculations. Reduce the value.<\/p>\n<p>It all depends on the program, of course.<\/p>\n<p>For our simple program, the value of 10000 is perfect because it requires a lot of evaluations, but the risk of going astray is low. But for a more complex program, we will probably need to lower this value. Often, the value 1000 is a good compromise for more sophisticated programs.<\/p>\n<blockquote><p><strong>So the <em>maximum number of attempts<\/em> allows the designer to be set<\/strong>.<\/p>\n<ul>\n<li><strong>we decrease the value<\/strong> if the calculations are too long;<\/li>\n<li><strong>we increase the value<\/strong> if the number of attempts explodes!<\/li>\n<\/ul>\n<\/blockquote>\n<h3>Standard or expert?<\/h3>\n<p>At the moment, the editor only offers two operating choices: <em>standard<\/em> or <em>expert<\/em> .<\/p>\n<h4>Standard mode<\/h4>\n<p>Suitable for simple puzzles.<\/p>\n<ul>\n<li>instructions showing <em>true<\/em> signs are preferred;<\/li>\n<li>advanced techniques, such as invariance or implication searching, are not used.<\/li>\n<\/ul>\n<p>For a given program, the puzzles produced will be quite short.<\/p>\n<h4>Expert mode<\/h4>\n<p>Suitable for difficult puzzles. Longer puzzles are generally produced.<\/p>\n<ul>\n<li>the designer tries to maintain the booleans as long as possible: quick solutions are therefore rejected;<\/li>\n<li>advanced resolution techniques are performed;<\/li>\n<li>The puzzle must be solved with at least one appeal to one of these advanced techniques; otherwise it is rejected as &#8220;too simple.&#8221;<\/li>\n<\/ul>\n<blockquote><p>In our example, using <em>expert mode is possible if we only place <\/em><em>false\u00a0<\/em> signs ; but you generally have to wait quite a long time: advanced resolution techniques are not very available because here, our programming (a single, very simple instruction that we repeat) is basic. In <em>expert<\/em> mode , the designer multiplies the attempts and rejects those considered <em>too easy.<\/em> But if you wait enough, he will eventually find a solution\u2026 which will take a very long time.<\/p><\/blockquote>\n<h2>A simple program for ages 8 and up<\/h2>\n<p>With a little help and explanations, an 8-year-old should be able to do this. The educational value, besides coding, is mainly to encourage them to write logic statements.<\/p>\n<p>Our new program contains two instructions: the PLACE instruction, which we just saw, and the next instruction, THRESHOLD.<\/p>\n<p>The THRESHOLD instruction must be placed first.<\/p>\n<p>Since we are using the predefined example, this instruction will only apply to the <em>Ranking series,<\/em> which is the only one with an order relationship.<\/p>\n<p>What does the THRESHOLD instruction do? It introduces a limit into a series, for a given item. Here&#8217;s an example:<\/p>\n<blockquote><p>Alice arrived before the 3rd.<\/p><\/blockquote>\n<p>This proposition places three false signs, at the intersection of Alice and 3rd, fourth and fifth.<\/p>\n<figure id=\"attachment_633\" class=\"wp-caption aligncenter\" aria-describedby=\"caption-attachment-633\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-633\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique.png\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique.png 347w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique-300x300.png 300w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique-150x150.png 150w\" alt=\"\" width=\"306\" height=\"306\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique.png\" data-srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique.png 347w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique-300x300.png 300w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique-150x150.png 150w\" data-sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><figcaption id=\"caption-attachment-633\" class=\"wp-caption-text\">Alice arrived before the third\u2026<\/figcaption><\/figure>\n<p>Recommended settings:<\/p>\n<blockquote><p>THRESHOLD :<\/p>\n<ul>\n<li>isolated: true<\/li>\n<li>maximum number of repetitions: 10<\/li>\n<\/ul>\n<p>PLACE:<\/p>\n<ul>\n<li>choice of sign: random<\/li>\n<li>isolated: false<\/li>\n<li>maximum number of repetitions: 1000<\/li>\n<\/ul>\n<\/blockquote>\n<p>In fact, since we&#8217;re asking for isolation for THRESHOLD, there will never be 10 repetitions. But it doesn&#8217;t matter if this maximum is never reached; what we want is to get a large number of formal proposals for this instruction.<\/p>\n<p>Here is what our program looks like before it is executed:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-636 aligncenter\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique-3.png\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique-3.png 316w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique-3-300x162.png 300w\" alt=\"\" width=\"316\" height=\"171\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique-3.png\" data-srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique-3.png 316w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/codage_generique-3-300x162.png 300w\" data-sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><\/p>\n<blockquote><p>To terminate a program, it is recommended to include a &#8220;fill the holes&#8221; instruction. Here we use &#8220;random&#8221; PLACE, but in more sophisticated programs, a &#8220;false&#8221; PLACE repeated 1000 times is recommended.<\/p><\/blockquote>\n<p>The settings are <em>standard<\/em> and the maximum number of attempts is 10000.<\/p>\n<p>We should obtain a formal statement with about fifteen propositions, like the example below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-225\" src=\"https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-05.png\" alt=\"\" width=\"554\" height=\"667\" srcset=\"https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-05.png 554w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-05-249x300.png 249w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-05-399x480.png 399w\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><\/p>\n<blockquote><p>Grape &lt; 3<\/p>\n<p>The person drinking grape juice came in before third place.<\/p><\/blockquote>\n<h2>How does the designer work?<\/h2>\n<p>If you&#8217;re curious, here&#8217;s how it works.<\/p>\n<p>Let&#8217;s say a program consists of a series P=(i <sub>1<\/sub> , i <sub>2<\/sub> , i <sub>3<\/sub> , \u2026. i <sub>n<\/sub> ) of elementary instructions. An elementary instruction is one that is executed only once. When an instruction is repeated n times by the program, this means that there are n elementary instructions in a row that will be executed.<\/p>\n<p>Each instruction, when executed, produces one occurrence drawn at random from all those possible. For example, for the instruction <em>PLACE false<\/em>, there are roughly 150 possible occurrences, since there are 150 boxes in our grid (in fact there are fewer, since there are calculated inferences: when we place a &#8220;true&#8221; sign, there are automatically 8 false boxes).<\/p>\n<p>The designer throws an occurrence of i <sub>1<\/sub>. If it succeeds, he throws an occurrence of\u00a0 i <sub>2<\/sub> , then i <sub>3<\/sub> , and so on. If, on reaching the occurrence i <sub>p<\/sub>, there is a failure (impossible to solve the puzzle because of contradictions), the designer tries another occurrence of i <sub>p<\/sub>, chosen from all those still available. If none succeeds, the designer keeps the series(i1, i2, \u2026 i <sub>p-2<\/sub> ) and calculates a new occurrence of i <sub>p-1<\/sub>(since &#8220;under&#8221; the previous occurrencei <sub>p-1<\/sub>\u00a0 no ip passes), then continues with i <sub>p<\/sub> .<\/p>\n<p>This is why some calculations can take an enormous amount of time. In this case, you need to limit the number of evaluations. As chance has a way of doing things, we always end up finding an acceptable solution by re-trying new calculations from the beginning, rather than struggling to finish titanic calculations that could take millennia.<\/p>\n<p><!--nextpage--><\/p>\n<h1>C- WRITE<\/h1>\n<p>And here comes the fun part! It&#8217;s about transforming the formal instructions obtained in the previous step into a clear text that everyone can understand.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-356 alignleft\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/carrefour.png\" alt=\"\" width=\"31\" height=\"29\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/carrefour.png\" \/>It is accessed through the menu, <em>write.<\/em><\/p>\n<p>Access is only possible if a list of formal proposals has been generated in the previous step.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-227\" src=\"https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-06.png\" alt=\"\" width=\"953\" height=\"837\" srcset=\"https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-06.png 953w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-06-300x263.png 300w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-06-768x675.png 768w, https:\/\/actilud.com\/info\/en\/wp-content\/uploads\/sites\/3\/2025\/03\/editor-06-547x480.png 547w\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><\/p>\n<p>The selector consists of a single icon: the + sign.<\/p>\n<p>The collector is the large white rectangle immediately next to it. This is where we&#8217;ll place our own statements. As before, you can move a statement. To delete a statement, drag it into the selector.<\/p>\n<p>To get an empty statement, you have to use the selector as usual, so <strong>drag and drop<\/strong> .<\/p>\n<p>The statement is, again, in the form of a rectangle. You can edit it by clicking on the button:<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-652\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/edit-selectionne.png\" alt=\"\" width=\"36\" height=\"36\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/edit-selectionne.png\" \/><\/p>\n<p>Editing takes place in the advisor. Two fields are available:<\/p>\n<ul>\n<li>numbers: indicate the numbers of the formal clauses referred to. The numbers must be separated by commas. They will be used by autocompletion \u2013 the ability to automatically fill in a grid from the statement.<\/li>\n<li>statement: the statement to be written<\/li>\n<\/ul>\n<p>We therefore note that a statement can group together several formal propositions.<\/p>\n<p>Here are some examples of translations of some formal propositions taken one by one.<\/p>\n<blockquote><p>Alice &gt; 2<br \/>\nAlice comes after second place.<\/p>\n<p>Red &lt; 4<br \/>\nThe person wearing a red jersey arrives before the fourth.<\/p>\n<p>Grape &gt;2<br \/>\nThe person who drinks grape juice comes after second place.<\/p>\n<p>Lemon \u2229 3 = true<br \/>\nThe person who drinks lemon juice is third.<\/p><\/blockquote>\n<h2>Grouping formal proposals<\/h2>\n<p>It is possible and even recommended.<\/p>\n<p>Let us take for example the following two propositions<\/p>\n<blockquote><p>15: Enzo \u2229 green = true<br \/>\n19: Enzo \u2229 lemon = false<\/p><\/blockquote>\n<p>These two formal propositions can be combined to give the following statement:<\/p>\n<blockquote><p>Enzo, who is wearing a green jersey, does not drink lemon juice.<\/p><\/blockquote>\n<p>In the\u00a0 <em>numbers<\/em> section we therefore indicate the numbers of the two formal propositions concerned, separated by commas:\u00a0 <em>15,19\u00a0<\/em><\/p>\n<p>But be careful! There are traps.<\/p>\n<h3>The trap of inferences<\/h3>\n<p>Let&#8217;s look at those instructions :<\/p>\n<blockquote><p>6 \u2013 Lemon \u2229 3 = true<br \/>\n7 \u2013 Carole \u2229 3 = true<\/p><\/blockquote>\n<p>The lemon juice lover is third. Carole is third. So Carole drinks lemon juice. This is perfectly logical. But be careful: this does not appear in formal propositions.<\/p>\n<p>A sentence like:<\/p>\n<blockquote><p>Carole is third and drinks lemon juice<\/p><\/blockquote>\n<p>which one would tend to write, translates as this, in the first draft:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-659\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1.png\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1.png 870w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1-300x298.png 300w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1-150x150.png 150w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1-768x764.png 768w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1-483x480.png 483w\" alt=\"\" width=\"870\" height=\"865\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1.png\" data-srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1.png 870w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1-300x298.png 300w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1-150x150.png 150w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1-768x764.png 768w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation1-483x480.png 483w\" data-sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><\/p>\n<p>While the solver will display this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-660\" src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation2.png\" sizes=\"auto, (min-width: 960px) 75vw, 100vw\" srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation2.png 871w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation2-300x294.png 300w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation2-768x752.png 768w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation2-490x480.png 490w\" alt=\"\" width=\"871\" height=\"853\" data-src=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation2.png\" data-srcset=\"https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation2.png 871w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation2-300x294.png 300w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation2-768x752.png 768w, https:\/\/actilud.com\/info\/wp-content\/uploads\/2023\/08\/integram_programmation2-490x480.png 490w\" data-sizes=\"auto, (min-width: 960px) 75vw, 100vw\" \/><\/p>\n<p>It&#8217;s very different! Even if, in the end, it actually comes down to the same thing.<\/p>\n<p>So this is how the two propositions should be translated:<\/p>\n<blockquote><p>The person who is third drinks lemon juice and is called Carole.<\/p><\/blockquote>\n<p>This time we are respecting the formal propositions to the letter.<\/p>\n<p>To achieve this, there is a fairly simple rule to follow:<\/p>\n<blockquote><p>the <strong>common point<\/strong> between propositions <strong>\u2229<\/strong> becomes <strong>the subject of our statement.<br \/>\n<\/strong><\/p><\/blockquote>\n<p>Try with these two following analogous formal propositions:<\/p>\n<blockquote><p>8: Green \u2229 Apple = true<br \/>\n9: Bob \u2229 Green = true<\/p><\/blockquote>\n<p>Did you find it?<\/p>\n<h6>The solution is: The person wearing the green jersey drinks apple juice and is called Bob.<br \/>\nLess cumbersome formulation: The green jersey, Bob, drinks apple juice.<\/h6>\n<p>Here we discover the full value of integrams when it comes to writing sentences that are both concise and elegant. It is an exercise that is not so simple; but on the other hand it is very easy for a student to correct, because the objective is targeted and it does not get lost in the meanders of a plethora of written production.<\/p>\n<h3>Groupings galore<\/h3>\n<p>Let us group together those\u00a0 propositions :<\/p>\n<blockquote><p>2: Red &lt; 4<br \/>\n13: White \u2229 4 = false.<\/p><\/blockquote>\n<p>The instructions are different here; so there is no need to consider the value 4 as a subject.<\/p>\n<p>This gives:<\/p>\n<h6>The red jersey came before the fourth, who does not wear a white jersey.<\/h6>\n<p>And here&#8217;s a little relative clause. The art of doing grammar with logic. If I still want to put the 4 as the subject:<\/p>\n<blockquote><p>The fourth, who does not wear a white jersey, arrived after the red jersey.<\/p><\/blockquote>\n<p>Let&#8217;s group two other propositions :<\/p>\n<blockquote><p>1: Alice &gt; 2<br \/>\n12: Alice \u2229 5 = false<\/p><\/blockquote>\n<h6>Alice , who arrived after the second competitor, is not fifth.<\/h6>\n<h1>And what&#8217;s next?<\/h1>\n<p>For now, you can only create your own custom riddles and store them on your computer. I&#8217;m looking into publishing them on the site for those who want to. Perhaps in the future. Wait and see&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Let&#8217;s use the Actilud website&#8217;s zebra puzzle editor to create a puzzle in three steps. Have you ever tried to create a zebra puzzle yourself? It&#8217;s not easy, is it? There&#8217;s a lot of checking to be done! After all, it&#8217;s not enough just to write down different logical propositions. They must not contradict each [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-217","post","type-post","status-publish","format-standard","hentry","category-zebra-puzzles-solving-and-designing"],"_links":{"self":[{"href":"https:\/\/actilud.com\/info\/en\/wp-json\/wp\/v2\/posts\/217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/actilud.com\/info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/actilud.com\/info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/actilud.com\/info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/actilud.com\/info\/en\/wp-json\/wp\/v2\/comments?post=217"}],"version-history":[{"count":11,"href":"https:\/\/actilud.com\/info\/en\/wp-json\/wp\/v2\/posts\/217\/revisions"}],"predecessor-version":[{"id":233,"href":"https:\/\/actilud.com\/info\/en\/wp-json\/wp\/v2\/posts\/217\/revisions\/233"}],"wp:attachment":[{"href":"https:\/\/actilud.com\/info\/en\/wp-json\/wp\/v2\/media?parent=217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/actilud.com\/info\/en\/wp-json\/wp\/v2\/categories?post=217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/actilud.com\/info\/en\/wp-json\/wp\/v2\/tags?post=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}