协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
validate-piles-notation【开发与工程】Parse and validate PILES (Puzzle Input Line Entry System) notation for specifying piece fusion groups in jigsawR. Covers syntax validation, parsing into group lists, plain-language explanation, adjacency verification against puzzle results, and round-trip serialization. Use when validating user-supplied PILES strings before passing to generate_puzzle…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
析驗 PILES 串以指拼塊融合組。
generate_puzzle() 前驗→用"1-2-3,4-5")"center"、"ring1"、"R1")library(jigsawR)
result <- validate_piles_syntax("1-2-3,4-5")
# Returns TRUE if valid, error message if invalid
察常法誤:
"1-2(-3)-4" 含不配 ()-、,、:、(、) 與關鍵字許"1-2,,3-4"(雙逗)得:合法返 TRUE、違法返述誤。
敗:印確 PILES 串與驗誤訊。
groups <- parse_piles("1-2-3,4-5")
# Returns: list(c(1, 2, 3), c(4, 5))
含範串:
groups <- parse_piles("1:6,7-8")
# Returns: list(c(1, 2, 3, 4, 5, 6), c(7, 8))
得:整數向量列、每融組一、塊 ID 與組界正。
敗:先確 PILES 串過步一法驗。析返異組→驗 - 分組內塊、, 分組、範記(:)展為含端。
為用述各組:
"1-2-3,4-5" → 「組 1:融塊 1、2、3。組 2:融塊 4、5。」"1:6" → 「組 1:融塊 1 至 6(6 塊)。」"center,ring1" → 「組 1:中塊。組 2:環一諸塊。」得:每融組以白話述附塊計與識,使非技用易解。
敗:關鍵字不能釋(如 "ring1" 無清意)→記或須拼結果物為境。勸用予拼型或用數塊 ID。
若有拼結果物,驗:
# Generate the puzzle first
puzzle <- generate_puzzle(type = "hexagonal", grid = c(3), size = c(200))
# Parse with puzzle context (resolves keywords)
groups <- parse_fusion("center,ring1", puzzle)
察:
得:諸塊 ID 效。鄰塊融淨。
敗:列違塊 ID 或非鄰對。
驗析/序忠:
original <- "1-2-3,4-5"
groups <- parse_piles(original)
roundtrip <- to_piles(groups)
# roundtrip should equal original (or canonical equivalent)
groups2 <- parse_piles(roundtrip)
identical(groups, groups2) # Must be TRUE
得:環迴生同組列,確 parse_piles() 與 to_piles() 互逆。
敗:環迴異→察序化是否規範記(如塊 ID 排序或範轉顯列)。規範差可受惟須 identical(groups, groups2) 返 TRUE。
# Basic syntax
"1-2" # Fuse pieces 1 and 2
"1-2-3,4-5" # Two groups: (1,2,3) and (4,5)
"1:6" # Range: pieces 1 through 6
# Keywords (require puzzle_result)
"center" # Center piece (hex/concentric)
"ring1" # All pieces in ring 1
"R1" # Row 1 (rectangular)
"boundary" # All boundary pieces
# Functions
parse_piles("1-2-3,4-5") # Parse PILES string
parse_fusion("1-2-3", puzzle) # Auto-detect format
to_piles(list(c(1,2), c(3,4))) # Convert to PILES
validate_piles_syntax("1-2(-3)-4") # Validate syntax
validate_piles_syntax() 對效串返 TRUEparse_piles() 返正組列"center" 須拼結果物。傳予 parse_fusion()、非 parse_piles()"1:6" 含二端(1、2、3、4、5、6)generate-puzzle — 生附融組之拼add-puzzle-type — 新型須 PILES/融支run-puzzle-tests — 以全套試 PILES 析