やり方
コンピューターの手を進める
コンピューターの席を決め、ゲームを進め、その手を順に表示します。
席ごとに操作する人を決める
computersは席ごとの真偽値です。指定しない席は人になります。playComputersは人の操作が必要になるか、ゲームが終わるまで、必要なコンピューターの手を進めます。新しいゲームと各手が返るので、表示側で順に見せられます。
import { moveText, newGame, playComputers, rulesFor } from "@johnmorrisdotca/toranpu";
const game = newGame("hearts", { players: ["You", "Aki", "Ben", "Cy"], computers: [false, true, true, true], seed: 42 })!;
const rules = rulesFor("hearts");
const afterYou = rules.play(game, rules.moves(game)[0]!)!;
const result = playComputers("hearts", afterYou);
console.log(result.moves.map((move) => moveText("hearts", move)));
console.log(rules.toPlay(result.game));[
'Pass K♦ A♦ J♥',
'Pass 4♣ K♠ Q♥',
'Pass 9♣ 10♣ A♥',
'Play 2♣',
'Play A♦',
'Play 5♣'
]
0自分で進行を管理する
ルールにはtoPlay、moves、computer、play、over、winnersがあります。次の手を選ぶ前にoverを確認します。シミュレーションのループには上限を設け、可能な手と得点はルールに任せます。各コンピューターは自分の手札と公開情報を使います。
順に表示する
表示側で返った手をアニメーションにしたり、Reactフックの待ち時間を使ったりできます。基本エンジンはタイマーも通信も始めません。ゲームのルールに各ゲームの段階と目標があります。
この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。