{"format":"murdoku-puzzle/1","id":"carousel","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":"회전목마","tagline":"마을 풀밭에 선 떠돌이 축제 · 1908년 성령강림절 월요일 · 회전목마는 결코 멈추지 않았다","author":"mathace","concept":"Murdoku – Manuel Garand (murdoku.com); unofficial fan-made case","created":"2026-09-29","story":"웨일스 접경 지역의 마을 풀밭, 1908년 성령강림절 월요일. 떠돌이 축제가 찾아왔다. 증기 오르간이 울렸고, 회전목마의 말들은 알록달록 칠한 중앙 기둥 둘레를 빙글빙글 돌았으며, 팝콘 카트 – 미국에서 건너온 최신 명물 – 는 아이들 무리를 끌어모았다. 풀밭의 주인인 저택의 안주인 Vesta는 그날 아침 축제가 다시는 돌아오지 못하게 하겠다고 선언했다. 오후에 그녀는 사탕 가판대에서, 팝콘 카트 옆에서 죽은 채 발견되었다. 네 사람이 그녀 가까이에 있었고, 각자 짧은 진술을 하나씩 했다 – 그녀와 단둘이 있었던 사람을 찾아라.","rules":{"standard":["모든 <b>행</b>과 모든 <b>열</b>에는 정확히 <b>한 사람</b>이 있다. 누군가를 배치하는 즉시 그 사람의 행과 열 전체를 지워라.","<b>“옆”</b> = 바로 왼쪽, 오른쪽, 위, 아래이며 <b>같은 구역 안</b>이어야 한다. 물건이 있는 칸(매표 창구, 나무, 중앙 기둥, 팝콘 카트, 화단)에는 있을 수 없다. 다만 회전목마 말과 벤치는 예외다.","범인은 <b>피해자와 단둘이</b> 있었다: 그 구역에는 다른 누구도 없었다."],"special":[]},"roleNames":{"visitor":"방문객","staff":"축제 직원","victim":"피해자"},"personGroups":[{"id":"visitors","name":"방문객","persons":["A","B","V"]},{"id":"staff","name":"축제 사람들","persons":["C","D"]}],"map":{"groups":[],"gaps":[],"areas":[{"id":"Ticket Booth","cells":[[1,1],[1,2],[2,1]],"fill":"#eadfcb","pattern":"planks","labelAt":[2,1],"name":"매표 부스"},{"id":"Carousel","cells":[[2,2],[2,3],[2,4],[3,1],[3,2],[3,3],[4,2],[4,3],[4,4]],"fill":"#f3e0c9","pattern":"boards","labelAt":[3,2],"name":"회전목마"},{"id":"Lawn","cells":[[1,3],[1,4],[1,5],[2,5],[3,4],[3,5],[4,5],[5,4],[5,5]],"fill":"#e0edcc","pattern":"marble","labelAt":[3,4],"name":"잔디밭"},{"id":"Sweet Stall","cells":[[4,1],[5,1],[5,2],[5,3]],"fill":"#f6dde6","pattern":"planks","labelAt":[5,2],"name":"사탕 가판대"}],"objectTypes":{"bench":{"occupiable":true,"name":"벤치","icon":"<rect x=\"7\" y=\"8\" width=\"3.2\" height=\"31\" fill=\"#5e4127\"/><rect x=\"35.8\" y=\"8\" width=\"3.2\" height=\"31\" fill=\"#5e4127\"/><rect x=\"4\" y=\"8\" width=\"38\" height=\"6\" rx=\"1.5\" fill=\"#a5733f\" stroke=\"#4e3a1e\" stroke-width=\"1.3\"/><rect x=\"4\" y=\"17.5\" width=\"38\" height=\"6\" rx=\"1.5\" fill=\"#c08a50\" stroke=\"#6b4a26\" stroke-width=\"1.2\"/><rect x=\"4\" y=\"25\" width=\"38\" height=\"6\" rx=\"1.5\" fill=\"#c08a50\" stroke=\"#6b4a26\" stroke-width=\"1.2\"/><rect x=\"4\" y=\"32.5\" width=\"38\" height=\"6\" rx=\"1.5\" fill=\"#c08a50\" stroke=\"#6b4a26\" stroke-width=\"1.2\"/>"},"rockinghorse":{"occupiable":true,"name":"회전목마 말","icon":"<path d=\"M4 37 q19 10 38 0\" fill=\"none\" stroke=\"#8a4a2a\" stroke-width=\"3.2\" stroke-linecap=\"round\"/><path d=\"M14 29 l-2 10 M18 30 v11 M28 30 v11 M32 29 l2 10\" stroke=\"#8a4a2a\" stroke-width=\"2.2\" stroke-linecap=\"round\"/><path d=\"M11 24 q-5 1 -6 9\" fill=\"none\" stroke=\"#6b3a20\" stroke-width=\"2.8\" stroke-linecap=\"round\"/><ellipse cx=\"22\" cy=\"26\" rx=\"12\" ry=\"5.5\" fill=\"#f4efe6\" stroke=\"#5a4a3a\" stroke-width=\"1.4\"/><path d=\"M28 23 L33 10 L38 13 L34 26 Z\" fill=\"#f4efe6\" stroke=\"#5a4a3a\" stroke-width=\"1.3\" stroke-linejoin=\"round\"/><ellipse cx=\"37\" cy=\"12\" rx=\"6.5\" ry=\"3.6\" transform=\"rotate(25 37 12)\" fill=\"#f4efe6\" stroke=\"#5a4a3a\" stroke-width=\"1.3\"/><path d=\"M34 7 l1 -4 l2 4\" fill=\"#f4efe6\" stroke=\"#5a4a3a\" stroke-width=\"1\"/><path d=\"M32 8 q-4 6 -5 15\" fill=\"none\" stroke=\"#6b3a20\" stroke-width=\"3\" stroke-linecap=\"round\"/><rect x=\"17\" y=\"20\" width=\"9\" height=\"4\" rx=\"1.5\" fill=\"#c0392b\"/><circle cx=\"37\" cy=\"10.5\" r=\"1\" fill=\"#2b2b2b\"/><g fill=\"#c9c1b3\"><circle cx=\"15\" cy=\"26\" r=\"1.4\"/><circle cx=\"24\" cy=\"28\" r=\"1.3\"/><circle cx=\"29\" cy=\"26\" r=\"1.1\"/></g>"},"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\"/>"},"flowers":{"occupiable":false,"name":"화단","icon":"<path d=\"M17 28 h12 l-2 12 h-8 z\" fill=\"#c9c3b8\" stroke=\"#6b6660\" stroke-width=\"1.2\"/><circle cx=\"16\" cy=\"19\" r=\"5\" fill=\"#e0526a\"/><circle cx=\"30\" cy=\"19\" r=\"5\" fill=\"#f2a53a\"/><circle cx=\"23\" cy=\"12\" r=\"5\" fill=\"#f2d24a\"/><circle cx=\"23\" cy=\"22\" r=\"4.5\" fill=\"#d94a8a\"/><path d=\"M12 25 q6 -8 11 -6\" fill=\"none\" stroke=\"#3f8a4a\" stroke-width=\"2\"/><path d=\"M34 25 q-6 -8 -11 -6\" fill=\"none\" stroke=\"#3f8a4a\" stroke-width=\"2\"/>"},"pillar":{"occupiable":false,"name":"중앙 기둥","icon":"<circle cx=\"23\" cy=\"23\" r=\"12\" fill=\"#b9b6ae\" stroke=\"#5b5852\" stroke-width=\"2\"/><circle cx=\"23\" cy=\"23\" r=\"6\" fill=\"#9a968d\"/>"},"popcorn":{"occupiable":false,"name":"팝콘 카트","icon":"<path d=\"M7 13 h32 l-3 -7 h-26 z\" fill=\"#d7263d\" stroke=\"#7a1020\" stroke-width=\"1.2\" stroke-linejoin=\"round\"/><path d=\"M14 6.5 l-1 6 M21 6 v7 M28 6 l.5 7 M34 6.5 l1.5 6\" stroke=\"#fff\" stroke-width=\"2\"/><rect x=\"9\" y=\"13\" width=\"28\" height=\"15\" fill=\"#e8f3f8\" stroke=\"#7a1020\" stroke-width=\"1.3\"/><g fill=\"#fff3c4\" stroke=\"#e0b050\" stroke-width=\".8\"><circle cx=\"14\" cy=\"24\" r=\"3\"/><circle cx=\"19\" cy=\"22\" r=\"3\"/><circle cx=\"24\" cy=\"24\" r=\"3\"/><circle cx=\"29\" cy=\"21.5\" r=\"3\"/><circle cx=\"33\" cy=\"24.5\" r=\"2.6\"/><circle cx=\"17\" cy=\"26\" r=\"2.4\"/><circle cx=\"27\" cy=\"26\" r=\"2.4\"/><circle cx=\"22\" cy=\"19\" r=\"2.2\"/></g><rect x=\"9\" y=\"28\" width=\"28\" height=\"8\" fill=\"#d7263d\" stroke=\"#7a1020\" stroke-width=\"1.3\"/><path d=\"M17 32 h12\" stroke=\"#f7d774\" stroke-width=\"1.6\"/><circle cx=\"14\" cy=\"39.5\" r=\"4\" fill=\"#2b2b2b\"/><circle cx=\"32\" cy=\"39.5\" r=\"4\" fill=\"#2b2b2b\"/><circle cx=\"14\" cy=\"39.5\" r=\"1.4\" fill=\"#bbb\"/><circle cx=\"32\" cy=\"39.5\" r=\"1.4\" fill=\"#bbb\"/>"},"tree":{"occupiable":false,"name":"나무","icon":"<rect x=\"20\" y=\"28\" width=\"6\" height=\"14\" rx=\"1\" fill=\"#6e4a2a\"/><circle cx=\"23\" cy=\"19\" r=\"13\" fill=\"#3f8a4a\" stroke=\"#2c5e33\" stroke-width=\"1.5\"/><circle cx=\"16\" cy=\"23\" r=\"7\" fill=\"#57a35e\"/><circle cx=\"30\" cy=\"14\" r=\"7\" fill=\"#57a35e\"/>"}},"wallTypes":{},"objects":[{"cell":[1,1],"type":"counter"},{"cell":[1,5],"type":"tree"},{"cell":[2,2],"type":"rockinghorse"},{"cell":[2,4],"type":"rockinghorse"},{"cell":[3,3],"type":"pillar"},{"cell":[3,5],"type":"bench"},{"cell":[4,2],"type":"rockinghorse"},{"cell":[5,1],"type":"popcorn"},{"cell":[5,5],"type":"flowers"}],"wallFeatures":[],"extras":[],"cellSize":46},"persons":[{"id":"A","name":"Alaric","gender":"M","role":"visitor","color":"#c62828","avatar":{"bg":"#35607a","skin":"#f6d8c0","hair":"#5a3a22","style":"short","shirt":"#1b1b1b","glasses":true},"clue":"그는 <b>회전목마 말</b>에 앉아 있었다.","job":"교구의 새 부목사","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Alaric\"><rect width=\"80\" height=\"80\" fill=\"#35607a\"/><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=\"#f6d8c0\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f6d8c0\"/><path d=\"M26 32 Q26 15 40 15 Q54 15 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#5a3a22\"/><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\"/></svg>","solverRole":"visitor","constraints":[{"type":"on","obj":"rockinghorse"}]},{"id":"B","name":"Bettany","gender":"F","role":"visitor","color":"#2e7d32","avatar":{"bg":"#6a1b9a","skin":"#f3d3b5","hair":"#3a2a1c","style":"bun","shirt":"#2f3b4c","apron":true},"clue":"그녀는 <b>벤치</b>에 앉아 있었다.","job":"쉬는 날의 몸종","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Bettany\"><rect width=\"80\" height=\"80\" fill=\"#6a1b9a\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#2f3b4c\"/><path d=\"M28 80 L30 62 Q40 58 50 62 L52 80 Z\" fill=\"#f4efe6\"/><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=\"#3a2a1c\"/><path d=\"M26 32 Q26 16 40 16 Q54 16 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\"/></svg>","solverRole":"visitor","constraints":[{"type":"on","obj":"bench"}]},{"id":"C","name":"Caradoc","gender":"M","role":"staff","color":"#1565c0","avatar":{"bg":"#3f6a3a","skin":"#e4b998","hair":"#b7482c","style":"short","shirt":"#c62828","beard":true,"cap":true},"clue":"그는 <b>매표 부스</b>에 있었다. 그는 <b>첫 번째 행</b>에 있었다.","job":"회전목마의 매표원","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Caradoc\"><rect width=\"80\" height=\"80\" fill=\"#3f6a3a\"/><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=\"#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=\"#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\"/><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":"staff","constraints":[{"type":"area","areas":["Ticket Booth"]},{"type":"row","rows":[1]}]},{"id":"D","name":"Drusilla","gender":"F","role":"staff","color":"#6a1b9a","avatar":{"bg":"#e65100","skin":"#f0cdb0","hair":"#1c1a1a","style":"curly","shirt":"#e26d8a","headband":"#f2a53a","earrings":true},"clue":"그녀는 <b>마지막 행</b>에 있었다.","job":"축제의 사탕 판매원","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Drusilla\"><rect width=\"80\" height=\"80\" fill=\"#e65100\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#e26d8a\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f0cdb0\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f0cdb0\"/><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=\"#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=\"#f2a53a\"/><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":"row","rows":[5]}]},{"id":"V","name":"Vesta","gender":"F","role":"victim","color":"#1b1b1b","avatar":{"bg":"#5a2a2a","skin":"#f6d8c0","hair":"#d9d4cc","style":"bun","shirt":"#5b2c6f","necklace":true},"clue":"<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=\"Vesta\"><rect width=\"80\" height=\"80\" fill=\"#5a2a2a\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#5b2c6f\"/><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=\"#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\"/><path d=\"M12 12 L68 68 M68 12 L12 68\" stroke=\"#e0362e\" stroke-width=\"5\" stroke-linecap=\"round\" opacity=\".9\"/></svg>","solverRole":"visitor","constraints":[{"type":"area","areas":["Sweet Stall"]},{"type":"beside","obj":"popcorn"}]}],"victim":"V","murderer":"D","solution":{"C":[1,2],"A":[2,4],"B":[3,5],"V":[4,1],"D":[5,3]},"walkthrough":[{"place":["B"],"cand":{"A":[[2,2],[2,4],[4,2]],"C":[[1,2]],"D":[[5,2],[5,3],[5,4]]},"text":"Bettany는 벤치에 앉아 있었다 – 그리고 벤치는 하나뿐이며, R3C5에 있다. <b>Bettany는 R3C5에 있다</b>: 3행과 5열을 지운다."},{"place":["C","A"],"cand":{"D":[[5,3]]},"text":"Caradoc은 매표 부스에 있었고, 첫 번째 행에 있었다. 매표 부스에는 1행에 칸이 두 개뿐이고 R1C1은 매표 창구다: <b>Caradoc은 R1C2에 있다</b>. Alaric은 회전목마 말에 앉아 있었다. 말은 R2C2, R2C4, R4C2에 있고 2열은 Caradoc의 것이다: <b>Alaric은 R2C4에 있다</b>."},{"place":["D"],"cand":{},"text":"Drusilla는 마지막 행에 있었다. R5C1은 팝콘 카트, R5C5는 화단이고, 2열과 4열은 이미 찼다: <b>Drusilla는 R5C3에 있다</b>."},{"final":true,"text":"사건 종결: 마지막 남은 칸 R4C1은 피해자의 것이다 – 사탕 가판대에서, 팝콘 카트 옆, 카드에 적힌 그대로다. 하지만 우리에게는 그 카드가 필요하지 않았다. Vesta는 그곳에서 축제의 사탕 판매원과 단둘이 있었다. <b>Drusilla가 범인이다!</b>"}],"solver":{"rules":[],"occupiable":["bench","rockinghorse"]},"verification":{"tool":"tools/murdoku_solver.py","unique":true,"guessFree":true,"checked":"2026-09-29"}}