{"format":"murdoku-puzzle/1","id":"icecream","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":"Tiệm Kem","tagline":"Một tiệm gelateria bên bờ biển Rimini · một buổi tối tháng Tám năm 1962 · kem hạt dẻ cười đã hết sạch","author":"mathace","concept":"Murdoku – Manuel Garand (murdoku.com); unofficial fan-made case","created":"2026-09-29","story":"Rimini, một buổi tối tháng Tám năm 1962 nóng như thiêu. Tiệm gelateria nhỏ bên bờ biển đã bán hết kem hạt dẻ cười từ sáu giờ, những du khách cuối cùng cháy nắng đang rời khỏi hiên, còn người làm kem thì đếm doanh thu trong ngày. Vitale, một nhà phát triển bất động sản đã cả mùa hè tìm cách mua tiệm kem để phá đi xây khách sạn, ngồi xuống hiên cạnh chiếc dù che nắng kẻ sọc và gọi một ly espresso mà ông chẳng bao giờ uống. Lúc hoàng hôn, người ta thấy ông đã chết ở đó. Chỉ có bốn người ở gần ông, và mỗi người đưa ra một lời khai dài đúng một câu – hãy tìm ra ai đã ở một mình với ông.","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>“Cạnh”</b> = ngay bên trái, bên phải, bên trên hoặc bên dưới, và <b>trong cùng một khu vực</b>. Không thể ở trên ô có đồ vật (bồn rửa, quầy kem, bàn, dù che nắng, xe đạp và luống hoa), trừ ghế tựa và băng ghế.","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":{"guest":"khách","staff":"nhân viên","victim":"nạn nhân"},"personGroups":[{"id":"guests","name":"Khách","persons":["A","B","V"]},{"id":"staff","name":"Nhân viên","persons":["C","D"]}],"map":{"groups":[],"gaps":[],"areas":[{"id":"Kitchen","cells":[[1,1],[1,2],[2,1]],"fill":"#e3e9ec","pattern":"tiles","labelAt":[1,2],"name":"Nhà Bếp"},{"id":"Parlour","cells":[[1,3],[1,4],[2,2],[2,3],[3,1],[3,2],[4,1]],"fill":"#f6dde6","pattern":"marble","labelAt":[3,2],"name":"Phòng Khách"},{"id":"Terrace","cells":[[1,5],[2,4],[2,5],[3,3],[3,4],[3,5],[4,2],[4,3],[5,1],[5,2]],"fill":"#f0e4cc","pattern":"tiles","labelAt":[4,3],"name":"Sân Hiên"},{"id":"Garden","cells":[[4,4],[4,5],[5,3],[5,4],[5,5]],"fill":"#dcebcd","pattern":"marble","labelAt":[5,4],"name":"Vườn"}],"objectTypes":{"bench":{"occupiable":true,"name":"băng ghế","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\"/>"},"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\"/>"},"bicycle":{"occupiable":false,"name":"xe đạp","icon":"<circle cx=\"13\" cy=\"30\" r=\"8\" fill=\"none\" stroke=\"#2b2b2b\" stroke-width=\"2\"/><circle cx=\"33\" cy=\"30\" r=\"8\" fill=\"none\" stroke=\"#2b2b2b\" stroke-width=\"2\"/><path d=\"M13 30 L20 16 h10 l3 14 M20 16 l6 14 h-13 M30 16 l-4 -4\" fill=\"none\" stroke=\"#c0392b\" stroke-width=\"2.2\" stroke-linejoin=\"round\"/>"},"counter":{"occupiable":false,"name":"quầy kem","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":"luống hoa","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\"/>"},"sink":{"occupiable":false,"name":"bồn rửa","icon":"<rect x=\"7\" y=\"9\" width=\"32\" height=\"28\" rx=\"4\" fill=\"#dfe6ea\" stroke=\"#6b7680\" stroke-width=\"1.5\"/><ellipse cx=\"23\" cy=\"24\" rx=\"11\" ry=\"7\" fill=\"#ffffff\" stroke=\"#8a949c\"/><circle cx=\"23\" cy=\"24\" r=\"2\" fill=\"#8a949c\"/><rect x=\"21\" y=\"10\" width=\"4\" height=\"6\" fill=\"#8a949c\"/>"},"table":{"occupiable":false,"name":"bàn","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\"/>"},"umbrella":{"occupiable":false,"name":"dù che nắng","icon":"<path d=\"M5 24 q18 -22 36 0 z\" fill=\"#e26d5a\" stroke=\"#8a3a2a\" stroke-width=\"1.2\"/><path d=\"M5 24 q4 -6 9 0 q4 -6 9 0 q4 -6 9 0 q4 -6 9 0\" fill=\"none\" stroke=\"#f9d7cf\" stroke-width=\"1.5\"/><line x1=\"23\" y1=\"24\" x2=\"23\" y2=\"42\" stroke=\"#5a4a3a\" stroke-width=\"2\"/>"}},"wallTypes":{},"objects":[{"cell":[1,1],"type":"sink"},{"cell":[1,4],"type":"counter"},{"cell":[2,2],"type":"chair"},{"cell":[2,3],"type":"table"},{"cell":[2,4],"type":"chair"},{"cell":[3,3],"type":"chair"},{"cell":[3,4],"type":"umbrella"},{"cell":[3,5],"type":"chair"},{"cell":[4,1],"type":"chair"},{"cell":[4,5],"type":"bicycle"},{"cell":[5,2],"type":"chair"},{"cell":[5,3],"type":"bench"},{"cell":[5,5],"type":"flowers"}],"wallFeatures":[],"extras":[],"cellSize":46},"persons":[{"id":"A","name":"Arturo","gender":"M","role":"guest","color":"#c62828","avatar":{"bg":"#1565c0","skin":"#e4b998","hair":"#1c1a1a","style":"slick","shirt":"#f4efe6","mustache":true,"mustacheColor":"#1c1a1a"},"clue":"Anh ấy ở <b>hàng cuối cùng</b>.","job":"chủ khách sạn bên cạnh","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Arturo\"><rect width=\"80\" height=\"80\" fill=\"#1565c0\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#f4efe6\"/><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 30 Q27 16 44 15 Q56 15 55 26 Q48 22 40 23 Q30 24 26 30 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=\"M33 41 Q40 37 47 41 Q40 43 33 41 Z\" fill=\"#1c1a1a\"/></svg>","solverRole":"guest","constraints":[{"type":"row","rows":[5]}]},{"id":"B","name":"Brigida","gender":"F","role":"guest","color":"#2e7d32","avatar":{"bg":"#e65100","skin":"#f6d8c0","hair":"#7a4a2a","style":"bob","shirt":"#7fc4d8","glasses":true},"clue":"Cô ấy ở cạnh <b>bàn</b>.","job":"cô giáo đến từ Bologna đang đi nghỉ","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Brigida\"><rect width=\"80\" height=\"80\" fill=\"#e65100\"/><path d=\"M22 40 Q22 14 40 14 Q58 14 58 40 L58 58 L22 58 Z\" fill=\"#7a4a2a\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#7fc4d8\"/><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=\"#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\"/></svg>","solverRole":"guest","constraints":[{"type":"beside","obj":"table"}]},{"id":"C","name":"Corrado","gender":"M","role":"staff","color":"#1565c0","avatar":{"bg":"#2e7d32","skin":"#e7b98f","hair":"#3a2a1c","style":"short","shirt":"#f4efe6","apron":true,"beard":true},"clue":"Anh ấy ở trong <b>Phòng Khách</b>. Anh ấy ngồi trên một <b>ghế tựa</b>.","job":"thợ làm kem","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Corrado\"><rect width=\"80\" height=\"80\" fill=\"#2e7d32\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#f4efe6\"/><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=\"#e7b98f\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#e7b98f\"/><path d=\"M26 32 Q26 15 40 15 Q54 15 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\"/><path d=\"M27 38 Q30 52 40 53 Q50 52 53 38 Q50 47 40 48 Q30 47 27 38 Z\" fill=\"#3a2a1c\"/></svg>","solverRole":"staff","constraints":[{"type":"area","areas":["Parlour"]},{"type":"on","obj":"chair"}]},{"id":"D","name":"Dafne","gender":"F","role":"staff","color":"#6a1b9a","avatar":{"bg":"#ad1457","skin":"#f3d3b5","hair":"#b7482c","style":"ponytail","shirt":"#1b1b1b","apron":true},"clue":"Cô ấy ở cạnh <b>xe đạp</b>.","job":"cô phục vụ bàn","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Dafne\"><rect width=\"80\" height=\"80\" fill=\"#ad1457\"/><path d=\"M50 30 Q64 34 60 62 L54 62 Q56 40 48 36 Z\" fill=\"#b7482c\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#1b1b1b\"/><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\"/><path d=\"M26 33 Q26 16 40 16 Q54 16 54 33 Q50 24 40 24 Q30 24 26 33 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\"/></svg>","solverRole":"staff","constraints":[{"type":"beside","obj":"bicycle"}]},{"id":"V","name":"Vitale","gender":"M","role":"victim","color":"#1b1b1b","avatar":{"bg":"#5a2a2a","skin":"#f1c8a5","hair":"#8a8278","style":"bald","shirt":"#2f3b4c","mustache":true,"mustacheColor":"#8a8278","glasses":true},"clue":"<b>Nạn nhân.</b> Anh ấy được tìm thấy trên <b>Sân Hiên</b>, cạnh <b>dù che nắng</b> – một mình với hung thủ.","job":"một nhà phát triển bất động sản muốn có tiệm kem","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Vitale\"><rect width=\"80\" height=\"80\" fill=\"#5a2a2a\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#2f3b4c\"/><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 Q26 22 30 20 L30 34 Q26 34 26 30 Z\" fill=\"#8a8278\"/><path d=\"M54 30 Q54 22 50 20 L50 34 Q54 34 54 30 Z\" fill=\"#8a8278\"/><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=\"M33 41 Q40 37 47 41 Q40 43 33 41 Z\" fill=\"#8a8278\"/><path d=\"M12 12 L68 68 M68 12 L12 68\" stroke=\"#e0362e\" stroke-width=\"5\" stroke-linecap=\"round\" opacity=\".9\"/></svg>","solverRole":"guest","constraints":[{"type":"area","areas":["Terrace"]},{"type":"beside","obj":"umbrella"}]}],"victim":"V","murderer":"A","solution":{"B":[1,3],"C":[2,2],"V":[3,5],"D":[4,4],"A":[5,1]},"walkthrough":[{"place":["D"],"cand":{"A":[[5,1],[5,2],[5,3]],"B":[[1,3],[2,2]],"C":[[2,2]]},"text":"Hãy bắt đầu từ lời khai để lại ít ô nhất. Dafne ở cạnh xe đạp (R4C5, trong Vườn). “Cạnh” nghĩa là một ô liền kề trong cùng một khu vực: R3C5 phía trên thuộc Sân Hiên và R5C5 phía dưới là luống hoa, nên chỉ còn lại R4C4. <b>Dafne ở R4C4</b> – gạch bỏ hàng 4 và cột 4."},{"place":["C","B"],"cand":{"A":[[5,1]]},"text":"Corrado ở trong Phòng Khách, ngồi trên một ghế tựa. Phòng Khách có hai ghế tựa, R2C2 và R4C1, và hàng 4 là của Dafne: <b>Corrado ở R2C2</b>. Brigida ở cạnh bàn (R2C3). Các ô liền kề của chiếc bàn trong Phòng Khách là R1C3 và R2C2 (R2C4 và R3C3 thuộc Sân Hiên), và R2C2 là của Corrado: <b>Brigida ở R1C3</b>."},{"place":["A"],"cand":{},"text":"Arturo ở hàng cuối cùng. R5C5 là luống hoa, còn các cột 2, 3 và 4 đã có người: <b>Arturo ở R5C1</b>."},{"final":true,"text":"Vụ án khép lại: ô trống cuối cùng, R3C5, là của nạn nhân – trên Sân Hiên, cạnh dù che nắng, đúng như thẻ của ông ấy nói, dù chúng ta chưa từng cần đến nó. Vitale đã ở đó một mình với chủ khách sạn bên cạnh. <b>Arturo là hung thủ!</b>"}],"solver":{"rules":[],"occupiable":["bench","chair"]},"verification":{"tool":"tools/murdoku_solver.py","unique":true,"guessFree":true,"checked":"2026-09-29"}}