Open stepney141 opened 2 years ago
(局面, プレイヤーの選択) => 局面
ボードゲームフレームワークは、以上のように表現される各要素を再現・実装できなくてはならない
move: G => G
return G
setup: (ctx, setupData) => G
move: (G, ctx, ...args) => G
playerView: (G, ctx, playerID) => G
onBegin: (G, ctx) => G
onEnd: (G, ctx) => G
endIf: (G, ctx) => true
onMove: (G, ctx) => G
minMoves: number
maxMoves: number
next: 'nextStageName'
next: 'nextPhaseName' | (G, ctx) => 'nextPhaseName'
endIf: (G, ctx) => obj
ctx.gameover
ゲームの分類
(局面, プレイヤーの選択) => 局面
という純粋関数ではないものとも解釈できる?ボードゲームフレームワークは、以上のように表現される各要素を再現・実装できなくてはならない
ゲームの定式化
ゲーム木としての解釈
ゲーム情報学的な解釈
Dagaz v1における解釈
boardgame.ioにおける解釈
move: G => G
:現在局面から次局面への写像(純粋関数)return G
をせずGを直接書き換える形でmoveを記述することも可能(内部でよしなに変換してくれる)return G
とGの変更とを同時に行うことはできないsetup: (ctx, setupData) => G
move: (G, ctx, ...args) => G
:現在局面から次局面への写像(純粋関数)playerView: (G, ctx, playerID) => G
onBegin: (G, ctx) => G
onEnd: (G, ctx) => G
endIf: (G, ctx) => true
onMove: (G, ctx) => G
minMoves: number
maxMoves: number
next: 'nextStageName'
onBegin: (G, ctx) => G
onEnd: (G, ctx) => G
endIf: (G, ctx) => true
next: 'nextPhaseName' | (G, ctx) => 'nextPhaseName'
endIf: (G, ctx) => obj
ctx.gameover
から参照可能onEnd: (G, ctx) => G
Stockfish系の将棋ソフト類における解釈
Ludiiにおける解釈
所見
参考文献