generate-puzzle
关于
This skill generates jigsaw puzzles in R via `generate_puzzle()` or `geom_puzzle_*()` functions, supporting multiple puzzle types like rectangular, hexagonal, and voronoi with configurable parameters. It validates inputs against a config file and creates SVG files or ggplot2 visualizations. Use it for generating puzzle assets, testing configurations, or creating documentation samples.
快速安装
Claude Code
推荐npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/generate-puzzle在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
生拼圖
以 jigsawR 套件統一之 API 生拼圖。
適用時機
- 為特定類型與配置建拼圖 SVG 檔
- 以不同參數試拼圖生成
- 為文件或示範生樣本輸出
- 以 geom_puzzle_*() 建 ggplot2 拼圖視覺化
輸入
- 必要:拼圖類型(
"rectangular"、"hexagonal"、"concentric"、"voronoi"、"random"、"snic") - 必要:格尺寸(依類型:
c(cols, rows)或c(rings)) - 選擇性:大小(毫米,依類型之預設)
- 選擇性:種子以利重現(預設:42)
- 選擇性:偏移(0 = 互鎖、>0 = 塊分離)
- 選擇性:佈局(
"grid"或"repel",限矩形) - 選擇性:融合群(PILES 表示字串)
步驟
步驟一:讀配置約束
R_EXE="/mnt/c/Program Files/R/R-4.5.0/bin/Rscript.exe"
"$R_EXE" -e "cat(yaml::yaml.load_file('inst/config.yml')[['{TYPE}']]$grid$max)"
或直讀 inst/config.yml 以核所擇類型之有效範圍。
預期: 所擇拼圖類型之 grid、size、tabsize 等參數之最小/最大值已知。
失敗時: 若 config.yml 缺或類型鍵不存,核是否於 jigsawR 專案根目錄且套件至少已建一次。
步驟二:定類型與參數
將用戶請求映射至 generate_puzzle() 之有效參數:
| 類型 | grid | size | 附加參數 |
|---|---|---|---|
| rectangular | c(cols, rows) | c(width, height) mm | offset、layout、tabsize |
| hexagonal | c(rings) | c(diameter) mm | do_warp、do_trunc、tabsize |
| concentric | c(rings) | c(diameter) mm | center_shape、tabsize |
| voronoi | c(cols, rows) | c(width, height) mm | n_interior、tabsize |
| random | c(cols, rows) | c(width, height) mm | n_interior、tabsize |
| snic | c(cols, rows) | c(width, height) mm | n_interior、compactness、tabsize |
預期: 用戶請求映射至有效之 generate_puzzle() 參數,type 正確、grid 尺寸與 size 值於 config.yml 範圍內。
失敗時: 若不確用何參數格式,參上表。Rectangular 與 voronoi 類型之 grid 用 c(cols, rows);hexagonal 與 concentric 用 c(rings)。
步驟三:建 R 腳本
書腳本檔(較複雜指令優於 -e):
library(jigsawR)
result <- generate_puzzle(
type = "rectangular",
seed = 42,
grid = c(3, 4),
size = c(400, 300),
offset = 0,
layout = "grid"
)
cat("Pieces:", length(result$pieces), "\n")
cat("SVG length:", nchar(result$svg_content), "\n")
cat("Files:", paste(result$files, collapse = ", "), "\n")
存於暫存腳本檔。
預期: R 腳本檔存於暫存位置,含 library(jigsawR)、帶完整參數之 generate_puzzle() 呼叫與診斷輸出行。
失敗時: 若腳本有語法錯,驗所有字串參數加引號,數值向量用 c()。永以腳本檔避複雜 shell 轉義。
步驟四:以 WSL R 執行
R_EXE="/mnt/c/Program Files/R/R-4.5.0/bin/Rscript.exe"
"$R_EXE" /path/to/script.R
預期: 腳本無錯完成。SVG 檔寫至 output/。
失敗時: 核 renv 已恢復(renv::restore())。驗套件已載(devtools::load_all())。勿用 --vanilla 旗標(renv 需 .Rprofile)。
步驟五:驗輸出
- SVG 檔存於
output/目錄 - SVG 內容以
<?xml或<svg始 - 塊數配預期:cols * rows(矩形)、環公式(六角/同心)
- ggplot2 路徑則驗繪圖物件無錯渲染
預期: SVG 檔存於 output/,內容以 <?xml 或 <svg 始,塊數配格規範(矩形為 cols * rows,六角/同心為環公式)。
失敗時: 若 SVG 檔缺,核 output/ 目錄存。若塊數錯,驗 grid 尺寸配拼圖類型之預期公式。ggplot2 輸出,以 tryCatch() 包核繪圖無錯渲染。
步驟六:存輸出
生成檔預設存於 output/。result 物件含:
$svg_content— 原始 SVG 字串$pieces— 塊資料之列表$canvas_size— 尺寸$files— 所寫檔之路徑
預期: result 物件含 $svg_content、$pieces、$canvas_size、$files 欄位。$files 所列檔存於磁碟。
失敗時: 若 $files 空,拼圖或僅於記憶體中生。明以 writeLines(result$svg_content, "output/puzzle.svg") 存之。
驗證
- 腳本無錯執行
- SVG 檔為良構 XML
- 塊數配格規範
- 同種子產相同輸出(可重現)
- 參數於 config.yml 約束之內
常見陷阱
- 用
--vanilla旗標:破 renv 啟動。永勿用之。 - 複雜
-e指令:改用腳本檔;shell 轉義致 Exit code 5。 - Grid 與 size 混淆:Grid 為塊數,size 為毫米之實體尺寸。
- 偏移之義:0 = 組裝拼圖、正值 = 爆開/分離塊。
- 無套件之 SNIC:snic 類型需
snic套件已裝。
相關技能
add-puzzle-type— 端到端建新拼圖類型之骨架validate-piles-notation— 傳入 generate_puzzle() 前驗融合群字串run-puzzle-tests— 生成變更後執行測試套件write-testthat-tests— 為新生成情境增測試
GitHub 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
polymarket
元这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。
creating-opencode-plugins
元该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
