library(DiagrammeR)
mermaid("
sequenceDiagram
エンジン->>GUI: (1) bestmove a ponder b
GUI->>CSAサーバ: 前回の自分の指し手
GUI->>エンジン: (2) position
GUI->>エンジン: (3) go ponder
Note left of エンジン: ponderの探索開始
CSAサーバ->>GUI: 相手の指し手
GUI->>エンジン: (4) stop
Note left of エンジン: ponderの探索を<br/>止める
Note left of GUI: bestmoveが来るまで<br/>待機
エンジン->>GUI: (5) bestmove c
GUI->>エンジン: (6) position
GUI->>エンジン: (7) go
Note left of エンジン: 通常の探索
エンジン->>GUI: (8) bestmove d ponder e
GUI->>CSAサーバ: 自分の指し手
")