{"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":"The Wedding Suit","tagline":"Porto, Friday evening · a tailor’s workshop in Rua de Cedofeita · a suit for tomorrow and a bill for the cloth","author":"mathace","concept":"Murdoku – Manuel Garand (murdoku.com); unofficial fan-made case","created":"2026-10-19","story":"In Porto, the tailor's workshop on Rua de Cedofeita has sewn wedding suits for three generations. On Friday evening the master tailor, the seamstress and the apprentice worked, and the groom came with the bride's mother for the last fitting. Violeta, the fabric merchant, came with her bill and was gone by eight. Six people were in the workshop. Violeta was found dead. Nobody paid the bill.","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 dressmaker’s dummy, the mirror, the tables, the shelf, the crate, the sewing machines and the coat rack) cannot be occupied; the stools and the chair 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 was a woman, in any column; <i>“the northernmost person in her area”</i> = nobody else in her area was in a row further up.","The murderer was <b>alone with the victim</b>: nobody else was in that area. The victim made no statement – her square, too, follows from the others’."],"special":[],"notes":[],"example":{}},"roleNames":{"workshop":"member of the workshop","customer":"customer","merchant":"merchant","victim":"victim"},"personGroups":[{"id":"workshop","name":"The workshop","persons":["A","B","C"]},{"id":"visitors","name":"The visitors","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":"Shop"},{"id":"Fitting Room","cells":[[1,4],[1,5],[2,4]],"fill":"#e6dcc8","pattern":"boards","labelAt":[1,4],"name":"Fitting Room"},{"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":"Cutting Room"},{"id":"Stockroom","cells":[[3,1],[4,1],[4,2],[5,1],[6,1],[6,2]],"fill":"#f2e6c8","pattern":"planks","labelAt":[3,1],"name":"Stockroom"},{"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":"Sewing Room"},{"id":"Pressing Room","cells":[[5,6],[6,4],[6,5],[6,6]],"fill":"#d9d6e0","pattern":"tiles","labelAt":[5,6],"name":"Pressing Room"}],"objectTypes":{"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\"/>"},"mannequin":{"occupiable":false,"name":"dressmaker’s dummy","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":"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\"/>"},"stool":{"occupiable":true,"name":"stool","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":"table","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":"shelf","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":"crate","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":"sewing machine","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":"chair","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":"coat rack","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":"The <b>mirror</b> was somewhere in his <b>row</b>. The <b>coat rack</b> was somewhere in his <b>column</b>.","job":"master tailor","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":"The <b>dressmaker’s dummy</b> was somewhere in her area.","job":"seamstress","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":"He was the <b>only man</b> beside the <b>chair</b>.","job":"apprentice","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":"She was in the <b>Fitting Room</b>.","job":"the bride’s mother","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":"He was <b>not</b> beside the <b>shelf</b>. He was <b>exactly one row south of Benedita</b>.","job":"the groom","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>The victim.</b> She was alone with the murderer.","job":"fabric merchant","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"}}