@journey-to-code/games 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/backgammon.d.ts +146 -0
- package/dist/backgammon.js +1221 -0
- package/dist/backgammon.js.map +1 -0
- package/dist/blackjack.d.ts +66 -0
- package/dist/blackjack.js +452 -0
- package/dist/blackjack.js.map +1 -0
- package/dist/bluff.d.ts +60 -0
- package/dist/bluff.js +239 -0
- package/dist/bluff.js.map +1 -0
- package/dist/board.d.ts +387 -0
- package/dist/board.js +105 -0
- package/dist/board.js.map +1 -0
- package/dist/bridge.d.ts +86 -0
- package/dist/bridge.js +494 -0
- package/dist/bridge.js.map +1 -0
- package/dist/canasta.d.ts +88 -0
- package/dist/canasta.js +646 -0
- package/dist/canasta.js.map +1 -0
- package/dist/checkers.d.ts +108 -0
- package/dist/checkers.js +756 -0
- package/dist/checkers.js.map +1 -0
- package/dist/chess.d.ts +162 -0
- package/dist/chess.js +904 -0
- package/dist/chess.js.map +1 -0
- package/dist/chesscore.d.ts +136 -0
- package/dist/chesscore.js +1121 -0
- package/dist/chesscore.js.map +1 -0
- package/dist/combat.d.ts +102 -0
- package/dist/combat.js +772 -0
- package/dist/combat.js.map +1 -0
- package/dist/contractrummy.d.ts +77 -0
- package/dist/contractrummy.js +430 -0
- package/dist/contractrummy.js.map +1 -0
- package/dist/crazy8.d.ts +65 -0
- package/dist/crazy8.js +366 -0
- package/dist/crazy8.js.map +1 -0
- package/dist/cribbage.d.ts +75 -0
- package/dist/cribbage.js +428 -0
- package/dist/cribbage.js.map +1 -0
- package/dist/cuckoo.d.ts +43 -0
- package/dist/cuckoo.js +216 -0
- package/dist/cuckoo.js.map +1 -0
- package/dist/drinkingpyramid.d.ts +54 -0
- package/dist/drinkingpyramid.js +213 -0
- package/dist/drinkingpyramid.js.map +1 -0
- package/dist/drinks.d.ts +25 -0
- package/dist/drinks.js +40 -0
- package/dist/drinks.js.map +1 -0
- package/dist/dropfour.d.ts +103 -0
- package/dist/dropfour.js +577 -0
- package/dist/dropfour.js.map +1 -0
- package/dist/durak.d.ts +58 -0
- package/dist/durak.js +332 -0
- package/dist/durak.js.map +1 -0
- package/dist/euchre.d.ts +80 -0
- package/dist/euchre.js +453 -0
- package/dist/euchre.js.map +1 -0
- package/dist/fivedraw.d.ts +50 -0
- package/dist/fivedraw.js +289 -0
- package/dist/fivedraw.js.map +1 -0
- package/dist/fivehundred.d.ts +90 -0
- package/dist/fivehundred.js +504 -0
- package/dist/fivehundred.js.map +1 -0
- package/dist/freecell.d.ts +50 -0
- package/dist/freecell.js +327 -0
- package/dist/freecell.js.map +1 -0
- package/dist/fruitsalad.d.ts +69 -0
- package/dist/fruitsalad.js +427 -0
- package/dist/fruitsalad.js.map +1 -0
- package/dist/gin.d.ts +72 -0
- package/dist/gin.js +393 -0
- package/dist/gin.js.map +1 -0
- package/dist/go.d.ts +132 -0
- package/dist/go.js +659 -0
- package/dist/go.js.map +1 -0
- package/dist/goboard.d.ts +218 -0
- package/dist/goboard.js +880 -0
- package/dist/goboard.js.map +1 -0
- package/dist/gofish.d.ts +37 -0
- package/dist/gofish.js +235 -0
- package/dist/gofish.js.map +1 -0
- package/dist/golf.d.ts +64 -0
- package/dist/golf.js +343 -0
- package/dist/golf.js.map +1 -0
- package/dist/handfoot.d.ts +86 -0
- package/dist/handfoot.js +515 -0
- package/dist/handfoot.js.map +1 -0
- package/dist/hearts.d.ts +65 -0
- package/dist/hearts.js +390 -0
- package/dist/hearts.js.map +1 -0
- package/dist/holdem.d.ts +45 -0
- package/dist/holdem.js +286 -0
- package/dist/holdem.js.map +1 -0
- package/dist/horserace.d.ts +49 -0
- package/dist/horserace.js +207 -0
- package/dist/horserace.js.map +1 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.js +66 -0
- package/dist/index.js.map +1 -0
- package/dist/kingscorner.d.ts +59 -0
- package/dist/kingscorner.js +374 -0
- package/dist/kingscorner.js.map +1 -0
- package/dist/kingscup.d.ts +44 -0
- package/dist/kingscup.js +185 -0
- package/dist/kingscup.js.map +1 -0
- package/dist/kit.d.ts +283 -0
- package/dist/kit.js +73 -0
- package/dist/kit.js.map +1 -0
- package/dist/klondike.d.ts +57 -0
- package/dist/klondike.js +314 -0
- package/dist/klondike.js.map +1 -0
- package/dist/liarspoker.d.ts +61 -0
- package/dist/liarspoker.js +298 -0
- package/dist/liarspoker.js.map +1 -0
- package/dist/memory.d.ts +36 -0
- package/dist/memory.js +181 -0
- package/dist/memory.js.map +1 -0
- package/dist/minigolf.d.ts +104 -0
- package/dist/minigolf.js +724 -0
- package/dist/minigolf.js.map +1 -0
- package/dist/minigolfcourse.d.ts +127 -0
- package/dist/minigolfcourse.js +470 -0
- package/dist/minigolfcourse.js.map +1 -0
- package/dist/offers.d.ts +136 -0
- package/dist/offers.js +279 -0
- package/dist/offers.js.map +1 -0
- package/dist/ohhell.d.ts +66 -0
- package/dist/ohhell.js +331 -0
- package/dist/ohhell.js.map +1 -0
- package/dist/oldmaid.d.ts +40 -0
- package/dist/oldmaid.js +186 -0
- package/dist/oldmaid.js.map +1 -0
- package/dist/pinochle.d.ts +94 -0
- package/dist/pinochle.js +466 -0
- package/dist/pinochle.js.map +1 -0
- package/dist/pitch.d.ts +77 -0
- package/dist/pitch.js +362 -0
- package/dist/pitch.js.map +1 -0
- package/dist/poker.d.ts +79 -0
- package/dist/poker.js +268 -0
- package/dist/poker.js.map +1 -0
- package/dist/president.d.ts +56 -0
- package/dist/president.js +339 -0
- package/dist/president.js.map +1 -0
- package/dist/pyramid.d.ts +39 -0
- package/dist/pyramid.js +200 -0
- package/dist/pyramid.js.map +1 -0
- package/dist/registry.d.ts +17 -0
- package/dist/registry.js +70 -0
- package/dist/registry.js.map +1 -0
- package/dist/reversi.d.ts +69 -0
- package/dist/reversi.js +584 -0
- package/dist/reversi.js.map +1 -0
- package/dist/ridethebus.d.ts +48 -0
- package/dist/ridethebus.js +257 -0
- package/dist/ridethebus.js.map +1 -0
- package/dist/rummy500.d.ts +89 -0
- package/dist/rummy500.js +474 -0
- package/dist/rummy500.js.map +1 -0
- package/dist/sevens.d.ts +48 -0
- package/dist/sevens.js +221 -0
- package/dist/sevens.js.map +1 -0
- package/dist/slapjack.d.ts +42 -0
- package/dist/slapjack.js +224 -0
- package/dist/slapjack.js.map +1 -0
- package/dist/speed.d.ts +44 -0
- package/dist/speed.js +201 -0
- package/dist/speed.js.map +1 -0
- package/dist/spider.d.ts +51 -0
- package/dist/spider.js +320 -0
- package/dist/spider.js.map +1 -0
- package/dist/spite.d.ts +75 -0
- package/dist/spite.js +372 -0
- package/dist/spite.js.map +1 -0
- package/dist/sport.d.ts +266 -0
- package/dist/sport.js +48 -0
- package/dist/sport.js.map +1 -0
- package/dist/switch.d.ts +69 -0
- package/dist/switch.js +393 -0
- package/dist/switch.js.map +1 -0
- package/dist/table.d.ts +284 -0
- package/dist/table.js +67 -0
- package/dist/table.js.map +1 -0
- package/dist/talk.d.ts +17 -0
- package/dist/talk.js +44 -0
- package/dist/talk.js.map +1 -0
- package/dist/thirtyone.d.ts +66 -0
- package/dist/thirtyone.js +372 -0
- package/dist/thirtyone.js.map +1 -0
- package/dist/tictactoe.d.ts +68 -0
- package/dist/tictactoe.js +541 -0
- package/dist/tictactoe.js.map +1 -0
- package/dist/tricks.d.ts +21 -0
- package/dist/tricks.js +48 -0
- package/dist/tricks.js.map +1 -0
- package/dist/war.d.ts +44 -0
- package/dist/war.js +185 -0
- package/dist/war.js.map +1 -0
- package/dist/whist.d.ts +52 -0
- package/dist/whist.js +218 -0
- package/dist/whist.js.map +1 -0
- package/dist/yacht.d.ts +96 -0
- package/dist/yacht.js +653 -0
- package/dist/yacht.js.map +1 -0
- package/package.json +41 -4
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blackjack.js","sourceRoot":"","sources":["../src/blackjack.ts"],"names":[],"mappings":"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"}
|
package/dist/bluff.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type BaseRules, type CardGame, type KCard } from "./kit.js";
|
|
2
|
+
export interface BluffRules extends BaseRules {
|
|
3
|
+
/** Ranks go in order (A, 2, 3 …); otherwise you may claim the same rank, one up or one down. */
|
|
4
|
+
strictOrder: boolean;
|
|
5
|
+
/** Drinking mode, a house rule: see the game's describe(). */
|
|
6
|
+
drinking?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const classicBluff: BluffRules;
|
|
9
|
+
export declare const looseBluff: BluffRules;
|
|
10
|
+
type Phase = "play" | "doubt" | "finished";
|
|
11
|
+
export interface BluffState {
|
|
12
|
+
game: "bluff";
|
|
13
|
+
rules: BluffRules;
|
|
14
|
+
seats: number;
|
|
15
|
+
rng: number;
|
|
16
|
+
hand: number;
|
|
17
|
+
dealer: number;
|
|
18
|
+
phase: Phase;
|
|
19
|
+
hands: KCard[][];
|
|
20
|
+
pile: KCard[];
|
|
21
|
+
/** The last play: who, how many, which rank they said, and the cards themselves (hidden). */
|
|
22
|
+
claim: {
|
|
23
|
+
seat: number;
|
|
24
|
+
count: number;
|
|
25
|
+
rank: number;
|
|
26
|
+
cards: KCard[];
|
|
27
|
+
} | null;
|
|
28
|
+
/** The rank due next (in strict order), or the last one claimed (loose). */
|
|
29
|
+
rank: number;
|
|
30
|
+
turn: number;
|
|
31
|
+
/** In the doubt window: who has decided, and who called. */
|
|
32
|
+
decided: boolean[];
|
|
33
|
+
callers: number[];
|
|
34
|
+
/** The last reveal: whose claim, whether it was true, who picked up. */
|
|
35
|
+
reveal: {
|
|
36
|
+
seat: number;
|
|
37
|
+
caller: number;
|
|
38
|
+
cards: KCard[];
|
|
39
|
+
rank: number;
|
|
40
|
+
honest: boolean;
|
|
41
|
+
} | null;
|
|
42
|
+
/** Seats in the order they went out. */
|
|
43
|
+
out: number[];
|
|
44
|
+
narration: string | null;
|
|
45
|
+
}
|
|
46
|
+
export declare const plural: (r: number, n?: number) => string;
|
|
47
|
+
/** The ranks you may claim now. */
|
|
48
|
+
export declare function claimable(s: BluffState): number[];
|
|
49
|
+
export declare function newBluff(rules: BluffRules, seats: number, seed: number): BluffState;
|
|
50
|
+
type Move = {
|
|
51
|
+
type: "play";
|
|
52
|
+
cards: string[];
|
|
53
|
+
rank?: number;
|
|
54
|
+
} | {
|
|
55
|
+
type: "doubt";
|
|
56
|
+
} | {
|
|
57
|
+
type: "believe";
|
|
58
|
+
};
|
|
59
|
+
export declare const bluff: CardGame<BluffRules, BluffState, Move>;
|
|
60
|
+
export {};
|
package/dist/bluff.js
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { clone, FULL, GameError, makeDeck, nextRandom, rankLabel, rankSeats, shuffled, SUITS, thinkFor, who, withDrinking, withDrinks } from "./kit.js";
|
|
2
|
+
export const classicBluff = { id: "bluff-classic", name: "Bluff (A, 2, 3…)", strictOrder: true };
|
|
3
|
+
export const looseBluff = { id: "bluff-loose", name: "Same, up or down", strictOrder: false };
|
|
4
|
+
const rankOf = (c) => c.rank;
|
|
5
|
+
/** A, 2 … K: the order ranks are called in (aces first). */
|
|
6
|
+
const ORDER = [14, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
|
|
7
|
+
const nextRank = (r) => ORDER[(ORDER.indexOf(r) + 1) % 13];
|
|
8
|
+
const prevRank = (r) => ORDER[(ORDER.indexOf(r) + 12) % 13];
|
|
9
|
+
export const plural = (r, n = 2) => (n === 1 ? `${r === 14 || r === 8 ? "an" : "a"} ${r === 14 ? "ace" : r === 13 ? "king" : r === 12 ? "queen" : r === 11 ? "jack" : rankLabel(r)}` : `${["", "", "two", "three", "four"][n] ?? n} ${r === 14 ? "aces" : r === 13 ? "kings" : r === 12 ? "queens" : r === 11 ? "jacks" : `${rankLabel(r)}s`}`);
|
|
10
|
+
const sortHand = (cards) => [...cards].sort((a, b) => ORDER.indexOf(rankOf(a)) - ORDER.indexOf(rankOf(b)) || SUITS.indexOf(a.suit) - SUITS.indexOf(b.suit));
|
|
11
|
+
const holding = (s) => s.hands.map((h, i) => (h.length ? i : -1)).filter((i) => i >= 0);
|
|
12
|
+
/** The ranks you may claim now. */
|
|
13
|
+
export function claimable(s) {
|
|
14
|
+
if (s.rules.strictOrder || !s.claim)
|
|
15
|
+
return [s.rank];
|
|
16
|
+
return [...new Set([s.rank, nextRank(s.rank), prevRank(s.rank)])];
|
|
17
|
+
}
|
|
18
|
+
export function newBluff(rules, seats, seed) {
|
|
19
|
+
const s = { game: "bluff", rules, seats, rng: seed >>> 0, hand: 0, dealer: seed % seats, phase: "play", pile: [], claim: null, rank: 14, decided: [], callers: [], reveal: null, out: [], narration: "Aces first" };
|
|
20
|
+
const deck = shuffled(makeDeck({ ranks: FULL }), nextRandom(s));
|
|
21
|
+
s.hands = Array.from({ length: seats }, () => []);
|
|
22
|
+
// Two players get sixteen each, and the rest stay out of play: with the whole deck dealt, you'd know
|
|
23
|
+
// every card your opponent holds and no bluff could ever work.
|
|
24
|
+
const dealt = seats === 2 ? deck.slice(0, 32) : deck;
|
|
25
|
+
dealt.forEach((c, i) => s.hands[(s.dealer + 1 + i) % seats].push(c));
|
|
26
|
+
s.hands = s.hands.map(sortHand);
|
|
27
|
+
s.turn = (s.dealer + 1) % seats;
|
|
28
|
+
return s;
|
|
29
|
+
}
|
|
30
|
+
function nextPlayer(s, from) {
|
|
31
|
+
for (let i = 1; i <= s.seats; i++)
|
|
32
|
+
if (s.hands[(from + i) % s.seats].length)
|
|
33
|
+
return (from + i) % s.seats;
|
|
34
|
+
return from;
|
|
35
|
+
}
|
|
36
|
+
/** The doubt window closes: anyone who called settles it, else the play stands. */
|
|
37
|
+
function settle(s) {
|
|
38
|
+
const claim = s.claim;
|
|
39
|
+
const caller = s.callers.sort((a, b) => ((a - claim.seat + s.seats) % s.seats) - ((b - claim.seat + s.seats) % s.seats))[0];
|
|
40
|
+
if (caller !== undefined) {
|
|
41
|
+
const honest = claim.cards.every((c) => rankOf(c) === claim.rank);
|
|
42
|
+
const taker = honest ? caller : claim.seat;
|
|
43
|
+
s.hands[taker] = sortHand([...s.hands[taker], ...s.pile]);
|
|
44
|
+
s.reveal = { seat: claim.seat, caller, cards: claim.cards, rank: claim.rank, honest };
|
|
45
|
+
const cardsWord = `${s.pile.length} card${s.pile.length === 1 ? "" : "s"}`;
|
|
46
|
+
s.narration = honest ? `${who(caller)} called bluff, but it was true: ${who(caller)} picks up ${cardsWord}` : `${who(caller)} called bluff, and it was! ${who(claim.seat)} picks up ${cardsWord}`;
|
|
47
|
+
s.narration = withDrinks(!!s.rules.drinking, s.narration, [taker], 2);
|
|
48
|
+
s.pile = [];
|
|
49
|
+
}
|
|
50
|
+
else
|
|
51
|
+
s.narration = `Nobody doubted ${who(claim.seat)}`;
|
|
52
|
+
// Out of cards and believed (or proved honest): out.
|
|
53
|
+
if (!s.hands[claim.seat].length && !s.out.includes(claim.seat)) {
|
|
54
|
+
s.out.push(claim.seat);
|
|
55
|
+
s.narration += `. ${who(claim.seat)} is out of cards!`;
|
|
56
|
+
}
|
|
57
|
+
s.rank = s.rules.strictOrder ? nextRank(claim.rank) : claim.rank;
|
|
58
|
+
if (s.out.length >= 1 || holding(s).length <= 1) {
|
|
59
|
+
s.phase = "finished";
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
s.phase = "play";
|
|
63
|
+
s.turn = nextPlayer(s, claim.seat);
|
|
64
|
+
}
|
|
65
|
+
function apply(state, seat, move) {
|
|
66
|
+
const s = clone(state);
|
|
67
|
+
if (s.phase === "finished")
|
|
68
|
+
throw new GameError("The game is over.");
|
|
69
|
+
if (move.type === "play") {
|
|
70
|
+
if (s.phase !== "play" || s.turn !== seat)
|
|
71
|
+
throw new GameError("It's not your turn.");
|
|
72
|
+
const ids = move.cards ?? [];
|
|
73
|
+
const cards = ids.map((id) => s.hands[seat].find((c) => c.id === id));
|
|
74
|
+
if (cards.length < 1 || cards.length > 4 || cards.some((c) => !c) || new Set(ids).size !== ids.length)
|
|
75
|
+
throw new GameError("Put down one to four cards.");
|
|
76
|
+
const rank = move.rank ?? s.rank;
|
|
77
|
+
if (!claimable(s).includes(rank))
|
|
78
|
+
throw new GameError(`Say ${claimable(s).map((r) => plural(r)).join(" or ")}.`);
|
|
79
|
+
s.hands[seat] = s.hands[seat].filter((c) => !ids.includes(c.id));
|
|
80
|
+
s.pile.push(...cards);
|
|
81
|
+
s.claim = { seat, count: cards.length, rank, cards: cards };
|
|
82
|
+
s.reveal = null;
|
|
83
|
+
s.phase = "doubt";
|
|
84
|
+
s.decided = s.hands.map((h, i) => i === seat || (!h.length && i !== seat) || s.out.includes(i));
|
|
85
|
+
s.callers = [];
|
|
86
|
+
s.narration = `${who(seat)} says ${plural(rank, cards.length)}`;
|
|
87
|
+
if (s.decided.every(Boolean))
|
|
88
|
+
settle(s);
|
|
89
|
+
return s;
|
|
90
|
+
}
|
|
91
|
+
if (move.type === "doubt" || move.type === "believe") {
|
|
92
|
+
if (s.phase !== "doubt" || s.decided[seat])
|
|
93
|
+
throw new GameError("There's nothing to doubt right now.");
|
|
94
|
+
s.decided[seat] = true;
|
|
95
|
+
if (move.type === "doubt")
|
|
96
|
+
s.callers.push(seat);
|
|
97
|
+
if (s.decided.every(Boolean) || move.type === "doubt")
|
|
98
|
+
settle(s);
|
|
99
|
+
return s;
|
|
100
|
+
}
|
|
101
|
+
throw new GameError("That's not a move in Bluff.");
|
|
102
|
+
}
|
|
103
|
+
function view(s, seat) {
|
|
104
|
+
const over = s.phase === "finished";
|
|
105
|
+
const mine = s.phase === "play" && s.turn === seat;
|
|
106
|
+
const doubting = s.phase === "doubt" && !s.decided[seat];
|
|
107
|
+
const r = s.reveal;
|
|
108
|
+
const melds = r ? [{ owner: r.seat, label: r.honest ? `It was ${plural(r.rank, r.cards.length)}` : `Bluff! Not ${plural(r.rank, r.cards.length)}`, cards: r.cards }] : [];
|
|
109
|
+
const can = claimable(s);
|
|
110
|
+
const winner = s.out[0];
|
|
111
|
+
return {
|
|
112
|
+
game: "bluff",
|
|
113
|
+
seats: s.seats,
|
|
114
|
+
me: seat,
|
|
115
|
+
teams: false,
|
|
116
|
+
phase: s.phase,
|
|
117
|
+
turn: s.phase === "play" ? s.turn : null,
|
|
118
|
+
dealer: s.dealer,
|
|
119
|
+
hand: s.hands[seat],
|
|
120
|
+
tap: null,
|
|
121
|
+
pick: mine
|
|
122
|
+
? {
|
|
123
|
+
min: 1,
|
|
124
|
+
max: 4,
|
|
125
|
+
prompt: can.length === 1 ? `Put down one to four cards and say ${plural(can[0])}` : "Put down one to four cards, then say what they are",
|
|
126
|
+
cards: s.hands[seat].map((c) => c.id),
|
|
127
|
+
actions: can.map((rank, i) => ({ label: `They're ${plural(rank)}`, type: "play", primary: i === 0, extra: { rank } })),
|
|
128
|
+
}
|
|
129
|
+
: null,
|
|
130
|
+
choices: doubting
|
|
131
|
+
? { prompt: "Believe it?", options: [{ label: "Bluff!", move: { type: "doubt" }, primary: true }, { label: "Believe it", move: { type: "believe" } }], layout: "row" }
|
|
132
|
+
: null,
|
|
133
|
+
players: s.hands.map((h, i) => ({ cards: h.length, line: s.out.includes(i) ? "Out!" : "", dealer: i === s.dealer, badge: s.claim?.seat === i && s.phase === "doubt" ? `Says ${plural(s.claim.rank, s.claim.count)}` : undefined })),
|
|
134
|
+
center: {
|
|
135
|
+
kind: "piles",
|
|
136
|
+
stock: null,
|
|
137
|
+
// Face down: only how many, never the cards themselves.
|
|
138
|
+
discard: [],
|
|
139
|
+
discardCount: s.pile.length,
|
|
140
|
+
drawMove: null,
|
|
141
|
+
takeMove: null,
|
|
142
|
+
faceDown: true,
|
|
143
|
+
discardLabel: `${s.pile.length} in the pile`,
|
|
144
|
+
},
|
|
145
|
+
melds,
|
|
146
|
+
info: s.phase === "play" ? [can.length === 1 ? `Next: ${plural(can[0])}` : `Next: ${can.map((x) => plural(x)).join(", ")}`] : [],
|
|
147
|
+
narration: s.narration,
|
|
148
|
+
scores: s.hands.map((h, i) => ({ seats: [i], value: h.length })),
|
|
149
|
+
result: null,
|
|
150
|
+
over: over && winner !== undefined ? { winners: [winner], title: `${who(winner)} got rid of every card!` } : over ? { winners: holding(s), title: "Game over" } : null,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
// ---- Computer players --------------------------------------------------------------------------
|
|
154
|
+
function bot(s, seat, style) {
|
|
155
|
+
const hand = s.hands[seat];
|
|
156
|
+
const bold = style.bold ?? 0.3;
|
|
157
|
+
if (s.phase === "doubt") {
|
|
158
|
+
if (s.decided[seat])
|
|
159
|
+
return null;
|
|
160
|
+
const c = s.claim;
|
|
161
|
+
const have = hand.filter((x) => rankOf(x) === c.rank).length;
|
|
162
|
+
// Impossible claims are always called; a player about to go out is called more; big claims too.
|
|
163
|
+
if (have + c.count > 4)
|
|
164
|
+
return { type: "doubt" };
|
|
165
|
+
let p = 0.08 + (c.count - 1) * 0.1 + have * 0.12;
|
|
166
|
+
const left = s.hands[c.seat].length;
|
|
167
|
+
if (!left)
|
|
168
|
+
p += 0.45;
|
|
169
|
+
else if (left <= 3)
|
|
170
|
+
p += 0.25;
|
|
171
|
+
else if (left <= 6)
|
|
172
|
+
p += 0.1;
|
|
173
|
+
if (s.pile.length > 12)
|
|
174
|
+
p -= 0.05;
|
|
175
|
+
return Math.random() < p ? { type: "doubt" } : { type: "believe" };
|
|
176
|
+
}
|
|
177
|
+
if (s.phase !== "play" || s.turn !== seat)
|
|
178
|
+
return null;
|
|
179
|
+
// Honest if we can: all we hold of a claimable rank. Otherwise lie with one (or, if bold, two) of our worst cards.
|
|
180
|
+
const can = claimable(s);
|
|
181
|
+
const best = can.map((rank) => ({ rank, cards: hand.filter((x) => rankOf(x) === rank) })).sort((a, b) => b.cards.length - a.cards.length)[0];
|
|
182
|
+
if (best.cards.length) {
|
|
183
|
+
const extra = Math.random() < bold * 0.4 && hand.length > best.cards.length + 1 ? hand.filter((x) => rankOf(x) !== best.rank).slice(0, 1) : [];
|
|
184
|
+
return { type: "play", cards: [...best.cards, ...extra].slice(0, 4).map((c) => c.id), rank: best.rank };
|
|
185
|
+
}
|
|
186
|
+
// Lie with cards whose rank comes up last.
|
|
187
|
+
const far = (x) => (ORDER.indexOf(rankOf(x)) - ORDER.indexOf(s.rank) + 13) % 13;
|
|
188
|
+
const liars = [...hand].sort((a, b) => far(b) - far(a)).slice(0, Math.random() < bold ? 2 : 1);
|
|
189
|
+
return { type: "play", cards: liars.map((c) => c.id), rank: can[0] };
|
|
190
|
+
}
|
|
191
|
+
const bluffGame = {
|
|
192
|
+
id: "bluff",
|
|
193
|
+
name: "Bluff",
|
|
194
|
+
emoji: "🤥",
|
|
195
|
+
blurb: "Say what you're putting down, true or not",
|
|
196
|
+
tagline: "Also called Cheat or I Doubt It: put your cards down face down, say what they are, and hope nobody calls your bluff.",
|
|
197
|
+
seats: { min: 2, max: 6, default: 4 },
|
|
198
|
+
teams: false,
|
|
199
|
+
presets: [classicBluff, looseBluff],
|
|
200
|
+
fields: [{ key: "strictOrder", label: "Ranks in order", hint: "Aces, then twos, threes … Off: say the same rank, one up or one down.", kind: "toggle" }],
|
|
201
|
+
normalize(rules) {
|
|
202
|
+
const given = (rules && typeof rules === "object" ? rules : {});
|
|
203
|
+
const base = [classicBluff, looseBluff].find((p) => p.id === given.id) ?? classicBluff;
|
|
204
|
+
return { ...base, ...given };
|
|
205
|
+
},
|
|
206
|
+
validate: () => [],
|
|
207
|
+
describe(r) {
|
|
208
|
+
return [
|
|
209
|
+
"Every card is dealt (with two players, sixteen each and the rest stay out of play, so there's room to bluff). Get rid of all of yours to win.",
|
|
210
|
+
r.strictOrder
|
|
211
|
+
? "On your turn, put one to four cards face down on the pile and say they're the rank that's due: aces first, then twos, threes and so on up to kings, then aces again."
|
|
212
|
+
: "On your turn, put one to four cards face down on the pile and say they're the same rank as the last play, one higher or one lower (aces first).",
|
|
213
|
+
"They don't have to be what you say. Anyone else can call \"Bluff!\": the cards are turned over. If you lied, you pick up the whole pile; if you told the truth, whoever called picks it up.",
|
|
214
|
+
"Play your last card and get away with it, and you win.",
|
|
215
|
+
];
|
|
216
|
+
},
|
|
217
|
+
newGame: newBluff,
|
|
218
|
+
apply,
|
|
219
|
+
view,
|
|
220
|
+
bot,
|
|
221
|
+
thinkingTime: (s) => (s.phase === "doubt" ? 1600 : thinkFor(4)),
|
|
222
|
+
summary(s) {
|
|
223
|
+
const over = s.phase === "finished";
|
|
224
|
+
return {
|
|
225
|
+
game: "bluff",
|
|
226
|
+
rules: s.rules.name,
|
|
227
|
+
phase: s.phase,
|
|
228
|
+
over,
|
|
229
|
+
hand: 1,
|
|
230
|
+
scoreLine: s.hands.map((h) => h.length).join(" · ") + " cards",
|
|
231
|
+
order: over ? rankSeats(s.hands.map((h, i) => ({ seats: [i], score: h.length })), true) : null,
|
|
232
|
+
winners: over ? (s.out.length ? [s.out[0]] : holding(s)) : null,
|
|
233
|
+
teams: false,
|
|
234
|
+
seats: s.seats,
|
|
235
|
+
};
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
export const bluff = withDrinking(bluffGame, "Adults only. Whoever picks up the pile drinks 2 (or sips of water).", "whoever picks up the pile drinks 2.");
|
|
239
|
+
//# sourceMappingURL=bluff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bluff.js","sourceRoot":"","sources":["../src/bluff.ts"],"names":[],"mappings":"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"}
|