{"format":"murdoku-puzzle/1","id":"dance","version":1,"difficulty":"easy","level":4,"size":{"rows":8,"cols":8},"languages":["en","hu","de","fr","es","it","nl","pl","pt","ro","ca","cs","fi","vi","tr","el","ru","uk","ar","ko","ja","zh-Hans","zh-Hant"],"defaultLanguage":"en","title":"The Dance Studio","tagline":"A dance studio · the evening of the end-of-term show · the owner missed her own curtain call","author":"mathace","concept":"Murdoku – Manuel Garand (murdoku.com); unofficial fan-made case","created":"2026-10-06","story":"The Dance Studio had been rehearsing for weeks for its end-of-term show, and on the evening of the performance the whole building hummed: four dancers were warming up, the teacher was correcting a last few steps, the pianist and the receptionist were busy with the final preparations. Véronique, who had founded the studio twenty years earlier, wanted to change into her evening dress before the guests arrived and disappeared into the changing room. When the first spectators rang at the door, somebody went to call her – and found her lying by the lockers. The show was cancelled, the doors were locked, and the inspector took down where each of the four dancers and the three members of staff had been.","rules":{"standard":["Every <b>row</b> and every <b>column</b> holds exactly <b>one person</b>. As soon as you place someone, cross out their whole row and column.","<b>“Beside”</b> = directly left, right, above or below, and <b>in the same area</b>. Squares with objects (the counter, the lamp, the flower bed, the desk, the mirrors, the lockers, the piano, the parasol, the planter, the loudspeaker and the potted plant) cannot be occupied; the sofa and the benches can.","Directions refer to rows and columns, not to the same line: <i>“exactly one row north of him was a woman”</i> = the person in the row directly above is a woman, in any column.","The murderer was <b>alone with the victim</b>: nobody else was in that area."],"special":[]},"roleNames":{"dancer":"dancer","staff":"member of staff","victim":"victim"},"personGroups":[{"id":"dancers","name":"Dancers","persons":["A","B","C","D"]},{"id":"staff","name":"Staff","persons":["E","F","G"]},{"id":"owner","name":"The owner","persons":["V"]}],"map":{"groups":[],"gaps":[],"areas":[{"id":"Lobby","cells":[[1,1],[1,2],[1,3],[1,4],[2,1],[2,2],[2,3],[2,4]],"fill":"#ece7dd","pattern":"tiles","labelAt":[1,2],"name":"Lobby"},{"id":"Office","cells":[[1,5],[1,6],[2,5],[2,6],[3,6]],"fill":"#e2d6c4","pattern":"planks","labelAt":[2,6],"name":"Office"},{"id":"Studio","cells":[[3,3],[3,4],[3,5],[4,3],[4,4],[4,5],[4,6],[4,7],[5,3],[5,4],[5,5],[5,6],[5,7],[6,2],[6,3],[6,4],[6,5],[6,6],[6,7],[7,2],[7,3],[7,4],[7,5],[8,4],[8,5]],"fill":"#efe2cb","pattern":"boards","labelAt":[5,4],"name":"Studio"},{"id":"Changing Room","cells":[[3,1],[3,2],[4,1],[4,2],[5,1],[5,2],[6,1],[7,1],[8,1],[8,2],[8,3]],"fill":"#dfe6ea","pattern":"tiles","labelAt":[5,1],"name":"Changing Room"},{"id":"Terrace","cells":[[1,7],[1,8],[2,7],[2,8],[3,7],[3,8],[4,8],[5,8],[6,8],[7,6],[7,7],[7,8],[8,6],[8,7],[8,8]],"fill":"#e3e9d6","pattern":"marble","labelAt":[5,8],"name":"Terrace"}],"objectTypes":{"bench":{"occupiable":true,"name":"bench","icon":"<rect x=\"2\" y=\"13\" width=\"42\" height=\"21\" rx=\"3.5\" fill=\"#fbfaf6\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/><rect x=\"2\" y=\"13\" width=\"42\" height=\"7\" rx=\"3\" fill=\"#d9d5cc\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/><line x1=\"16\" y1=\"20\" x2=\"16\" y2=\"34\" stroke=\"#a9a49a\" stroke-width=\"1.3\"/><line x1=\"30\" y1=\"20\" x2=\"30\" y2=\"34\" stroke=\"#a9a49a\" stroke-width=\"1.3\"/>"},"sofa":{"occupiable":true,"name":"sofa","icon":"<rect x=\"3\" y=\"14\" width=\"40\" height=\"20\" rx=\"6\" fill=\"#7a5a9a\" stroke=\"#4a3560\" stroke-width=\"1.5\"/><rect x=\"7\" y=\"9\" width=\"32\" height=\"10\" rx=\"4\" fill=\"#9a7abd\" stroke=\"#4a3560\" stroke-width=\"1.5\"/><line x1=\"8\" y1=\"34\" x2=\"8\" y2=\"39\" stroke=\"#4a3560\" stroke-width=\"2\"/><line x1=\"38\" y1=\"34\" x2=\"38\" y2=\"39\" stroke=\"#4a3560\" stroke-width=\"2\"/>"},"counter":{"occupiable":false,"name":"counter","icon":"<rect x=\"0\" y=\"10\" width=\"46\" height=\"26\" fill=\"#a97c50\" stroke=\"#5e4127\" stroke-width=\"1.5\"/><rect x=\"0\" y=\"10\" width=\"46\" height=\"7\" fill=\"#c9a06f\"/>"},"desk":{"occupiable":false,"name":"desk","icon":"<rect x=\"5\" y=\"12\" width=\"36\" height=\"22\" rx=\"3\" fill=\"#8f6a44\" stroke=\"#5e4127\" stroke-width=\"1.5\"/><rect x=\"9\" y=\"16\" width=\"14\" height=\"10\" fill=\"#f4efe6\" stroke=\"#8c8a82\"/><rect x=\"27\" y=\"17\" width=\"10\" height=\"4\" fill=\"#3d444b\"/>"},"flowers":{"occupiable":false,"name":"flower bed","icon":"<rect x=\"2\" y=\"8\" width=\"42\" height=\"30\" rx=\"7\" fill=\"#b9a38a\" stroke=\"#6e5a44\" stroke-width=\"1.5\"/><path d=\"M8 11.5 h30 q4 0 4 4 v15 q0 4 -4 4 h-30 q-4 0 -4 -4 v-15 q0 -4 4 -4 z\" fill=\"#6b4a2e\"/><path d=\"M2.6 18 h3 M2.6 28 h3 M40.4 18 h3 M40.4 28 h3 M15 8.6 v2.6 M31 8.6 v2.6 M15 34.8 v2.6 M31 34.8 v2.6\" stroke=\"#6e5a44\" stroke-width=\"1\"/><ellipse cx=\"8.3\" cy=\"19.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 8.3 19.2)\" fill=\"#3f8a4a\"/><ellipse cx=\"12.7\" cy=\"19.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 12.7 19.2)\" fill=\"#4f9e58\"/><ellipse cx=\"16.8\" cy=\"18.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 16.8 18.2)\" fill=\"#3f8a4a\"/><ellipse cx=\"21.2\" cy=\"18.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 21.2 18.2)\" fill=\"#4f9e58\"/><ellipse cx=\"25.3\" cy=\"19.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 25.3 19.2)\" fill=\"#3f8a4a\"/><ellipse cx=\"29.7\" cy=\"19.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 29.7 19.2)\" fill=\"#4f9e58\"/><ellipse cx=\"33.8\" cy=\"18.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 33.8 18.2)\" fill=\"#3f8a4a\"/><ellipse cx=\"38.2\" cy=\"18.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 38.2 18.2)\" fill=\"#4f9e58\"/><ellipse cx=\"12.3\" cy=\"26.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 12.3 26.2)\" fill=\"#3f8a4a\"/><ellipse cx=\"16.7\" cy=\"26.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 16.7 26.2)\" fill=\"#4f9e58\"/><ellipse cx=\"20.8\" cy=\"25.7\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 20.8 25.7)\" fill=\"#3f8a4a\"/><ellipse cx=\"25.2\" cy=\"25.7\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 25.2 25.7)\" fill=\"#4f9e58\"/><ellipse cx=\"29.3\" cy=\"26.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 29.3 26.2)\" fill=\"#3f8a4a\"/><ellipse cx=\"33.7\" cy=\"26.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 33.7 26.2)\" fill=\"#4f9e58\"/><ellipse cx=\"8.3\" cy=\"32.7\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 8.3 32.7)\" fill=\"#3f8a4a\"/><ellipse cx=\"12.7\" cy=\"32.7\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 12.7 32.7)\" fill=\"#4f9e58\"/><ellipse cx=\"16.8\" cy=\"33.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 16.8 33.2)\" fill=\"#3f8a4a\"/><ellipse cx=\"21.2\" cy=\"33.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 21.2 33.2)\" fill=\"#4f9e58\"/><ellipse cx=\"25.3\" cy=\"32.7\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 25.3 32.7)\" fill=\"#3f8a4a\"/><ellipse cx=\"29.7\" cy=\"32.7\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 29.7 32.7)\" fill=\"#4f9e58\"/><ellipse cx=\"33.8\" cy=\"33.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(-30 33.8 33.2)\" fill=\"#3f8a4a\"/><ellipse cx=\"38.2\" cy=\"33.2\" rx=\"2.4\" ry=\"1.2\" transform=\"rotate(30 38.2 33.2)\" fill=\"#4f9e58\"/><g fill=\"#e0526a\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"12.40\" cy=\"17.00\" r=\"1.7\"/><circle cx=\"11.09\" cy=\"18.81\" r=\"1.7\"/><circle cx=\"8.96\" cy=\"18.12\" r=\"1.7\"/><circle cx=\"8.96\" cy=\"15.88\" r=\"1.7\"/><circle cx=\"11.09\" cy=\"15.19\" r=\"1.7\"/></g><circle cx=\"10.5\" cy=\"17\" r=\"1.1\" fill=\"#f7e07a\"/><g fill=\"#f2d24a\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"20.90\" cy=\"16.00\" r=\"1.7\"/><circle cx=\"19.59\" cy=\"17.81\" r=\"1.7\"/><circle cx=\"17.46\" cy=\"17.12\" r=\"1.7\"/><circle cx=\"17.46\" cy=\"14.88\" r=\"1.7\"/><circle cx=\"19.59\" cy=\"14.19\" r=\"1.7\"/></g><circle cx=\"19\" cy=\"16\" r=\"1.1\" fill=\"#f2a53a\"/><g fill=\"#b05fc4\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"29.40\" cy=\"17.00\" r=\"1.7\"/><circle cx=\"28.09\" cy=\"18.81\" r=\"1.7\"/><circle cx=\"25.96\" cy=\"18.12\" r=\"1.7\"/><circle cx=\"25.96\" cy=\"15.88\" r=\"1.7\"/><circle cx=\"28.09\" cy=\"15.19\" r=\"1.7\"/></g><circle cx=\"27.5\" cy=\"17\" r=\"1.1\" fill=\"#f7e07a\"/><g fill=\"#f28c3a\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"37.90\" cy=\"16.00\" r=\"1.7\"/><circle cx=\"36.59\" cy=\"17.81\" r=\"1.7\"/><circle cx=\"34.46\" cy=\"17.12\" r=\"1.7\"/><circle cx=\"34.46\" cy=\"14.88\" r=\"1.7\"/><circle cx=\"36.59\" cy=\"14.19\" r=\"1.7\"/></g><circle cx=\"36\" cy=\"16\" r=\"1.1\" fill=\"#f7e07a\"/><g fill=\"#fbfaf6\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"16.40\" cy=\"24.00\" r=\"1.7\"/><circle cx=\"15.09\" cy=\"25.81\" r=\"1.7\"/><circle cx=\"12.96\" cy=\"25.12\" r=\"1.7\"/><circle cx=\"12.96\" cy=\"22.88\" r=\"1.7\"/><circle cx=\"15.09\" cy=\"22.19\" r=\"1.7\"/></g><circle cx=\"14.5\" cy=\"24\" r=\"1.1\" fill=\"#f7e07a\"/><g fill=\"#d94a8a\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"24.90\" cy=\"23.50\" r=\"1.7\"/><circle cx=\"23.59\" cy=\"25.31\" r=\"1.7\"/><circle cx=\"21.46\" cy=\"24.62\" r=\"1.7\"/><circle cx=\"21.46\" cy=\"22.38\" r=\"1.7\"/><circle cx=\"23.59\" cy=\"21.69\" r=\"1.7\"/></g><circle cx=\"23\" cy=\"23.5\" r=\"1.1\" fill=\"#f7e07a\"/><g fill=\"#e0526a\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"33.40\" cy=\"24.00\" r=\"1.7\"/><circle cx=\"32.09\" cy=\"25.81\" r=\"1.7\"/><circle cx=\"29.96\" cy=\"25.12\" r=\"1.7\"/><circle cx=\"29.96\" cy=\"22.88\" r=\"1.7\"/><circle cx=\"32.09\" cy=\"22.19\" r=\"1.7\"/></g><circle cx=\"31.5\" cy=\"24\" r=\"1.1\" fill=\"#f7e07a\"/><g fill=\"#f2d24a\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"12.40\" cy=\"30.50\" r=\"1.7\"/><circle cx=\"11.09\" cy=\"32.31\" r=\"1.7\"/><circle cx=\"8.96\" cy=\"31.62\" r=\"1.7\"/><circle cx=\"8.96\" cy=\"29.38\" r=\"1.7\"/><circle cx=\"11.09\" cy=\"28.69\" r=\"1.7\"/></g><circle cx=\"10.5\" cy=\"30.5\" r=\"1.1\" fill=\"#f2a53a\"/><g fill=\"#b05fc4\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"20.90\" cy=\"31.00\" r=\"1.7\"/><circle cx=\"19.59\" cy=\"32.81\" r=\"1.7\"/><circle cx=\"17.46\" cy=\"32.12\" r=\"1.7\"/><circle cx=\"17.46\" cy=\"29.88\" r=\"1.7\"/><circle cx=\"19.59\" cy=\"29.19\" r=\"1.7\"/></g><circle cx=\"19\" cy=\"31\" r=\"1.1\" fill=\"#f7e07a\"/><g fill=\"#f28c3a\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"29.40\" cy=\"30.50\" r=\"1.7\"/><circle cx=\"28.09\" cy=\"32.31\" r=\"1.7\"/><circle cx=\"25.96\" cy=\"31.62\" r=\"1.7\"/><circle cx=\"25.96\" cy=\"29.38\" r=\"1.7\"/><circle cx=\"28.09\" cy=\"28.69\" r=\"1.7\"/></g><circle cx=\"27.5\" cy=\"30.5\" r=\"1.1\" fill=\"#f7e07a\"/><g fill=\"#fbfaf6\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\".4\"><circle cx=\"37.90\" cy=\"31.00\" r=\"1.7\"/><circle cx=\"36.59\" cy=\"32.81\" r=\"1.7\"/><circle cx=\"34.46\" cy=\"32.12\" r=\"1.7\"/><circle cx=\"34.46\" cy=\"29.88\" r=\"1.7\"/><circle cx=\"36.59\" cy=\"29.19\" r=\"1.7\"/></g><circle cx=\"36\" cy=\"31\" r=\"1.1\" fill=\"#f7e07a\"/>"},"lamp":{"occupiable":false,"name":"lamp","icon":"<circle cx=\"23\" cy=\"12\" r=\"9\" fill=\"#f7e9a8\" opacity=\".5\"/><rect x=\"21\" y=\"16\" width=\"4\" height=\"24\" fill=\"#2f3b4a\"/><rect x=\"14\" y=\"39\" width=\"18\" height=\"4\" rx=\"1.5\" fill=\"#2f3b4a\"/><circle cx=\"23\" cy=\"12\" r=\"5\" fill=\"#f2c94c\" stroke=\"#2f3b4a\" stroke-width=\"1.4\"/>"},"locker":{"occupiable":false,"name":"locker","icon":"<rect x=\"8\" y=\"4\" width=\"30\" height=\"38\" rx=\"2\" fill=\"#7f95a8\" stroke=\"#3d4f5e\" stroke-width=\"1.5\"/><line x1=\"23\" y1=\"4\" x2=\"23\" y2=\"42\" stroke=\"#3d4f5e\"/><rect x=\"11\" y=\"10\" width=\"9\" height=\"3\" fill=\"#d7e1e8\"/><rect x=\"26\" y=\"10\" width=\"9\" height=\"3\" fill=\"#d7e1e8\"/><rect x=\"11\" y=\"16\" width=\"9\" height=\"3\" fill=\"#d7e1e8\"/><rect x=\"26\" y=\"16\" width=\"9\" height=\"3\" fill=\"#d7e1e8\"/><circle cx=\"19\" cy=\"28\" r=\"1.5\" fill=\"#1f2a33\"/><circle cx=\"34\" cy=\"28\" r=\"1.5\" fill=\"#1f2a33\"/>"},"mirror":{"occupiable":false,"name":"mirror","icon":"<rect x=\"12\" y=\"4\" width=\"22\" height=\"38\" rx=\"9\" fill=\"#c9a03a\" stroke=\"#7a5a12\" stroke-width=\"1.5\"/><rect x=\"15\" y=\"7\" width=\"16\" height=\"32\" rx=\"7\" fill=\"#dfe9ee\"/><path d=\"M19 11 q-3 8 0 20\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"2.5\" opacity=\".8\"/>"},"piano":{"occupiable":false,"name":"piano","icon":"<path d=\"M8 8 h22 q10 0 12 12 v18 h-34 z\" fill=\"#1c1c1c\" stroke=\"#0b0b0b\" stroke-width=\"1.5\"/><rect x=\"10\" y=\"32\" width=\"18\" height=\"5\" fill=\"#f4efe6\"/><g fill=\"#1c1c1c\"><rect x=\"12\" y=\"32\" width=\"2\" height=\"3\"/><rect x=\"16\" y=\"32\" width=\"2\" height=\"3\"/><rect x=\"22\" y=\"32\" width=\"2\" height=\"3\"/></g>"},"plant":{"occupiable":false,"name":"potted plant","icon":"<path d=\"M15 28 h16 l-2 12 h-12 z\" fill=\"#c2643a\" stroke=\"#7a3d20\" stroke-width=\"1.2\"/><ellipse cx=\"15\" cy=\"17\" rx=\"7\" ry=\"10\" fill=\"#3f8a4a\" transform=\"rotate(-30 15 17)\"/><ellipse cx=\"31\" cy=\"17\" rx=\"7\" ry=\"10\" fill=\"#3f8a4a\" transform=\"rotate(30 31 17)\"/><ellipse cx=\"23\" cy=\"13\" rx=\"6\" ry=\"11\" fill=\"#57a35e\"/>"},"planter":{"occupiable":false,"name":"planter","icon":"<path d=\"M6 25 q3 -9 11 -7 q5 -6 11 -1 q9 -1 11 8 z\" fill=\"#3f8a4a\" stroke=\"#2c6434\" stroke-width=\"1\"/><circle cx=\"14\" cy=\"19\" r=\"1.9\" fill=\"#e0526a\"/><circle cx=\"24\" cy=\"15\" r=\"1.9\" fill=\"#f2d24a\"/><circle cx=\"33\" cy=\"19\" r=\"1.9\" fill=\"#e0526a\"/><rect x=\"4\" y=\"25\" width=\"38\" height=\"14\" rx=\"2\" fill=\"#a5733f\" stroke=\"#4e3a1e\" stroke-width=\"1.5\"/><path d=\"M4 30 h38 M4 34.5 h38\" stroke=\"#7a5630\" stroke-width=\"1\"/><rect x=\"4\" y=\"25\" width=\"4\" height=\"14\" fill=\"#8a5a2f\" stroke=\"#4e3a1e\" stroke-width=\"1\"/><rect x=\"38\" y=\"25\" width=\"4\" height=\"14\" fill=\"#8a5a2f\" stroke=\"#4e3a1e\" stroke-width=\"1\"/><rect x=\"8\" y=\"39\" width=\"4\" height=\"3\" fill=\"#4e3a1e\"/><rect x=\"34\" y=\"39\" width=\"4\" height=\"3\" fill=\"#4e3a1e\"/>"},"speaker":{"occupiable":false,"name":"loudspeaker","icon":"<rect x=\"11\" y=\"3\" width=\"24\" height=\"40\" rx=\"3\" fill=\"#2f3338\" stroke=\"#111\" stroke-width=\"1.4\"/><circle cx=\"23\" cy=\"13\" r=\"5\" fill=\"#555\" stroke=\"#111\" stroke-width=\"1\"/><circle cx=\"23\" cy=\"13\" r=\"1.8\" fill=\"#111\"/><circle cx=\"23\" cy=\"30\" r=\"8.5\" fill=\"#555\" stroke=\"#111\" stroke-width=\"1\"/><circle cx=\"23\" cy=\"30\" r=\"5\" fill=\"#3b3f44\"/><circle cx=\"23\" cy=\"30\" r=\"2\" fill=\"#111\"/><path d=\"M38 17 q3 5 0 10 M41 14 q5 8 0 16 M8 17 q-3 5 0 10 M5 14 q-5 8 0 16\" fill=\"none\" stroke=\"#e0b050\" stroke-width=\"1.4\" stroke-linecap=\"round\"/>"},"umbrella":{"occupiable":false,"name":"parasol","icon":"<path d=\"M5 24 q18 -22 36 0 z\" fill=\"#e26d5a\" stroke=\"#8a3a2a\" stroke-width=\"1.2\"/><path d=\"M5 24 q4 -6 9 0 q4 -6 9 0 q4 -6 9 0 q4 -6 9 0\" fill=\"none\" stroke=\"#f9d7cf\" stroke-width=\"1.5\"/><line x1=\"23\" y1=\"24\" x2=\"23\" y2=\"42\" stroke=\"#5a4a3a\" stroke-width=\"2\"/>"}},"wallTypes":{},"objects":[{"cell":[1,3],"type":"counter"},{"cell":[1,6],"type":"lamp"},{"cell":[1,8],"type":"flowers"},{"cell":[2,1],"type":"sofa"},{"cell":[2,5],"type":"desk"},{"cell":[3,3],"type":"mirror"},{"cell":[3,7],"type":"bench"},{"cell":[4,1],"type":"locker"},{"cell":[5,2],"type":"bench"},{"cell":[5,3],"type":"mirror"},{"cell":[6,1],"type":"locker"},{"cell":[6,2],"type":"piano"},{"cell":[6,8],"type":"umbrella"},{"cell":[7,8],"type":"planter"},{"cell":[8,5],"type":"speaker"},{"cell":[8,7],"type":"plant"}],"wallFeatures":[],"extras":[],"cellSize":46},"persons":[{"id":"A","name":"Amélie","gender":"F","role":"dancer","color":"#c62828","avatar":{"bg":"#ad1457","skin":"#f6d8c0","hair":"#7a4a2a","style":"bun","shirt":"#f3c4d6","necklace":true},"clue":"The <b>loudspeaker</b> was somewhere in her <b>column</b>. There was <b>no man</b> in her area.","job":"ballet dancer","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Amélie\"><rect width=\"80\" height=\"80\" fill=\"#ad1457\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#f3c4d6\"/><path d=\"M31 58 Q40 66 49 58\" fill=\"none\" stroke=\"#f3e2b3\" stroke-width=\"2\" stroke-dasharray=\"2 2\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f6d8c0\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f6d8c0\"/><circle cx=\"40\" cy=\"15\" r=\"7\" fill=\"#7a4a2a\"/><path d=\"M26 32 Q26 16 40 16 Q54 16 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#7a4a2a\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/></svg>","solverRole":"dancer","constraints":[{"type":"col_has","obj":"speaker"},{"type":"no_gender_in_area","gender":"M"}]},{"id":"B","name":"Benoît","gender":"M","role":"dancer","color":"#2e7d32","avatar":{"bg":"#1b2a33","skin":"#e4b998","hair":"#1c1a1a","style":"slick","shirt":"#1b1b1b","mustache":true,"mustacheColor":"#1c1a1a"},"clue":"He was sitting on a <b>bench</b>. He was on the <b>Terrace</b>.","job":"tango dancer","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Benoît\"><rect width=\"80\" height=\"80\" fill=\"#1b2a33\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#1b1b1b\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#e4b998\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#e4b998\"/><path d=\"M26 30 Q27 16 44 15 Q56 15 55 26 Q48 22 40 23 Q30 24 26 30 Z\" fill=\"#1c1a1a\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><path d=\"M33 41 Q40 37 47 41 Q40 43 33 41 Z\" fill=\"#1c1a1a\"/></svg>","solverRole":"dancer","constraints":[{"type":"on","obj":"bench"},{"type":"area","areas":["Terrace"]}]},{"id":"C","name":"Clémence","gender":"F","role":"dancer","color":"#1565c0","avatar":{"bg":"#6e2c4b","skin":"#f3d3b5","hair":"#1c1a1a","style":"ponytail","shirt":"#5b2c6f","headband":"#e0b050"},"clue":"There was <b>no man</b> in her area.","job":"contemporary dancer","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Clémence\"><rect width=\"80\" height=\"80\" fill=\"#6e2c4b\"/><path d=\"M50 30 Q64 34 60 62 L54 62 Q56 40 48 36 Z\" fill=\"#1c1a1a\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#5b2c6f\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f3d3b5\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f3d3b5\"/><path d=\"M26 33 Q26 16 40 16 Q54 16 54 33 Q50 24 40 24 Q30 24 26 33 Z\" fill=\"#1c1a1a\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><rect x=\"26\" y=\"23\" width=\"28\" height=\"5\" rx=\"2\" fill=\"#e0b050\"/></svg>","solverRole":"dancer","constraints":[{"type":"no_gender_in_area","gender":"M"}]},{"id":"D","name":"Didier","gender":"M","role":"dancer","color":"#6a1b9a","avatar":{"bg":"#35607a","skin":"#f1c8a5","hair":"#b7482c","style":"short","shirt":"#2f3b4c","beard":true,"bow":true},"clue":"He was in the <b>Lobby</b>.","job":"tap dancer","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Didier\"><rect width=\"80\" height=\"80\" fill=\"#35607a\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#2f3b4c\"/><path d=\"M40 60 l-8 -4 v8 z M40 60 l8 -4 v8 z\" fill=\"#b8302b\"/><circle cx=\"40\" cy=\"60\" r=\"2\" fill=\"#7a1f1c\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f1c8a5\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f1c8a5\"/><path d=\"M26 32 Q26 15 40 15 Q54 15 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#b7482c\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><path d=\"M27 38 Q30 52 40 53 Q50 52 53 38 Q50 47 40 48 Q30 47 27 38 Z\" fill=\"#b7482c\"/></svg>","solverRole":"dancer","constraints":[{"type":"area","areas":["Lobby"]}]},{"id":"E","name":"Éléonore","gender":"F","role":"staff","color":"#e65100","avatar":{"bg":"#3d2a5a","skin":"#f0cdb0","hair":"#8a8278","style":"bob","shirt":"#4a5a7a","glasses":true,"scarf":"#c62828"},"clue":"A <b>bench</b> was somewhere in her <b>row</b>. <b>Exactly one row north</b> of her was <b>the owner</b>.","job":"dance teacher","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Éléonore\"><rect width=\"80\" height=\"80\" fill=\"#3d2a5a\"/><path d=\"M22 40 Q22 14 40 14 Q58 14 58 40 L58 58 L22 58 Z\" fill=\"#8a8278\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#4a5a7a\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f0cdb0\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f0cdb0\"/><path d=\"M26 36 Q26 16 40 16 Q54 16 54 36 Q52 24 40 24 Q28 24 26 36 Z\" fill=\"#8a8278\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><circle cx=\"34\" cy=\"35\" r=\"5\" fill=\"none\" stroke=\"#2b2b2b\" stroke-width=\"1.4\"/><circle cx=\"46\" cy=\"35\" r=\"5\" fill=\"none\" stroke=\"#2b2b2b\" stroke-width=\"1.4\"/><line x1=\"39\" y1=\"35\" x2=\"41\" y2=\"35\" stroke=\"#2b2b2b\" stroke-width=\"1.4\"/><path d=\"M30 58 Q40 70 50 58 L48 66 Q40 76 32 66 Z\" fill=\"#c62828\"/></svg>","solverRole":"staff","constraints":[{"type":"row_has","obj":"bench"},{"type":"rel_any","dir":"N","exact":1,"role":"owner"}]},{"id":"F","name":"Fabien","gender":"M","role":"staff","color":"#00838f","avatar":{"bg":"#5d4037","skin":"#e7b98f","hair":"#3a2a1c","style":"short","shirt":"#f4efe6","glasses":true,"beard":true,"bow":true},"clue":"He was the <b>only one</b> beside a <b>mirror</b>. There was <b>another member of staff</b> in his area.","job":"pianist of the studio","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Fabien\"><rect width=\"80\" height=\"80\" fill=\"#5d4037\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#f4efe6\"/><path d=\"M40 60 l-8 -4 v8 z M40 60 l8 -4 v8 z\" fill=\"#b8302b\"/><circle cx=\"40\" cy=\"60\" r=\"2\" fill=\"#7a1f1c\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#e7b98f\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#e7b98f\"/><path d=\"M26 32 Q26 15 40 15 Q54 15 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#3a2a1c\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><circle cx=\"34\" cy=\"35\" r=\"5\" fill=\"none\" stroke=\"#2b2b2b\" stroke-width=\"1.4\"/><circle cx=\"46\" cy=\"35\" r=\"5\" fill=\"none\" stroke=\"#2b2b2b\" stroke-width=\"1.4\"/><line x1=\"39\" y1=\"35\" x2=\"41\" y2=\"35\" stroke=\"#2b2b2b\" stroke-width=\"1.4\"/><path d=\"M27 38 Q30 52 40 53 Q50 52 53 38 Q50 47 40 48 Q30 47 27 38 Z\" fill=\"#3a2a1c\"/></svg>","solverRole":"staff","constraints":[{"type":"only_beside","obj":"mirror"},{"type":"with_role","role":"staff"}]},{"id":"G","name":"Gaëlle","gender":"F","role":"staff","color":"#ad1457","avatar":{"bg":"#00695c","skin":"#f6d8c0","hair":"#d9b464","style":"long","shirt":"#2e7d32","earrings":true},"clue":"She was <b>not alone</b> in her area.","job":"receptionist","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Gaëlle\"><rect width=\"80\" height=\"80\" fill=\"#00695c\"/><path d=\"M22 42 Q20 14 40 14 Q60 14 58 42 L62 72 L18 72 Z\" fill=\"#d9b464\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#2e7d32\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f6d8c0\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f6d8c0\"/><path d=\"M26 36 Q26 16 40 16 Q54 16 54 36 Q52 24 40 24 Q28 24 26 36 Z\" fill=\"#d9b464\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><circle cx=\"26\" cy=\"41\" r=\"1.8\" fill=\"#f0c95a\"/><circle cx=\"54\" cy=\"41\" r=\"1.8\" fill=\"#f0c95a\"/></svg>","solverRole":"staff","constraints":[{"type":"not_alone"}]},{"id":"V","name":"Véronique","gender":"F","role":"victim","color":"#1b1b1b","avatar":{"bg":"#5a2a2a","skin":"#f3d3b5","hair":"#d9d4cc","style":"bun","shirt":"#8b1a1a","necklace":true,"earrings":true},"clue":"<b>The victim.</b> She was found in the <b>Changing Room</b>, beside a <b>locker</b> – alone with the murderer.","job":"owner of the studio","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Véronique\"><rect width=\"80\" height=\"80\" fill=\"#5a2a2a\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#8b1a1a\"/><path d=\"M31 58 Q40 66 49 58\" fill=\"none\" stroke=\"#f3e2b3\" stroke-width=\"2\" stroke-dasharray=\"2 2\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f3d3b5\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f3d3b5\"/><circle cx=\"40\" cy=\"15\" r=\"7\" fill=\"#d9d4cc\"/><path d=\"M26 32 Q26 16 40 16 Q54 16 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#d9d4cc\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><circle cx=\"26\" cy=\"41\" r=\"1.8\" fill=\"#f0c95a\"/><circle cx=\"54\" cy=\"41\" r=\"1.8\" fill=\"#f0c95a\"/><path d=\"M12 12 L68 68 M68 12 L12 68\" stroke=\"#e0362e\" stroke-width=\"5\" stroke-linecap=\"round\" opacity=\".9\"/></svg>","solverRole":"owner","constraints":[{"type":"area","areas":["Changing Room"]},{"type":"beside","obj":"locker"}]}],"victim":"V","murderer":"C","solution":{"A":[1,5],"D":[2,4],"B":[3,7],"V":[4,2],"E":[5,6],"F":[6,3],"C":[7,1],"G":[8,8]},"walkthrough":[{"place":["B","A"],"cand":{"C":[[4,2],[4,4],[4,6],[4,8],[6,4],[6,6],[7,1],[7,2],[7,4],[7,6],[8,1],[8,2],[8,4],[8,6],[8,8]],"D":[[2,1],[2,2],[2,4]],"E":[[5,1],[5,2],[5,6],[5,8]],"F":[[4,3],[6,3]],"G":[[4,2],[4,4],[4,6],[4,8],[6,4],[6,6],[7,1],[7,2],[7,4],[7,6],[8,1],[8,2],[8,4],[8,6],[8,8]],"V":[[4,2],[7,1]]},"text":"Véronique was found in the Changing Room beside a locker: the lockers are at R4C1 and R6C1, so she is at R3C1, R4C2, R5C1 or R7C1 – and the murderer was alone with her there, so the Changing Room holds exactly two people. Benoît was sitting on a bench on the Terrace, and the Terrace has a single bench, the one at R3C7: <b>Benoît is at R3C7</b>. Fabien was beside a mirror – the mirrors are at R3C3 and R5C3, so he is at R4C3, R5C4 or R6C3 (R3C4 lies in Benoît’s row), in the Studio. Amélie had the loudspeaker (R8C5) in her column, so she is in column 5; but there was no man in her area, and Fabien is in the Studio, so she is not – of column 5 only R1C5 lies outside the Studio: <b>Amélie is at R1C5</b>, in the Office. Éléonore had a bench in her row: the benches are in rows 3 and 5, and row 3 is Benoît’s, so she is in row 5. That rules out R5C4 for Fabien – he is at R4C3 or R6C3, so column 3 is his – and R5C1 for Véronique, who is at R4C2 or R7C1. Didier was in the Lobby; row 1 is Amélie’s and column 3 is Fabien’s, so he is at R2C1, R2C2 or R2C4, in row 2."},{"place":["V","F"],"cand":{"C":[[7,1],[8,1]],"D":[[2,1],[2,4]],"E":[[5,6],[5,8]],"G":[[7,4],[7,6],[8,4],[8,6],[8,8]]},"text":"Exactly one row north of Éléonore was the owner – and the owner of the studio is Véronique herself: Amélie, Benoît, Clémence and Didier are dancers, Éléonore, Fabien and Gaëlle are members of staff. Éléonore is in row 5, so Véronique is in the row directly above, row 4; of her two squares only R4C2 lies there (R7C1 is in row 7): <b>Véronique is at R4C2</b>, beside the locker at R4C1. Row 4 is hers, so R4C3 is out for Fabien: <b>Fabien is at R6C3</b>, beside the mirror at R5C3. Where was Clémence? There was no man in her area, so she is not in the Studio (Fabien), not on the Terrace (Benoît) and not in the Lobby (Didier); the Office is out as well: R1C5 is Amélie’s, R3C6 lies in Benoît’s row and R2C6 in Didier’s. She is in the Changing Room – and that room holds only Véronique and the murderer: <b>Clémence is the murderer</b>, and nobody else is in the Changing Room."},{"place":["D","E"],"cand":{"C":[[7,1],[8,1]],"G":[[8,8]]},"text":"Clémence’s squares in the Changing Room: R3C1 and R3C2 lie in Benoît’s row, R5C1 and R5C2 in Éléonore’s, R8C2 in Véronique’s column and R8C3 in Fabien’s – she is at R7C1 or R8C1, so column 1 is hers. Didier, in row 2, loses R2C1 to her and R2C2 to Véronique: <b>Didier is at R2C4</b>. Fabien said there was another member of staff in his area, the Studio – who can that be, Éléonore or Gaëlle? Gaëlle cannot: rows 1–4 and 6 and columns 2–5 and 7 are taken, so the only Studio square still free is R5C6 – in Éléonore’s row. So the member of staff with Fabien is Éléonore: <b>Éléonore is at R5C6</b>."},{"place":["G","C"],"text":"Gaëlle was not alone in her area. Rows 1–6 and columns 2–7 are taken, so she is at R7C1, R8C1 or R8C8 (R7C8 is the planter); R7C1 and R8C1 are in the Changing Room, where only Véronique and Clémence were – <b>Gaëlle is at R8C8</b>, on the Terrace with Benoît, indeed not alone. Row 8 is hers, so <b>Clémence is at R7C1</b>, beside the locker at R6C1 – alone with Véronique in the Changing Room. Everyone is placed."},{"final":true,"text":"Case closed: Véronique was alone in the Changing Room with the contemporary dancer. <b>Clémence is the murderer!</b>"}],"solver":{"rules":[],"occupiable":["bench","sofa"]},"verification":{"tool":"tools/murdoku_solver.py","unique":true,"guessFree":true,"checked":"2026-10-06"},"score":9.1329}