*

\ 圍棋
1 19 / 0 ! \ delta
0 @ 2 / 1 ! \ half delta
0 2 ! \ start
t 3 @ not * 3 @ + 3 !
: 格線 2 @ - 0 @ mod 1 @ - abs .004 < ;
: 格盤 ( 亮度 -- 盤 ) x 格線 y 格線 + * ;
: 棋盤 0 @ 1 @
.2 格盤 1 @ 2 ! 0 @ 6 * 0 ! 0 @ 2 / 1 !
.1 格盤 + 2 @ -5 * 2 ! 0 @ 3 * 0 !
.3 格盤 + -rot 1 ! 0 !
; 棋盤
: steps ( ns -- ) 2 + 6 ! t 3 @ - floor 4 ! 0 5 ! 0 ;
: , ( p ix iy -- p' )
0 @ * 1 @ - negate y + \ 任意點到落子位置的縱向距離
dup * swap
0 @ * 1 @ - negate x + \ 任意點到落子位置的橫向距離
dup * + sqrt \ 任意點到落子位置的距離
5 @ 2 mod \ 檢視 步數 是否 奇數
if .022 < \ 奇數步 取 白子 距離小於 .022 的圓
else dup .018 > swap .024 < * \ 偶數步 取 黑子 距離等於 .021 的圈 .006 線徑
then
4 @ 5 @ > * + \ 棋子下到棋盤
5 @ 1 + 5 ! \ 步數遞增
;
: 星位小飛
6 steps
16 16 , 17 14 , 14 16 , 18 16 , 17 17 , 17 11 ,
; \ 星位小飛 ( 和平互圍 )
: 星位二間高夾
8 steps
16 04 , 14 03 , 11 04 , 14 05 , 17 06 , 16 02 , 17 03 , 11 02 ,
; \ 星位二間高夾 ( 戰鬥夾攻 )
: 星位三三
13 steps
04 04 , 03 03 , 04 03 , 03 04 , 03 05 , 02 05 , 03 06 , 02 06 ,
03 07 , 04 02 , 05 02 , 03 02 , 06 03 ,
; \ 星位三三 ( 地勢兩分 )
: 星位混合互用
12 steps
04 16 , 06 17 , 08 17 , 03 17 , 04 17 , 03 16 , 04 15 , 04 18 ,
05 18 , 03 18 , 05 17 , 03 14 ,
; \ 星位混合互用
: cases_begin 9 ! 0 7 ! ;
: case 8 @ 7 @ = * + 7 @ 1 + 7 ! ;
: cases_end 4 @ 6 @ >=
if 8 @ 1 + 9 @ mod 8 ! t 3 !
then ;

2 cases_begin
星位二間高夾 case
星位小飛 case
cases_end

Based on: 圍棋 - 陳爽


comments powered by Disqus