本文へ移動

Toranpuトランプ

デッキを使い、11種類のゲームでコンピューターと対戦し、ソリティアを解いたり、独自の絵柄でカードを表示したりできます。

「トランプ」は、日本語で playing cards を指す言葉です。 名前について(英語)

目次

やり方

コンピューターの手を進める

コンピューターの席を決め、ゲームを進め、その手を順に表示します。

席ごとに操作する人を決める

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フックの待ち時間を使ったりできます。基本エンジンはタイマーも通信も始めません。ゲームのルールに各ゲームの段階と目標があります。

ソースを見るGitHub で編集@johnmorrisdotca/toranpu 2.15.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。