{"format":"murdoku-puzzle/1","id":"wedding-suit","iconSet":"catalogue","version":1,"difficulty":"easy","level":3,"size":{"rows":6,"cols":6},"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":"결혼식 양복","tagline":"포르투, 금요일 저녁 · 루아 드 세도페이타의 양복점 · 내일을 위한 양복 한 벌과 옷감 값 청구서","author":"mathace","concept":"Murdoku – Manuel Garand (murdoku.com); unofficial fan-made case","created":"2026-10-19","story":"포르투 Rua de Cedofeita의 양복점은 3대째 결혼식 양복을 지어 왔다. 금요일 저녁에는 수석 재단사, 재봉사, 견습생이 일했고, 신랑은 신부의 어머니와 함께 마지막 가봉을 하러 왔다. 직물 상인 Violeta는 청구서를 들고 왔다가 여덟 시에는 사라지고 없었다. 작업장에는 여섯 사람이 있었다. Violeta는 죽은 채 발견되었다. 청구서는 아무도 지불하지 않았다.","rules":{"standard":["모든 <b>행</b>과 모든 <b>열</b>에는 정확히 <b>한 사람</b>이 있다. 누군가를 배치하는 즉시 그 사람의 행과 열 전체를 지워라.","<b>“옆”</b> = 바로 왼쪽, 오른쪽, 위, 아래이며 <b>같은 구역 안</b>이어야 한다. 물건(카운터, 마네킹, 거울, 테이블, 선반, 상자, 재봉틀, 옷걸이)이 있는 칸에는 있을 수 없다; 스툴과 의자에는 있을 수 있다.","방향은 행과 열을 가리키며 같은 직선일 필요는 없다: <i>“그의 정확히 한 행 북쪽에 여자가 있었다”</i> = 바로 위의 행에 있는 사람이 여자였다, 열은 무관; <i>“자신의 구역에서 가장 북쪽에 있는 사람”</i> = 그녀의 구역에서 다른 누구도 그보다 위쪽 행에 있지 않았다.","범인은 <b>피해자와 단둘이</b> 있었다: 그 구역에는 다른 누구도 없었다. 피해자는 진술하지 않았다 – 그녀의 칸도 나머지 진술에서 도출된다."],"special":[],"notes":[],"example":{}},"roleNames":{"workshop":"작업장 구성원","customer":"손님","merchant":"상인","victim":"피해자"},"personGroups":[{"id":"workshop","name":"작업장","persons":["A","B","C"]},{"id":"visitors","name":"방문객","persons":["D","E","V"]}],"map":{"groups":[],"gaps":[],"areas":[{"id":"Shop","cells":[[1,1],[1,2],[1,3],[2,1],[2,2],[2,3],[3,2],[3,3],[4,3]],"fill":"#dfe9ee","pattern":"tiles","labelAt":[1,1.5],"name":"상점"},{"id":"Fitting Room","cells":[[1,4],[1,5],[2,4]],"fill":"#e6dcc8","pattern":"boards","labelAt":[1,4],"name":"탈의실"},{"id":"Cutting Room","cells":[[1,6],[2,5],[2,6],[3,4],[3,5],[3,6],[4,6]],"fill":"#efd9c9","pattern":"marble","labelAt":[1,6],"name":"재단실"},{"id":"Stockroom","cells":[[3,1],[4,1],[4,2],[5,1],[6,1],[6,2]],"fill":"#f2e6c8","pattern":"planks","labelAt":[3,1],"name":"창고"},{"id":"Sewing Room","cells":[[4,4],[4,5],[5,2],[5,3],[5,4],[5,5],[6,3]],"fill":"#d5e6d8","pattern":"tiles","labelAt":[4,4.5],"name":"재봉실"},{"id":"Pressing Room","cells":[[5,6],[6,4],[6,5],[6,6]],"fill":"#d9d6e0","pattern":"tiles","labelAt":[5,6],"name":"다림질실"}],"objectTypes":{"counter":{"occupiable":false,"name":"카운터","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\"/>"},"mannequin":{"occupiable":false,"name":"마네킹","icon":"<circle cx=\"23\" cy=\"8\" r=\"4\" fill=\"#d9d5cc\" stroke=\"#8c8a82\"/><path d=\"M15 14 h16 l3 16 h-22 z\" fill=\"#c8536a\" stroke=\"#7a2a3c\" stroke-width=\"1.2\"/><line x1=\"23\" y1=\"30\" x2=\"23\" y2=\"40\" stroke=\"#5b5852\" stroke-width=\"2.5\"/><line x1=\"15\" y1=\"41\" x2=\"31\" y2=\"41\" stroke=\"#5b5852\" stroke-width=\"2.5\"/>"},"mirror":{"occupiable":false,"name":"거울","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\"/>"},"stool":{"occupiable":true,"name":"스툴","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\"/>"},"table":{"occupiable":false,"name":"테이블","icon":"<rect x=\"7\" y=\"7\" width=\"32\" height=\"32\" rx=\"5\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><rect x=\"12\" y=\"12\" width=\"22\" height=\"22\" rx=\"3\" fill=\"#d1a675\"/>","iconTall":"<rect x=\"7\" y=\"7\" width=\"32\" height=\"78\" rx=\"5\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><rect x=\"12\" y=\"12\" width=\"22\" height=\"68\" rx=\"3\" fill=\"#d1a675\"/>"},"shelf":{"occupiable":false,"name":"선반","icon":"<rect x=\"8\" y=\"5\" width=\"30\" height=\"36\" fill=\"#8f6a44\" stroke=\"#5e4127\" stroke-width=\"1.5\"/><rect x=\"11\" y=\"9\" width=\"24\" height=\"8\" fill=\"#e6cfa8\"/><rect x=\"11\" y=\"20\" width=\"24\" height=\"8\" fill=\"#d4b98f\"/><rect x=\"11\" y=\"31\" width=\"24\" height=\"8\" fill=\"#e6cfa8\"/>"},"crate":{"occupiable":false,"name":"상자","icon":"<rect x=\"6\" y=\"10\" width=\"34\" height=\"30\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><line x1=\"6\" y1=\"20\" x2=\"40\" y2=\"20\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><line x1=\"6\" y1=\"30\" x2=\"40\" y2=\"30\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><line x1=\"17\" y1=\"10\" x2=\"17\" y2=\"40\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><line x1=\"29\" y1=\"10\" x2=\"29\" y2=\"40\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/>"},"sewing":{"occupiable":false,"name":"재봉틀","icon":"<rect x=\"6\" y=\"30\" width=\"34\" height=\"10\" rx=\"2\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><path d=\"M11 30 v-16 h8 v8 h12 v-10 h6 v18 z\" fill=\"#3d444b\" stroke=\"#161c25\" stroke-width=\"1.2\"/><circle cx=\"34\" cy=\"17\" r=\"3\" fill=\"#9aa1a8\"/>"},"chair":{"occupiable":true,"name":"의자","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\"/>"},"rack":{"occupiable":false,"name":"옷걸이","icon":"<line x1=\"6\" y1=\"10\" x2=\"40\" y2=\"10\" stroke=\"#5b5852\" stroke-width=\"3\"/><line x1=\"9\" y1=\"10\" x2=\"9\" y2=\"40\" stroke=\"#5b5852\" stroke-width=\"2.5\"/><line x1=\"37\" y1=\"10\" x2=\"37\" y2=\"40\" stroke=\"#5b5852\" stroke-width=\"2.5\"/><path d=\"M15 14 v2 h8 v14 h-8 z\" fill=\"#c8536a\"/><path d=\"M25 14 v2 h7 v12 h-7 z\" fill=\"#3a6fb0\"/><line x1=\"19\" y1=\"10\" x2=\"19\" y2=\"14\" stroke=\"#333\"/><line x1=\"28\" y1=\"10\" x2=\"28\" y2=\"14\" stroke=\"#333\"/>"}},"wallTypes":{},"objects":[{"cell":[1,1],"type":"counter"},{"cell":[1,5],"type":"mirror"},{"cell":[2,2],"type":"mannequin"},{"cell":[2,3],"type":"stool"},{"cell":[2,6],"type":"table"},{"cell":[3,5],"type":"stool"},{"cell":[3,6],"type":"table"},{"cell":[4,5],"type":"sewing"},{"cell":[5,1],"type":"shelf"},{"cell":[5,3],"type":"sewing"},{"cell":[5,4],"type":"chair"},{"cell":[6,2],"type":"crate"},{"cell":[6,6],"type":"rack"}],"wallFeatures":[],"extras":[],"cellSize":46},"persons":[{"id":"A","name":"Albano","gender":"M","role":"workshop","color":"#c62828","avatar":{"bg":"#2f4858","skin":"#c98d62","hair":"#1c1a1a","style":"short","beard":true,"shirt":"#c62828"},"clue":"그의 <b>행</b> 어딘가에 <b>거울</b>이 있었다. 그의 <b>열</b> 어딘가에 <b>옷걸이</b>가 있었다.","job":"수석 재단사","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Albano\"><rect width=\"80\" height=\"80\" fill=\"#2f4858\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#c62828\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#c98d62\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#c98d62\"/><path d=\"M26 32 Q26 15 40 15 Q54 15 54 32 Q50 24 40 24 Q30 24 26 32 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=\"M27 38 Q30 52 40 53 Q50 52 53 38 Q50 47 40 48 Q30 47 27 38 Z\" fill=\"#1c1a1a\"/></svg>","solverRole":"workshop","constraints":[{"type":"row_has","obj":"mirror"},{"type":"col_has","obj":"rack"}]},{"id":"B","name":"Benedita","gender":"F","role":"workshop","color":"#1565c0","avatar":{"bg":"#5b2c6f","skin":"#f0cdb0","hair":"#2a1c14","style":"ponytail","headband":"#ffffff","shirt":"#1565c0"},"clue":"그녀의 구역 어딘가에 <b>마네킹</b>이 있었다.","job":"재봉사","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Benedita\"><rect width=\"80\" height=\"80\" fill=\"#5b2c6f\"/><path d=\"M50 30 Q64 34 60 62 L54 62 Q56 40 48 36 Z\" fill=\"#2a1c14\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#1565c0\"/><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 33 Q26 16 40 16 Q54 16 54 33 Q50 24 40 24 Q30 24 26 33 Z\" fill=\"#2a1c14\"/><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=\"#ffffff\"/></svg>","solverRole":"workshop","constraints":[{"type":"area_has","obj":"mannequin"}]},{"id":"C","name":"Cândido","gender":"M","role":"workshop","color":"#2e7d32","avatar":{"bg":"#1b2a33","skin":"#f1c8a5","hair":"#5a5a5a","style":"slick","mustache":true,"mustacheColor":"#5a5a5a","shirt":"#2e7d32"},"clue":"그는 <b>의자</b> 옆에 있던 <b>유일한 남자</b>였다.","job":"견습생","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Cândido\"><rect width=\"80\" height=\"80\" fill=\"#1b2a33\"/><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=\"#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=\"#5a5a5a\"/><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=\"#5a5a5a\"/></svg>","solverRole":"workshop","constraints":[{"type":"only_beside","obj":"chair","gender":"M"}]},{"id":"D","name":"Delfina","gender":"F","role":"customer","color":"#6a1b9a","avatar":{"bg":"#6e2c4b","skin":"#e7b98f","hair":"#1c1a1a","style":"bun","earrings":true,"shirt":"#6a1b9a"},"clue":"그녀는 <b>탈의실</b>에 있었다.","job":"신부의 어머니","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Delfina\"><rect width=\"80\" height=\"80\" fill=\"#6e2c4b\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#6a1b9a\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#e7b98f\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#e7b98f\"/><circle cx=\"40\" cy=\"15\" r=\"7\" fill=\"#1c1a1a\"/><path d=\"M26 32 Q26 16 40 16 Q54 16 54 32 Q50 24 40 24 Q30 24 26 32 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":"customer","constraints":[{"type":"area","areas":["Fitting Room"]}]},{"id":"E","name":"Ernesto","gender":"M","role":"customer","color":"#e65100","avatar":{"bg":"#3d5a6e","skin":"#e9bf9b","hair":"#2a1c14","style":"short","cap":true,"beard":true,"shirt":"#e65100"},"clue":"그는 <b>선반</b> 옆에 있지 <b>않았다</b>. 그는 <b>Benedita보다 정확히 한 행 남쪽</b>에 있었다.","job":"신랑","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Ernesto\"><rect width=\"80\" height=\"80\" fill=\"#3d5a6e\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#e65100\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#e9bf9b\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#e9bf9b\"/><path d=\"M26 32 Q26 15 40 15 Q54 15 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#2a1c14\"/><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=\"#2a1c14\"/><path d=\"M24 24 Q24 11 40 11 Q56 11 56 24 Z\" fill=\"#22406f\"/><rect x=\"22\" y=\"22\" width=\"36\" height=\"5\" rx=\"2\" fill=\"#12213a\"/><circle cx=\"40\" cy=\"18\" r=\"2.6\" fill=\"#f0b429\"/></svg>","solverRole":"customer","constraints":[{"type":"not_beside","obj":"shelf"},{"type":"rel","q":"B","dir":"S","exact":1}]},{"id":"V","name":"Violeta","gender":"F","role":"victim","color":"#1b1b1b","avatar":{"bg":"#35607a","skin":"#f3d3b5","hair":"#d9b464","style":"long","necklace":true,"shirt":"#1b1b1b"},"clue":"<b>피해자.</b> 그녀는 범인과 단둘이 있었다.","job":"직물 상인","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Violeta\"><rect width=\"80\" height=\"80\" fill=\"#35607a\"/><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=\"#1b1b1b\"/><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=\"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\"/><path d=\"M12 12 L68 68 M68 12 L12 68\" stroke=\"#e0362e\" stroke-width=\"5\" stroke-linecap=\"round\" opacity=\".9\"/></svg>","solverRole":"merchant","constraints":[]}],"victim":"V","solver":{"rules":[],"occupiable":["stool","chair"]},"score":1.0115,"seal":{"board":"2a69ea83cb373bb0e7a3ffcb13899bdb39b57a338b55877f7e67fb1e23ab84b4","murderer":"606b06a7c7bb691c9f6675a14df3e4693d36b3eac4c80bafc175c97a9fd0e101"}}