Chapter 4 解謎

4.2 說明

建立新的謎題:

#> [[1]]
#> [[1]][[1]]
#> # A tibble: 1 x 3
#>   name      x     y
#>   <chr> <dbl> <dbl>
#> 1 name      1     1
#> 
#> [[1]][[2]]

棋盤上有座標提示,讓布局更容易。

透過 add_one() 擺放棋子,可以逐個擺放,或是一次放置多個:

#> # A tibble: 7 x 3
#>   name      x     y
#>   <chr> <dbl> <dbl>
#> 1 馬        1     1
#> 2 兵        3     6
#> 3 卒        4     3
#> 4 士        5     2
#> 5 仕        6     8
#> 6 相        2     9
#> 7 炮        6     6

add_one() 只會告知布局的紀錄,如果對於座標不熟悉,或是想立刻查看布局的話,可以使用 add_one_pro():

#> Joining, by = c("x", "y")
#> [[1]]
#> [[1]][[1]]
#> # A tibble: 1 x 3
#>   name      x     y
#>   <chr> <dbl> <dbl>
#> 1 馬        1     1
#> 
#> [[1]][[2]]

add_one_pro() 可幫助逐步檢查,檢查完可再換回 add_one(),兩個函式交互使用是沒問題的。

使用 solve() 做最後檢查,並進入解謎的階段:

#> [[1]]
#> # A tibble: 0 x 3
#> # ... with 3 variables:
#> #   name <chr>, before <chr>,
#> #   after <chr>
#> 
#> [[2]]
#> # A tibble: 7 x 3
#>   name  at    state
#>   <chr> <chr> <lgl>
#> 1 馬    1,1   TRUE 
#> 2 兵    3,6   TRUE 
#> 3 卒    4,3   TRUE 
#> 4 士    5,2   TRUE 
#> 5 仕    6,8   TRUE 
#> 6 相    2,9   TRUE 
#> 7 炮    6,6   TRUE 
#> 
#> [[3]]

使用 player() 移動棋子,以及replay() 播放對戰的棋局,與對戰3相同。