{"format":"murdoku-puzzle/1","id":"photostudio","version":1,"difficulty":"very-easy","level":1,"size":{"rows":5,"cols":5},"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":"Le studio photo","tagline":"Un studio de portraits à Vienne · un matin pluvieux d’avril 1924 · les lampes chauffaient","author":"mathace","concept":"Murdoku – Manuel Garand (murdoku.com); unofficial fan-made case","created":"2026-09-29","story":"Vienne, un matin pluvieux d’avril 1924. Dans le studio de portraits de la Kärntner Straße, le grand appareil en bois était prêt, la lampe de studio chauffait et la maquilleuse disposait ses poudres. Valeska, la diva d’opérette de la saison, était venue chercher ses portraits – et annoncer qu’elle poursuivrait le studio en justice pour les retouches qui la vieillissaient de dix ans. Quelques minutes plus tard, on l’a retrouvée morte dans la réception, à côté de la chaise. Quatre personnes se trouvaient dans le studio, et chacune a fait une courte déclaration – trouve celle qui était seule avec elle.","rules":{"standard":["Chaque <b>ligne</b> et chaque <b>colonne</b> contient exactement <b>une personne</b>. Dès que tu places quelqu’un, barre toute sa ligne et sa colonne.","<b>« À côté »</b> = directement à gauche, à droite, au-dessus ou en dessous, et <b>dans la même zone</b>. Les cases avec un objet (l’appareil photo, la lampe de studio, le bureau, la coiffeuse et l’armoire) ne peuvent pas être occupées ; la chaise, le tabouret, le canapé et le fauteuil, si.","Le meurtrier était <b>seul avec la victime</b> : personne d’autre ne se trouvait dans cette zone."],"special":[]},"roleNames":{"customer":"client","staff":"personnel","victim":"victime"},"personGroups":[{"id":"customers","name":"Clients","persons":["A","B","V"]},{"id":"staff","name":"Le personnel du studio","persons":["C","D"]}],"map":{"groups":[],"gaps":[],"areas":[{"id":"Reception","cells":[[1,1],[1,2],[2,1],[2,2],[2,3],[3,2]],"fill":"#efe4d4","pattern":"carpet","labelAt":[2,2],"name":"Réception"},{"id":"Studio","cells":[[1,3],[1,4],[1,5],[2,4],[2,5],[3,3],[3,4],[3,5],[4,3],[4,4],[5,3]],"fill":"#e6e6ea","pattern":"boards","labelAt":[2,4],"name":"Studio"},{"id":"Dressing Room","cells":[[3,1],[4,1],[4,2],[5,1],[5,2]],"fill":"#f3dde3","pattern":"carpet","labelAt":[5,2],"name":"Loge"},{"id":"Waiting Corner","cells":[[4,5],[5,4],[5,5]],"fill":"#e8dccb","pattern":"planks","labelAt":[4,5],"name":"Coin d’attente"}],"objectTypes":{"armchair":{"occupiable":true,"name":"fauteuil","icon":"<rect x=\"6\" y=\"14\" width=\"34\" height=\"24\" rx=\"6\" fill=\"#b3252f\" stroke=\"#6b1218\" stroke-width=\"1.5\"/><rect x=\"11\" y=\"8\" width=\"24\" height=\"14\" rx=\"5\" fill=\"#d0333f\" stroke=\"#6b1218\" stroke-width=\"1.5\"/><rect x=\"6\" y=\"20\" width=\"7\" height=\"14\" rx=\"3\" fill=\"#8a1a22\"/><rect x=\"33\" y=\"20\" width=\"7\" height=\"14\" rx=\"3\" fill=\"#8a1a22\"/>"},"chair":{"occupiable":true,"name":"chaise","icon":"<rect x=\"9\" y=\"7\" width=\"28\" height=\"32\" rx=\"6\" fill=\"#fbfaf6\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/><rect x=\"9\" y=\"7\" width=\"28\" height=\"9\" rx=\"4\" fill=\"#d9d5cc\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/>"},"sofa":{"occupiable":true,"name":"canapé","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\"/>"},"stool":{"occupiable":true,"name":"tabouret","icon":"<circle cx=\"23\" cy=\"23\" r=\"11\" fill=\"#fbfaf6\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/><circle cx=\"23\" cy=\"23\" r=\"5\" fill=\"#d9d5cc\"/>"},"camera":{"occupiable":false,"name":"appareil photo","icon":"<rect x=\"6\" y=\"14\" width=\"26\" height=\"18\" rx=\"3\" fill=\"#2b2f33\" stroke=\"#0b0e12\" stroke-width=\"1.5\"/><path d=\"M32 19 l9 -5 v18 l-9 -5 z\" fill=\"#2b2f33\" stroke=\"#0b0e12\" stroke-width=\"1.5\"/><circle cx=\"15\" cy=\"23\" r=\"5\" fill=\"#5b6b76\" stroke=\"#c9d6dd\" stroke-width=\"1.2\"/><circle cx=\"26\" cy=\"18\" r=\"1.6\" fill=\"#e0362e\"/><rect x=\"17\" y=\"32\" width=\"4\" height=\"9\" fill=\"#5b6b76\"/><path d=\"M10 42 l9 -4 l9 4\" fill=\"none\" stroke=\"#5b6b76\" stroke-width=\"2.5\"/>"},"desk":{"occupiable":false,"name":"bureau","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\"/>"},"dressing_table":{"occupiable":false,"name":"coiffeuse","icon":"<rect x=\"6\" y=\"24\" width=\"34\" height=\"16\" rx=\"3\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><circle cx=\"23\" cy=\"13\" r=\"10\" fill=\"#dfe9ee\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/><circle cx=\"23\" cy=\"13\" r=\"6\" fill=\"#f4f9fb\"/><rect x=\"10\" y=\"28\" width=\"8\" height=\"4\" fill=\"#e6cfa8\"/><rect x=\"28\" y=\"28\" width=\"8\" height=\"4\" fill=\"#e6cfa8\"/>"},"spotlight":{"occupiable":false,"name":"lampe de studio","icon":"<path d=\"M23 27 L13 44 M23 27 L33 44 M23 27 V44\" stroke=\"#2b2b2b\" stroke-width=\"2\" stroke-linecap=\"round\"/><path d=\"M27 12 L45 3 V25 Z\" fill=\"#f7e7a8\" opacity=\".55\"/><g transform=\"rotate(-25 21 18)\"><rect x=\"12\" y=\"12\" width=\"17\" height=\"12\" rx=\"3\" fill=\"#2f3338\" stroke=\"#111\" stroke-width=\"1.2\"/><rect x=\"28\" y=\"11\" width=\"3\" height=\"14\" rx=\"1\" fill=\"#555\"/><rect x=\"14\" y=\"9.5\" width=\"6\" height=\"2.5\" rx=\"1\" fill=\"#555\"/></g><circle cx=\"23\" cy=\"26\" r=\"2.2\" fill=\"#555\"/>"},"wardrobe":{"occupiable":false,"name":"armoire","icon":"<rect x=\"8\" y=\"3\" width=\"30\" height=\"40\" rx=\"2\" fill=\"#8f6a44\" stroke=\"#5e4127\" stroke-width=\"1.5\"/><line x1=\"23\" y1=\"3\" x2=\"23\" y2=\"43\" stroke=\"#5e4127\"/><circle cx=\"19\" cy=\"24\" r=\"1.6\" fill=\"#e6cfa8\"/><circle cx=\"27\" cy=\"24\" r=\"1.6\" fill=\"#e6cfa8\"/>"}},"wallTypes":{},"objects":[{"cell":[1,2],"type":"chair"},{"cell":[1,3],"type":"camera"},{"cell":[1,5],"type":"spotlight"},{"cell":[2,1],"type":"desk"},{"cell":[3,4],"type":"stool"},{"cell":[4,1],"type":"dressing_table"},{"cell":[4,3],"type":"sofa"},{"cell":[5,1],"type":"wardrobe"},{"cell":[5,5],"type":"armchair"}],"wallFeatures":[],"extras":[],"cellSize":46},"persons":[{"id":"A","name":"Adalbert","gender":"M","role":"customer","color":"#c62828","avatar":{"bg":"#2f4858","skin":"#e4b998","hair":"#e8e4dc","style":"short","shirt":"#264653","mustache":true,"mustacheColor":"#e8e4dc"},"clue":"Il était dans le <b>Coin d’attente</b>.","job":"un colonel à la retraite qui attendait sa photo de passeport","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Adalbert\"><rect width=\"80\" height=\"80\" fill=\"#2f4858\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#264653\"/><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 32 Q26 15 40 15 Q54 15 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#e8e4dc\"/><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=\"#e8e4dc\"/></svg>","solverRole":"customer","constraints":[{"type":"area","areas":["Waiting Corner"]}]},{"id":"B","name":"Blanka","gender":"F","role":"customer","color":"#2e7d32","avatar":{"bg":"#ad1457","skin":"#f6d8c0","hair":"#d9b464","style":"long","shirt":"#f4efe6","necklace":true},"clue":"Elle était assise sur le <b>tabouret</b>.","job":"une future mariée qui posait pour son portrait de fiançailles","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Blanka\"><rect width=\"80\" height=\"80\" fill=\"#ad1457\"/><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=\"#f4efe6\"/><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\"/><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\"/></svg>","solverRole":"customer","constraints":[{"type":"on","obj":"stool"}]},{"id":"C","name":"Cyprienne","gender":"F","role":"staff","color":"#1565c0","avatar":{"bg":"#6a1b9a","skin":"#f0cdb0","hair":"#1c1a1a","style":"bob","shirt":"#b83a5a","earrings":true},"clue":"Elle était à côté de la <b>coiffeuse</b>.","job":"la maquilleuse","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Cyprienne\"><rect width=\"80\" height=\"80\" fill=\"#6a1b9a\"/><path d=\"M22 40 Q22 14 40 14 Q58 14 58 40 L58 58 L22 58 Z\" fill=\"#1c1a1a\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#b83a5a\"/><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=\"#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\"/><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":"beside","obj":"dressing_table"}]},{"id":"D","name":"Dieter","gender":"M","role":"staff","color":"#6a1b9a","avatar":{"bg":"#1565c0","skin":"#f1c8a5","hair":"#7a4a2a","style":"slick","shirt":"#1b1b1b","beard":true,"glasses":true},"clue":"Il n’était <b>pas</b> à côté de la <b>chaise</b>.","job":"le photographe, propriétaire du studio","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Dieter\"><rect width=\"80\" height=\"80\" fill=\"#1565c0\"/><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=\"#f1c8a5\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f1c8a5\"/><path d=\"M26 30 Q27 16 44 15 Q56 15 55 26 Q48 22 40 23 Q30 24 26 30 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\"/><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=\"#7a4a2a\"/></svg>","solverRole":"staff","constraints":[{"type":"not_beside","obj":"chair"}]},{"id":"V","name":"Valeska","gender":"F","role":"victim","color":"#1b1b1b","avatar":{"bg":"#5a2a2a","skin":"#f3d3b5","hair":"#b7482c","style":"curly","shirt":"#7a1b3a","necklace":true,"earrings":true},"clue":"<b>La victime.</b> Elle a été retrouvée dans la <b>Réception</b>, à côté de la <b>chaise</b> – seule avec le meurtrier.","job":"une diva d’opérette venue chercher ses portraits","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Valeska\"><rect width=\"80\" height=\"80\" fill=\"#5a2a2a\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#7a1b3a\"/><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\"/><path d=\"M25 34 q-3 -8 4 -10 q0 -8 8 -7 q3 -4 8 -1 q6 -3 9 3 q7 0 5 8 q4 4 -1 9 q-6 -14 -16 -12 q-9 -1 -17 10 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\"/><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":"customer","constraints":[{"type":"area","areas":["Reception"]},{"type":"beside","obj":"chair"}]}],"victim":"V","murderer":"D","solution":{"V":[1,1],"D":[2,3],"B":[3,4],"C":[4,2],"A":[5,5]},"walkthrough":[{"place":["B"],"cand":{"A":[[4,5],[5,5]],"C":[[4,2]]},"text":"Blanka était assise sur le tabouret, et il n’y a qu’un seul tabouret, en R3C4. <b>Blanka est en R3C4</b> : barre la ligne 3 et la colonne 4."},{"place":["C","A"],"cand":{},"text":"Cyprienne était à côté de la coiffeuse (R4C1, dans la Loge). Les cases voisines sont R3C1, R4C2 et l’armoire en R5C1 ; la ligne 3 est à Blanka, donc <b>Cyprienne est en R4C2</b>. Adalbert était dans le Coin d’attente : R4C5, R5C4 ou R5C5. La ligne 4 est à Cyprienne et la colonne 4 à Blanka : <b>Adalbert est en R5C5</b>, dans le fauteuil."},{"place":["D"],"cand":{},"text":"Dieter n’était pas à côté de la chaise. Il lui reste les lignes 1 et 2 et les colonnes 1 et 3, ce qui laisse R1C1 et R2C3 (R1C3 est l’appareil photo, R2C1 le bureau). R1C1 est juste à côté de la chaise en R1C2, toutes deux dans la Réception : <b>Dieter est en R2C3</b>."},{"final":true,"text":"Affaire classée : la dernière case libre, R1C1, est celle de la victime – dans la Réception, à côté de la chaise, exactement comme le dit sa carte, même si nous n’en avons jamais eu besoin. Valeska y était seule avec le photographe. <b>Dieter est le meurtrier !</b>"}],"solver":{"rules":[],"occupiable":["armchair","chair","sofa","stool"]},"verification":{"tool":"tools/murdoku_solver.py","unique":true,"guessFree":true,"checked":"2026-09-29"}}