{"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":"Studio ảnh","tagline":"Một studio chân dung ở Viên · một buổi sáng mưa tháng Tư năm 1924 · những ngọn đèn đang nóng dần lên","author":"mathace","concept":"Murdoku – Manuel Garand (murdoku.com); unofficial fan-made case","created":"2026-09-29","story":"Viên, một buổi sáng mưa tháng Tư năm 1924. Trong studio chân dung trên phố Kärntner Straße, chiếc máy ảnh gỗ lớn đã sẵn sàng, đèn studio đang nóng dần lên và chuyên viên trang điểm đang bày phấn của mình ra. Valeska, nữ danh ca operetta của mùa diễn, đến lấy các bức chân dung của mình – và để thông báo rằng cô sẽ kiện studio vì việc chỉnh sửa khiến cô trông già hơn mười tuổi. Vài phút sau, người ta tìm thấy cô đã chết ở Lễ tân, bên cạnh chiếc ghế tựa. Có bốn người trong studio, và mỗi người đưa ra một lời khai ngắn – hãy tìm người đã ở một mình với cô.","rules":{"standard":["Mỗi <b>hàng</b> và mỗi <b>cột</b> có đúng <b>một người</b>. Ngay khi đặt ai đó, hãy gạch bỏ toàn bộ hàng và cột của người ấy.","<b>“Bên cạnh”</b> = ngay bên trái, bên phải, phía trên hoặc phía dưới, và <b>trong cùng khu vực</b>. Không thể ở trên các ô có đồ vật (máy ảnh, đèn studio, bàn viết, bàn trang điểm và tủ quần áo); ghế tựa, ghế đẩu, ghế sofa và ghế bành thì được.","Hung thủ <b>ở một mình với nạn nhân</b>: không có ai khác trong khu vực đó."],"special":[]},"roleNames":{"customer":"khách hàng","staff":"nhân viên","victim":"nạn nhân"},"personGroups":[{"id":"customers","name":"Khách hàng","persons":["A","B","V"]},{"id":"staff","name":"Nhân viên 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":"Lễ tân"},{"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":"Phòng chụp"},{"id":"Dressing Room","cells":[[3,1],[4,1],[4,2],[5,1],[5,2]],"fill":"#f3dde3","pattern":"carpet","labelAt":[5,2],"name":"Phòng thay đồ"},{"id":"Waiting Corner","cells":[[4,5],[5,4],[5,5]],"fill":"#e8dccb","pattern":"planks","labelAt":[4,5],"name":"Góc chờ"}],"objectTypes":{"armchair":{"occupiable":true,"name":"ghế bành","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":"ghế tựa","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":"ghế 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\"/>"},"stool":{"occupiable":true,"name":"ghế đẩu","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":"máy ảnh","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":"bàn viết","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":"bàn trang điểm","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":"đèn 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":"tủ quần áo","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":"Anh ấy ở <b>Góc chờ</b>.","job":"một đại tá về hưu đang chờ chụp ảnh hộ chiếu","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":"Cô ấy ngồi trên <b>ghế đẩu</b>.","job":"một cô dâu tương lai đang chụp chân dung đính hôn","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":"Cô ấy ở bên cạnh <b>bàn trang điểm</b>.","job":"chuyên viên trang điểm","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":"Anh ấy <b>không</b> ở bên cạnh <b>ghế tựa</b>.","job":"nhiếp ảnh gia, chủ 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>Nạn nhân.</b> Cô ấy được tìm thấy ở <b>Lễ tân</b>, bên cạnh <b>ghế tựa</b> – một mình với hung thủ.","job":"một nữ danh ca operetta đến lấy các bức chân dung của mình","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 ngồi trên ghế đẩu, mà chỉ có một ghế đẩu, ở R3C4. <b>Blanka ở R3C4</b>: gạch bỏ hàng 3 và cột 4."},{"place":["C","A"],"cand":{},"text":"Cyprienne ở bên cạnh bàn trang điểm (R4C1, trong Phòng thay đồ). Các ô lân cận là R3C1, R4C2 và tủ quần áo ở R5C1; hàng 3 là của Blanka, nên <b>Cyprienne ở R4C2</b>. Adalbert ở Góc chờ: R4C5, R5C4 hoặc R5C5. Hàng 4 là của Cyprienne và cột 4 là của Blanka: <b>Adalbert ở R5C5</b>, trên ghế bành."},{"place":["D"],"cand":{},"text":"Dieter không ở bên cạnh ghế tựa. Các hàng còn trống với anh ấy là 1 và 2, các cột là 1 và 3, nên còn lại R1C1 và R2C3 (R1C3 là máy ảnh, R2C1 là bàn viết). R1C1 nằm ngay bên cạnh ghế tựa ở R1C2, cả hai đều ở Lễ tân: <b>Dieter ở R2C3</b>."},{"final":true,"text":"Vụ án khép lại: ô trống cuối cùng, R1C1, là của nạn nhân – ở Lễ tân, bên cạnh ghế tựa, đúng như thẻ của cô ấy nói, dù chúng ta chưa bao giờ cần đến. Valeska đã ở đó một mình với nhiếp ảnh gia. <b>Dieter là hung thủ!</b>"}],"solver":{"rules":[],"occupiable":["armchair","chair","sofa","stool"]},"verification":{"tool":"tools/murdoku_solver.py","unique":true,"guessFree":true,"checked":"2026-09-29"}}