Socket
Socket
Sign inDemoInstall

@boardgamers/container-engine

Package Overview
Dependencies
4
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.8 to 1.0.9

src/fixtures/Abstract-judge-7215.json

1

dist/src/engine.d.ts
import { GameOptions, GameState } from './gamestate';
import { LogItem } from './log';
import { Move } from './move';
export declare const playerColors: string[];
export declare function setup(numPlayers: number, { beginner }: GameOptions, seed?: string): GameState;

@@ -5,0 +6,0 @@ export declare function stripSecret(G: GameState, player?: number): GameState;

6

dist/src/engine.js

@@ -6,3 +6,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.nextPlayer = exports.reconstructState = exports.scores = exports.ended = exports.moveAI = exports.move = exports.currentPlayers = exports.stripSecret = exports.setup = void 0;
exports.nextPlayer = exports.reconstructState = exports.scores = exports.ended = exports.moveAI = exports.move = exports.currentPlayers = exports.stripSecret = exports.setup = exports.playerColors = void 0;
const assert_1 = __importDefault(require("assert"));

@@ -17,3 +17,3 @@ const lodash_1 = require("lodash");

const utils_1 = require("./utils");
const playerColors = ['dodgerblue', 'red', 'yellow', 'limegreen', 'mediumorchid'];
exports.playerColors = ['dodgerblue', 'red', 'yellow', 'limegreen', 'mediumorchid'];
function setup(numPlayers, { beginner = true }, seed) {

@@ -946,3 +946,3 @@ seed = seed !== null && seed !== void 0 ? seed : Math.random().toString();

function playerNameHTML(player) {
return `<span style="background-color: ${playerColors[player.id]}; font-weight: bold; padding: 0 3px;">${player.name}</span>`;
return `<span style="background-color: ${exports.playerColors[player.id]}; font-weight: bold; padding: 0 3px;">${player.name}</span>`;
}

@@ -949,0 +949,0 @@ function containerColorHTML(containerColor) {

@@ -8,2 +8,3 @@ import type { GameState } from './index';

export declare function move(G: GameState, move: Move, player: number): Promise<GameState>;
export declare function factions(G: GameState): string[];
export { ended, scores, stripSecret } from './src/engine';

@@ -10,0 +11,0 @@ export declare function rankings(G: GameState): number[];

@@ -22,3 +22,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.logSlice = exports.logLength = exports.messages = exports.currentPlayer = exports.dropPlayer = exports.round = exports.replay = exports.rankings = exports.stripSecret = exports.scores = exports.ended = exports.move = exports.setPlayerMetaData = exports.init = void 0;
exports.logSlice = exports.logLength = exports.messages = exports.currentPlayer = exports.dropPlayer = exports.round = exports.replay = exports.rankings = exports.stripSecret = exports.scores = exports.ended = exports.factions = exports.move = exports.setPlayerMetaData = exports.init = void 0;
const lodash_1 = require("lodash");

@@ -41,2 +41,6 @@ const engine = __importStar(require("./src/engine"));

exports.move = move;
function factions(G) {
return G.players.map((pl) => engine.playerColors[pl.id]);
}
exports.factions = factions;
var engine_1 = require("./src/engine");

@@ -43,0 +47,0 @@ Object.defineProperty(exports, "ended", { enumerable: true, get: function () { return engine_1.ended; } });

{
"name": "@boardgamers/container-engine",
"version": "1.0.8",
"version": "1.0.9",
"description": "An engine for Container",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

import { expect } from 'chai';
import { ended, setup } from './engine';
import { ended, move, setup } from './engine';
import AbstractJudge from './fixtures/Abstract-judge-7215.json';
import type { Move } from './move';

@@ -18,203 +20,13 @@ describe('Engine', () => {

it('should play full game', () => {
const G = setup(5, { beginner: false }, 'test');
let G = setup(5, { beginner: AbstractJudge.options.beginner }, AbstractJudge.seed);
// G.currentPlayers = [0];
// G.players[0].actions = 2;
// G.players[0].availableMoves = availableMoves(G, G.players[0]);
// G.players[0].factories[0] = ContainerColor.Brown;
// G.players[1].factories[0] = ContainerColor.Orange;
// G.players[2].factories[0] = ContainerColor.Black;
// G.players[3].factories[0] = ContainerColor.Tan;
// G.players[4].factories[0] = ContainerColor.White;
// G.players[0].containersOnFactoryStore[0] = { containerColor: ContainerColor.Brown, price: 2 };
// G.players[1].containersOnFactoryStore[0] = { containerColor: ContainerColor.Orange, price: 2 };
// G.players[2].containersOnFactoryStore[0] = { containerColor: ContainerColor.Black, price: 2 };
// G.players[3].containersOnFactoryStore[0] = { containerColor: ContainerColor.Tan, price: 2 };
// G.players[4].containersOnFactoryStore[0] = { containerColor: ContainerColor.White, price: 2 };
for (const item of AbstractJudge.log) {
if (item.type === 'move') {
G = move(G, item.move! as Move, item.player!);
}
}
// G = execMove(G, { name: "buyFactory", data: ContainerColor.Orange } as Move, 0);
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 0);
// G = execMove(G, { name: "pass", data: true } as Move, 0);
// G = execMove(G, { name: "buyFactory", data: ContainerColor.Tan } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "pass", data: true } as Move, 1);
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Orange, price: 2 } }, extraData: { price: 4 } } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Orange, price: 2 } }, extraData: { price: 4 } } as Move, 2);
// G = execMove(G, { name: "pass", data: true } as Move, 2);
// G = execMove(G, { name: "buyFactory", data: ContainerColor.Black } as Move, 3);
// G = execMove(G, { name: "produce", data: ContainerColor.Black, extraData: { price: 3 } } as Move, 3);
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 3);
// G = execMove(G, { name: "pass", data: true } as Move, 3);
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 4);
// G = execMove(G, { name: "sail", data: ShipPosition.Player2 } as Move, 4);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Orange, price: 4 } } } as Move, 4);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Orange, price: 4 } } } as Move, 4);
// G = execMove(G, { name: "pass", data: true } as Move, 4);
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 3 } } as Move, 0);
// G = execMove(G, { name: "produce", data: ContainerColor.Brown, extraData: { price: 2 } } as Move, 0);
// G = execMove(G, { name: "buyFromFactory", data: { player: 2, container: { containerColor: ContainerColor.Black, price: 2 } }, extraData: { price: 3 } } as Move, 0);
// G = execMove(G, { name: "pass", data: true } as Move, 0);
// G = execMove(G, { name: "buyFactory", data: ContainerColor.White } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.White, extraData: { price: 3 } } as Move, 1);
// G = execMove(G, { name: "pass", data: true } as Move, 1);
// G = execMove(G, { name: "buyFactory", data: ContainerColor.Brown } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 3 } } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 3 } } as Move, 2);
// G = execMove(G, { name: "pass", data: true } as Move, 2);
// G = execMove(G, { name: "buyFactory", data: ContainerColor.Brown } as Move, 3);
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 3);
// G = execMove(G, { name: "produce", data: ContainerColor.Black, extraData: { price: 3 } } as Move, 3);
// G = execMove(G, { name: "produce", data: ContainerColor.Brown, extraData: { price: 2 } } as Move, 3);
// G = execMove(G, { name: "pass", data: true } as Move, 3);
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 4);
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 4);
// G = execMove(G, { name: "pass", data: true } as Move, 4);
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 4 } } as Move, 0);
// G = execMove(G, { name: "sail", data: ShipPosition.Player2 } as Move, 0);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Tan, price: 3 } } } as Move, 0);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Tan, price: 3 } } } as Move, 0);
// G = execMove(G, { name: "pass", data: true } as Move, 0);
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 3 } } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 3 } } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.White, extraData: { price: 3 } } as Move, 1);
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.White, price: 3 }, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.White, price: 3 }, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.Orange, price: 3 }, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.Tan, price: 3 }, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "sail", data: ShipPosition.Player0 } as Move, 1);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 0, container: { containerColor: ContainerColor.Black, price: 3 } } } as Move, 1);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 0, container: { containerColor: ContainerColor.Tan, price: 4 } } } as Move, 1);
// G = execMove(G, { name: "pass", data: true } as Move, 1);
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.White, price: 2 } }, extraData: { price: 3 } } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.White, price: 2 } }, extraData: { price: 3 } } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Orange, price: 2 } }, extraData: { price: 4 } } as Move, 2);
// G = execMove(G, { name: "pass", data: true } as Move, 2);
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 3);
// G = execMove(G, { name: "produce", data: ContainerColor.Brown, extraData: { price: 1 } } as Move, 3);
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.Brown, price: 2 }, extraData: { price: 1 } } as Move, 3);
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.Black, price: 3 }, extraData: { price: 2 } } as Move, 3);
// G = execMove(G, { name: "arrangeFactory", data: { containerColor: ContainerColor.Black, price: 3 }, extraData: { price: 2 } } as Move, 3);
// G = execMove(G, { name: "pass", data: true } as Move, 3);
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Brown, price: 1 } }, extraData: { price: 4 } } as Move, 4);
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Brown, price: 1 } }, extraData: { price: 4 } } as Move, 4);
// G = execMove(G, { name: "sail", data: ShipPosition.Island } as Move, 4);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 1 } } as Move, 0);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 5 } } as Move, 1);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 4 } } as Move, 2);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 2 } } as Move, 3);
// G = execMove(G, { name: "accept", data: 1 } as Move, 4);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.White, price: 3 } } } as Move, 0);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.White, price: 3 } } } as Move, 0);
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 0);
// G = execMove(G, { name: "pass", data: true } as Move, 0);
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.White, extraData: { price: 2 } } as Move, 1);
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 1);
// G = execMove(G, { name: "pass", data: true } as Move, 1);
// G = execMove(G, { name: "sail", data: ShipPosition.Player4 } as Move, 2);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 4, container: { containerColor: ContainerColor.Brown, price: 4 } } } as Move, 2);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 4, container: { containerColor: ContainerColor.Brown, price: 4 } } } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Black, price: 2 } }, extraData: { price: 3 } } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Black, price: 2 } }, extraData: { price: 3 } } as Move, 2);
// G = execMove(G, { name: "arrangeWarehouse", data: { containerColor: ContainerColor.Orange, price: 4 }, extraData: { price: 3 } } as Move, 2);
// G = execMove(G, { name: "pass", data: true } as Move, 2);
// G = execMove(G, { name: "sail", data: ShipPosition.Player2 } as Move, 3);
// G = execMove(G, { name: "getLoan", data: true } as Move, 3);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Black, price: 3 } } } as Move, 3);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Black, price: 3 } } } as Move, 3);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Orange, price: 3 } } } as Move, 3);
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 3);
// G = execMove(G, { name: "pass", data: true } as Move, 3);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.White, price: 2 } }, extraData: { price: 4 } } as Move, 4);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Orange, price: 2 } }, extraData: { price: 3 } } as Move, 4);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 3 } } as Move, 4);
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 4);
// G = execMove(G, { name: "pass", data: true } as Move, 4);
// G = execMove(G, { name: "sail", data: ShipPosition.Island } as Move, 0);
// G = execMove(G, { name: "getLoan", data: true } as Move, 1);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 11 } } as Move, 1);
// G = execMove(G, { name: "getLoan", data: true } as Move, 2);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 8 } } as Move, 2);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 7 } } as Move, 3);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 9 } } as Move, 4);
// G = execMove(G, { name: "accept", data: 1 } as Move, 0);
// G = execMove(G, { name: "getLoan", data: true } as Move, 1);
// G = execMove(G, { name: "sail", data: ShipPosition.Player4 } as Move, 1);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 4, container: { containerColor: ContainerColor.Tan, price: 3 } } } as Move, 1);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 4, container: { containerColor: ContainerColor.Orange, price: 3 } } } as Move, 1);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 4, container: { containerColor: ContainerColor.White, price: 4 } } } as Move, 1);
// G = execMove(G, { name: "sail", data: ShipPosition.OpenSea } as Move, 1);
// G = execMove(G, { name: "pass", data: true } as Move, 1);
// G = execMove(G, { name: "payLoan", data: true } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 0, container: { containerColor: ContainerColor.Brown, price: 2 } }, extraData: { price: 3 } } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 0, container: { containerColor: ContainerColor.Brown, price: 2 } }, extraData: { price: 3 } } as Move, 2);
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 4 } } as Move, 2);
// G = execMove(G, { name: "pass", data: true } as Move, 2);
// G = execMove(G, { name: "sail", data: ShipPosition.Player2 } as Move, 3);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Brown, price: 3 } } } as Move, 3);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Tan, price: 4 } } } as Move, 3);
// G = execMove(G, { name: "produce", data: ContainerColor.Brown, extraData: { price: 2 } } as Move, 3);
// G = execMove(G, { name: "produce", data: ContainerColor.Black, extraData: { price: 3 } } as Move, 3);
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 2 } } as Move, 3);
// G = execMove(G, { name: "pass", data: true } as Move, 3);
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 4 } } as Move, 4);
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 4 } } as Move, 4);
// G = execMove(G, { name: "buyFromFactory", data: { player: 3, container: { containerColor: ContainerColor.Brown, price: 2 } }, extraData: { price: 2 } } as Move, 4);
// G = execMove(G, { name: "sail", data: ShipPosition.Player2 } as Move, 4);
// G = execMove(G, { name: "buyFromWarehouse", data: { player: 2, container: { containerColor: ContainerColor.Brown, price: 3 } } } as Move, 4);
// G = execMove(G, { name: "pass", data: true } as Move, 4);
// G = execMove(G, { name: "buyWarehouse", data: true } as Move, 0);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Tan, price: 2 } }, extraData: { price: 3 } } as Move, 0);
// G = execMove(G, { name: "buyFromFactory", data: { player: 1, container: { containerColor: ContainerColor.Orange, price: 2 } }, extraData: { price: 4 } } as Move, 0);
// G = execMove(G, { name: "pass", data: true } as Move, 0);
// G = execMove(G, { name: "produce", data: ContainerColor.Orange, extraData: { price: 3 } } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.White, extraData: { price: 3 } } as Move, 1);
// G = execMove(G, { name: "produce", data: ContainerColor.Tan, extraData: { price: 3 } } as Move, 1);
// G = execMove(G, { name: "sail", data: ShipPosition.Island } as Move, 1);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 12 } } as Move, 2);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 5 } } as Move, 3);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 20 } } as Move, 4);
// G = execMove(G, { name: "bid", data: true, extraData: { price: 7 } } as Move, 0);
// G = execMove(G, { name: "accept", data: 4 } as Move, 1);
// G = execMove(G, { name: "pass", data: true } as Move, 0);
// G = execMove(G, { name: "pass", data: true } as Move, 1);
// G = execMove(G, { name: "pass", data: true } as Move, 2);
// G = execMove(G, { name: "pass", data: true } as Move, 3);
// G = execMove(G, { name: "pass", data: true } as Move, 4);
expect(G.currentPlayers).to.deep.equal([0]);
expect(ended(G)).to.be.false;
});
});

@@ -21,3 +21,3 @@ import assert from 'assert';

const playerColors = ['dodgerblue', 'red', 'yellow', 'limegreen', 'mediumorchid'];
export const playerColors = ['dodgerblue', 'red', 'yellow', 'limegreen', 'mediumorchid'];

@@ -24,0 +24,0 @@ export function setup(numPlayers: number, { beginner = true }: GameOptions, seed?: string): GameState {

@@ -11,3 +11,4 @@ {

// "outFile": "./", /* Concatenate and emit output to single file. */
"outDir": "./dist" /* Redirect output structure to the directory. */
"outDir": "./dist" /* Redirect output structure to the directory. */,
"resolveJsonModule": true
},

@@ -14,0 +15,0 @@ "types": ["node"],

@@ -24,2 +24,6 @@ import { cloneDeep } from 'lodash';

export function factions(G: GameState) {
return G.players.map((pl) => engine.playerColors[pl.id]);
}
export { ended, scores, stripSecret } from './src/engine';

@@ -26,0 +30,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc