scrabble-solver 2.18.8 → 2.18.9
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/.nx/workspace-data/file-map.json +1567 -1563
- package/.nx/workspace-data/lockfile-dependencies.json +143 -143
- package/.nx/workspace-data/lockfile-nodes.json +391 -391
- package/.nx/workspace-data/nx_files_v2.nxt +0 -0
- package/.nx/workspace-data/project-graph.json +563 -562
- package/.nx/workspace-data/source-maps.json +4 -0
- package/CLAUDE.md +1 -1
- package/README.md +1 -1
- package/bun.lock +106 -106
- package/lerna.json +1 -1
- package/package.json +8 -7
- package/packages/configs/build/games/index.d.ts +1 -0
- package/packages/configs/build/games/index.js +1 -0
- package/packages/configs/build/games/wordfeud.d.ts +19 -0
- package/packages/configs/build/games/wordfeud.js +81 -0
- package/packages/configs/build/languages/english.d.ts +2 -0
- package/packages/configs/build/languages/english.js +65 -1
- package/packages/configs/package.json +5 -4
- package/packages/configs/src/games/index.ts +1 -0
- package/packages/configs/src/games/wordfeud.ts +79 -0
- package/packages/configs/src/languages/english.ts +67 -1
- package/packages/constants/package.json +1 -1
- package/packages/dictionaries/package.json +4 -4
- package/packages/logger/package.json +1 -1
- package/packages/scrabble-solver/.next/BUILD_ID +1 -1
- package/packages/scrabble-solver/.next/build-manifest.json +13 -13
- package/packages/scrabble-solver/.next/cache/.previewinfo +1 -1
- package/packages/scrabble-solver/.next/cache/.rscinfo +1 -1
- package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
- package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +2 -2
- package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/packages/scrabble-solver/.next/diagnostics/framework.json +1 -1
- package/packages/scrabble-solver/.next/next-server.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/prerender-manifest.json +4 -4
- package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
- package/packages/scrabble-solver/.next/server/chunks/30.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/612.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/67.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/671.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/812.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/853.js +1 -1
- package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/404.html +2 -2
- package/packages/scrabble-solver/.next/server/pages/500.html +2 -2
- package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/_error.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/verify.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/visit.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/visit.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.html +2 -2
- package/packages/scrabble-solver/.next/server/pages/index.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/not-found.html +2 -2
- package/packages/scrabble-solver/.next/server/pages/not-found.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/preview-props.json +3 -3
- package/packages/scrabble-solver/.next/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.html +2 -2
- package/packages/scrabble-solver/.next/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.json +1 -1
- package/packages/scrabble-solver/.next/server/route-cache/PAGES/8a5edab282632443219e051e4ade2d1d5bbc671c781051bf1437897cbdfea0f1/$/index.meta +1 -1
- package/packages/scrabble-solver/.next/static/{A7gnj7HBAkHTAN3QhqBcs → ZAXBgTNB3tlEK8seyFXPO}/_buildManifest.js +1 -1
- package/packages/scrabble-solver/.next/static/chunks/256.9fcbd6c03ebdb85b.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/744-5ad846426b8f4514.js +3 -0
- package/packages/scrabble-solver/.next/static/chunks/{main-1cbcb557c6b1777d.js → main-738e097cd313908f.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-649c89598d664fab.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/pages/{index-cb6ead85a37f9022.js → index-ebba11f9b00e2bb5.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/{webpack-315b7d774c197ad3.js → webpack-e8cd77eb7929e1f0.js} +1 -1
- package/packages/scrabble-solver/.next/trace +36 -36
- package/packages/scrabble-solver/.next/trace-build +1 -1
- package/packages/scrabble-solver/package.json +13 -13
- package/packages/scrabble-solver/public/llms.txt +1 -1
- package/packages/scrabble-solver/public/service-worker.js +1 -1
- package/packages/scrabble-solver/src/pages/index.tsx +1 -1
- package/packages/scrabble-solver/tsconfig.tsbuildinfo +1 -1
- package/packages/solver/package.json +5 -5
- package/packages/types/build/Game.d.ts +1 -0
- package/packages/types/build/Game.js +1 -0
- package/packages/types/package.json +2 -2
- package/packages/types/src/Game.ts +1 -0
- package/packages/word-definitions/package.json +3 -3
- package/packages/word-lists/package.json +4 -4
- package/playwright-report/index.html +1 -1
- package/.nx/workspace-data/d/server-process.json +0 -5
- package/packages/scrabble-solver/.next/static/chunks/256.ad3906547e15ca9d.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/744-65c858e61915ae87.js +0 -3
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-7a211db854399bc6.js +0 -1
- /package/packages/scrabble-solver/.next/static/{A7gnj7HBAkHTAN3QhqBcs → ZAXBgTNB3tlEK8seyFXPO}/_ssgManifest.js +0 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scrabble-solver",
|
|
3
|
-
"version": "2.18.
|
|
4
|
-
"description": "Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Crossplay, Literaki, Kelimelik, and
|
|
3
|
+
"version": "2.18.9",
|
|
4
|
+
"description": "Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Crossplay, Literaki, Kelimelik, Wyrazy, and Wordfeud. Quickly find the top-scoring words using the given board and tiles.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"scrabble",
|
|
7
7
|
"scrabble-solver",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"literaki",
|
|
19
19
|
"kelimelik",
|
|
20
20
|
"wyrazy",
|
|
21
|
+
"wordfeud",
|
|
21
22
|
"board game",
|
|
22
23
|
"gaddag"
|
|
23
24
|
],
|
|
@@ -80,13 +81,13 @@
|
|
|
80
81
|
"packages/scrabble-solver"
|
|
81
82
|
],
|
|
82
83
|
"dependencies": {
|
|
83
|
-
"@scrabble-solver/scrabble-solver": "2.18.
|
|
84
|
+
"@scrabble-solver/scrabble-solver": "2.18.9",
|
|
84
85
|
"open-cli": "9.0.0",
|
|
85
86
|
"wait-on": "9.5.1"
|
|
86
87
|
},
|
|
87
88
|
"devDependencies": {
|
|
88
89
|
"@playwright/test": "1.64.1",
|
|
89
|
-
"@types/bun": "1.4.
|
|
90
|
+
"@types/bun": "1.4.4",
|
|
90
91
|
"@types/node": "26.6.5",
|
|
91
92
|
"eslint-import-resolver-typescript": "4.4.5",
|
|
92
93
|
"eslint-plugin-import": "2.32.0",
|
|
@@ -94,9 +95,9 @@
|
|
|
94
95
|
"eslint-plugin-react": "7.37.5",
|
|
95
96
|
"lerna": "10.1.1",
|
|
96
97
|
"np": "12.1.1",
|
|
97
|
-
"oxfmt": "0.
|
|
98
|
-
"oxlint": "1.
|
|
99
|
-
"oxlint-tsgolint": "7.0.
|
|
98
|
+
"oxfmt": "0.75.0",
|
|
99
|
+
"oxlint": "1.90.0",
|
|
100
|
+
"oxlint-tsgolint": "7.0.2005",
|
|
100
101
|
"rimraf": "6.1.3",
|
|
101
102
|
"start-server-and-test": "3.0.13",
|
|
102
103
|
"typescript": "7.0.2"
|
|
@@ -21,4 +21,5 @@ __exportStar(require("./literaki"), exports);
|
|
|
21
21
|
__exportStar(require("./scrabble"), exports);
|
|
22
22
|
__exportStar(require("./scrabbleDuel"), exports);
|
|
23
23
|
__exportStar(require("./superScrabble"), exports);
|
|
24
|
+
__exportStar(require("./wordfeud"), exports);
|
|
24
25
|
__exportStar(require("./wyrazy"), exports);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Game } from '@scrabble-solver/types';
|
|
2
|
+
export declare const wordfeud: {
|
|
3
|
+
bingo: {
|
|
4
|
+
score: number;
|
|
5
|
+
};
|
|
6
|
+
blankScore: number;
|
|
7
|
+
blanksCount: number;
|
|
8
|
+
boardHeight: number;
|
|
9
|
+
boardWidth: number;
|
|
10
|
+
game: Game;
|
|
11
|
+
name: string;
|
|
12
|
+
rackSize: number;
|
|
13
|
+
bonuses: {
|
|
14
|
+
multiplier: number;
|
|
15
|
+
type: string;
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
}[];
|
|
19
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.wordfeud = void 0;
|
|
4
|
+
const constants_1 = require("@scrabble-solver/constants");
|
|
5
|
+
const types_1 = require("@scrabble-solver/types");
|
|
6
|
+
exports.wordfeud = {
|
|
7
|
+
bingo: { score: 40 },
|
|
8
|
+
blankScore: 0,
|
|
9
|
+
blanksCount: 2,
|
|
10
|
+
boardHeight: 15,
|
|
11
|
+
boardWidth: 15,
|
|
12
|
+
game: types_1.Game.Wordfeud,
|
|
13
|
+
name: 'Wordfeud',
|
|
14
|
+
rackSize: 7,
|
|
15
|
+
bonuses: [
|
|
16
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 0, y: 0 },
|
|
17
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 4, y: 0 },
|
|
18
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 0 },
|
|
19
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 10, y: 0 },
|
|
20
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 14, y: 0 },
|
|
21
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 1 },
|
|
22
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 1 },
|
|
23
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 1 },
|
|
24
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 1 },
|
|
25
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 2 },
|
|
26
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 2 },
|
|
27
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 2 },
|
|
28
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 2 },
|
|
29
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 3, y: 3 },
|
|
30
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 3 },
|
|
31
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 11, y: 3 },
|
|
32
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 4 },
|
|
33
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 4 },
|
|
34
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 4 },
|
|
35
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 4 },
|
|
36
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 4 },
|
|
37
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 4 },
|
|
38
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 5 },
|
|
39
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 5 },
|
|
40
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 5 },
|
|
41
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 5 },
|
|
42
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 6 },
|
|
43
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 6 },
|
|
44
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 6 },
|
|
45
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 6 },
|
|
46
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 7 },
|
|
47
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 7 },
|
|
48
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 7 },
|
|
49
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 7 },
|
|
50
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 8 },
|
|
51
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 8 },
|
|
52
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 8 },
|
|
53
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 8 },
|
|
54
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 9 },
|
|
55
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 9 },
|
|
56
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 9 },
|
|
57
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 9 },
|
|
58
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 10 },
|
|
59
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 10 },
|
|
60
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 10 },
|
|
61
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 10 },
|
|
62
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 10 },
|
|
63
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 10 },
|
|
64
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 3, y: 11 },
|
|
65
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 11 },
|
|
66
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 11, y: 11 },
|
|
67
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 12 },
|
|
68
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 12 },
|
|
69
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 12 },
|
|
70
|
+
{ multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 12 },
|
|
71
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 13 },
|
|
72
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 13 },
|
|
73
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 13 },
|
|
74
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 13 },
|
|
75
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 0, y: 14 },
|
|
76
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 4, y: 14 },
|
|
77
|
+
{ multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 14 },
|
|
78
|
+
{ multiplier: 3, type: constants_1.BONUS_WORD, x: 10, y: 14 },
|
|
79
|
+
{ multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 14, y: 14 },
|
|
80
|
+
],
|
|
81
|
+
};
|
|
@@ -5,9 +5,11 @@ export declare const englishGbLiteraki: Config;
|
|
|
5
5
|
export declare const englishGbScrabble: Config;
|
|
6
6
|
export declare const englishGbScrabbleDuel: Config;
|
|
7
7
|
export declare const englishGbSuperScrabble: Config;
|
|
8
|
+
export declare const englishGbWordfeud: Config;
|
|
8
9
|
export declare const englishUsCrossplay: Config;
|
|
9
10
|
export declare const englishUsLetterLeague: Config;
|
|
10
11
|
export declare const englishUsLiteraki: Config;
|
|
11
12
|
export declare const englishUsScrabble: Config;
|
|
12
13
|
export declare const englishUsScrabbleDuel: Config;
|
|
13
14
|
export declare const englishUsSuperScrabble: Config;
|
|
15
|
+
export declare const englishUsWordfeud: Config;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* eslint-disable max-lines */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.englishUsSuperScrabble = exports.englishUsScrabbleDuel = exports.englishUsScrabble = exports.englishUsLiteraki = exports.englishUsLetterLeague = exports.englishUsCrossplay = exports.englishGbSuperScrabble = exports.englishGbScrabbleDuel = exports.englishGbScrabble = exports.englishGbLiteraki = exports.englishGbLetterLeague = exports.englishGbCrossplay = void 0;
|
|
4
|
+
exports.englishUsWordfeud = exports.englishUsSuperScrabble = exports.englishUsScrabbleDuel = exports.englishUsScrabble = exports.englishUsLiteraki = exports.englishUsLetterLeague = exports.englishUsCrossplay = exports.englishGbWordfeud = exports.englishGbSuperScrabble = exports.englishGbScrabbleDuel = exports.englishGbScrabble = exports.englishGbLiteraki = exports.englishGbLetterLeague = exports.englishGbCrossplay = void 0;
|
|
5
5
|
const types_1 = require("@scrabble-solver/types");
|
|
6
6
|
const games_1 = require("../games");
|
|
7
7
|
exports.englishGbCrossplay = new types_1.Config({
|
|
@@ -197,6 +197,38 @@ exports.englishGbSuperScrabble = new types_1.Config({
|
|
|
197
197
|
{ character: 'z', count: 2, score: 10 },
|
|
198
198
|
],
|
|
199
199
|
});
|
|
200
|
+
exports.englishGbWordfeud = new types_1.Config({
|
|
201
|
+
...games_1.wordfeud,
|
|
202
|
+
locale: types_1.Locale.EN_GB,
|
|
203
|
+
tiles: [
|
|
204
|
+
{ character: 'a', count: 10, score: 1 },
|
|
205
|
+
{ character: 'b', count: 2, score: 4 },
|
|
206
|
+
{ character: 'c', count: 2, score: 4 },
|
|
207
|
+
{ character: 'd', count: 5, score: 2 },
|
|
208
|
+
{ character: 'e', count: 12, score: 1 },
|
|
209
|
+
{ character: 'f', count: 2, score: 4 },
|
|
210
|
+
{ character: 'g', count: 3, score: 3 },
|
|
211
|
+
{ character: 'h', count: 3, score: 4 },
|
|
212
|
+
{ character: 'i', count: 9, score: 1 },
|
|
213
|
+
{ character: 'j', count: 1, score: 10 },
|
|
214
|
+
{ character: 'k', count: 1, score: 5 },
|
|
215
|
+
{ character: 'l', count: 4, score: 1 },
|
|
216
|
+
{ character: 'm', count: 2, score: 3 },
|
|
217
|
+
{ character: 'n', count: 6, score: 1 },
|
|
218
|
+
{ character: 'o', count: 7, score: 1 },
|
|
219
|
+
{ character: 'p', count: 2, score: 4 },
|
|
220
|
+
{ character: 'q', count: 1, score: 10 },
|
|
221
|
+
{ character: 'r', count: 6, score: 1 },
|
|
222
|
+
{ character: 's', count: 5, score: 1 },
|
|
223
|
+
{ character: 't', count: 7, score: 1 },
|
|
224
|
+
{ character: 'u', count: 4, score: 2 },
|
|
225
|
+
{ character: 'v', count: 2, score: 4 },
|
|
226
|
+
{ character: 'w', count: 2, score: 4 },
|
|
227
|
+
{ character: 'x', count: 1, score: 8 },
|
|
228
|
+
{ character: 'y', count: 2, score: 4 },
|
|
229
|
+
{ character: 'z', count: 1, score: 10 },
|
|
230
|
+
],
|
|
231
|
+
});
|
|
200
232
|
exports.englishUsCrossplay = new types_1.Config({
|
|
201
233
|
...games_1.crossplay,
|
|
202
234
|
locale: types_1.Locale.EN_US,
|
|
@@ -390,3 +422,35 @@ exports.englishUsSuperScrabble = new types_1.Config({
|
|
|
390
422
|
{ character: 'z', count: 2, score: 10 },
|
|
391
423
|
],
|
|
392
424
|
});
|
|
425
|
+
exports.englishUsWordfeud = new types_1.Config({
|
|
426
|
+
...games_1.wordfeud,
|
|
427
|
+
locale: types_1.Locale.EN_US,
|
|
428
|
+
tiles: [
|
|
429
|
+
{ character: 'a', count: 10, score: 1 },
|
|
430
|
+
{ character: 'b', count: 2, score: 4 },
|
|
431
|
+
{ character: 'c', count: 2, score: 4 },
|
|
432
|
+
{ character: 'd', count: 5, score: 2 },
|
|
433
|
+
{ character: 'e', count: 12, score: 1 },
|
|
434
|
+
{ character: 'f', count: 2, score: 4 },
|
|
435
|
+
{ character: 'g', count: 3, score: 3 },
|
|
436
|
+
{ character: 'h', count: 3, score: 4 },
|
|
437
|
+
{ character: 'i', count: 9, score: 1 },
|
|
438
|
+
{ character: 'j', count: 1, score: 10 },
|
|
439
|
+
{ character: 'k', count: 1, score: 5 },
|
|
440
|
+
{ character: 'l', count: 4, score: 1 },
|
|
441
|
+
{ character: 'm', count: 2, score: 3 },
|
|
442
|
+
{ character: 'n', count: 6, score: 1 },
|
|
443
|
+
{ character: 'o', count: 7, score: 1 },
|
|
444
|
+
{ character: 'p', count: 2, score: 4 },
|
|
445
|
+
{ character: 'q', count: 1, score: 10 },
|
|
446
|
+
{ character: 'r', count: 6, score: 1 },
|
|
447
|
+
{ character: 's', count: 5, score: 1 },
|
|
448
|
+
{ character: 't', count: 7, score: 1 },
|
|
449
|
+
{ character: 'u', count: 4, score: 2 },
|
|
450
|
+
{ character: 'v', count: 2, score: 4 },
|
|
451
|
+
{ character: 'w', count: 2, score: 4 },
|
|
452
|
+
{ character: 'x', count: 1, score: 8 },
|
|
453
|
+
{ character: 'y', count: 2, score: 4 },
|
|
454
|
+
{ character: 'z', count: 1, score: 10 },
|
|
455
|
+
],
|
|
456
|
+
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/configs",
|
|
3
|
-
"version": "2.18.
|
|
4
|
-
"description": "Game and language configs for Scrabble Solver: board layouts, bonus squares, tile distributions, and points for
|
|
3
|
+
"version": "2.18.9",
|
|
4
|
+
"description": "Game and language configs for Scrabble Solver: board layouts, bonus squares, tile distributions, and points for 9 games and 9 locales.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"scrabble",
|
|
7
7
|
"board-game",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"literaki",
|
|
11
11
|
"kelimelik",
|
|
12
12
|
"wyrazy",
|
|
13
|
+
"wordfeud",
|
|
13
14
|
"super-scrabble"
|
|
14
15
|
],
|
|
15
16
|
"main": "build/index.js",
|
|
@@ -33,8 +34,8 @@
|
|
|
33
34
|
"clean": "rimraf build/"
|
|
34
35
|
},
|
|
35
36
|
"dependencies": {
|
|
36
|
-
"@scrabble-solver/constants": "2.18.
|
|
37
|
-
"@scrabble-solver/types": "2.18.
|
|
37
|
+
"@scrabble-solver/constants": "2.18.9",
|
|
38
|
+
"@scrabble-solver/types": "2.18.9"
|
|
38
39
|
},
|
|
39
40
|
"gitHead": "f029a11f306a01937ee99fc6365cb226b972dfed"
|
|
40
41
|
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { BONUS_CHARACTER, BONUS_WORD } from '@scrabble-solver/constants';
|
|
2
|
+
import { Game } from '@scrabble-solver/types';
|
|
3
|
+
|
|
4
|
+
export const wordfeud = {
|
|
5
|
+
bingo: { score: 40 },
|
|
6
|
+
blankScore: 0,
|
|
7
|
+
blanksCount: 2,
|
|
8
|
+
boardHeight: 15,
|
|
9
|
+
boardWidth: 15,
|
|
10
|
+
game: Game.Wordfeud,
|
|
11
|
+
name: 'Wordfeud',
|
|
12
|
+
rackSize: 7,
|
|
13
|
+
bonuses: [
|
|
14
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 0, y: 0 },
|
|
15
|
+
{ multiplier: 3, type: BONUS_WORD, x: 4, y: 0 },
|
|
16
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 7, y: 0 },
|
|
17
|
+
{ multiplier: 3, type: BONUS_WORD, x: 10, y: 0 },
|
|
18
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 14, y: 0 },
|
|
19
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 1, y: 1 },
|
|
20
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 5, y: 1 },
|
|
21
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 9, y: 1 },
|
|
22
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 13, y: 1 },
|
|
23
|
+
{ multiplier: 2, type: BONUS_WORD, x: 2, y: 2 },
|
|
24
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 6, y: 2 },
|
|
25
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 8, y: 2 },
|
|
26
|
+
{ multiplier: 2, type: BONUS_WORD, x: 12, y: 2 },
|
|
27
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 3, y: 3 },
|
|
28
|
+
{ multiplier: 2, type: BONUS_WORD, x: 7, y: 3 },
|
|
29
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 11, y: 3 },
|
|
30
|
+
{ multiplier: 3, type: BONUS_WORD, x: 0, y: 4 },
|
|
31
|
+
{ multiplier: 2, type: BONUS_WORD, x: 4, y: 4 },
|
|
32
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 6, y: 4 },
|
|
33
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 8, y: 4 },
|
|
34
|
+
{ multiplier: 2, type: BONUS_WORD, x: 10, y: 4 },
|
|
35
|
+
{ multiplier: 3, type: BONUS_WORD, x: 14, y: 4 },
|
|
36
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 1, y: 5 },
|
|
37
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 5, y: 5 },
|
|
38
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 9, y: 5 },
|
|
39
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 13, y: 5 },
|
|
40
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 2, y: 6 },
|
|
41
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 4, y: 6 },
|
|
42
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 10, y: 6 },
|
|
43
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 12, y: 6 },
|
|
44
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 0, y: 7 },
|
|
45
|
+
{ multiplier: 2, type: BONUS_WORD, x: 3, y: 7 },
|
|
46
|
+
{ multiplier: 2, type: BONUS_WORD, x: 11, y: 7 },
|
|
47
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 14, y: 7 },
|
|
48
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 2, y: 8 },
|
|
49
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 4, y: 8 },
|
|
50
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 10, y: 8 },
|
|
51
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 12, y: 8 },
|
|
52
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 1, y: 9 },
|
|
53
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 5, y: 9 },
|
|
54
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 9, y: 9 },
|
|
55
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 13, y: 9 },
|
|
56
|
+
{ multiplier: 3, type: BONUS_WORD, x: 0, y: 10 },
|
|
57
|
+
{ multiplier: 2, type: BONUS_WORD, x: 4, y: 10 },
|
|
58
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 6, y: 10 },
|
|
59
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 8, y: 10 },
|
|
60
|
+
{ multiplier: 2, type: BONUS_WORD, x: 10, y: 10 },
|
|
61
|
+
{ multiplier: 3, type: BONUS_WORD, x: 14, y: 10 },
|
|
62
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 3, y: 11 },
|
|
63
|
+
{ multiplier: 2, type: BONUS_WORD, x: 7, y: 11 },
|
|
64
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 11, y: 11 },
|
|
65
|
+
{ multiplier: 2, type: BONUS_WORD, x: 2, y: 12 },
|
|
66
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 6, y: 12 },
|
|
67
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 8, y: 12 },
|
|
68
|
+
{ multiplier: 2, type: BONUS_WORD, x: 12, y: 12 },
|
|
69
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 1, y: 13 },
|
|
70
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 5, y: 13 },
|
|
71
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 9, y: 13 },
|
|
72
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 13, y: 13 },
|
|
73
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 0, y: 14 },
|
|
74
|
+
{ multiplier: 3, type: BONUS_WORD, x: 4, y: 14 },
|
|
75
|
+
{ multiplier: 2, type: BONUS_CHARACTER, x: 7, y: 14 },
|
|
76
|
+
{ multiplier: 3, type: BONUS_WORD, x: 10, y: 14 },
|
|
77
|
+
{ multiplier: 3, type: BONUS_CHARACTER, x: 14, y: 14 },
|
|
78
|
+
],
|
|
79
|
+
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { Config, Locale } from '@scrabble-solver/types';
|
|
4
4
|
|
|
5
|
-
import { crossplay, letterLeague, literaki, scrabble, scrabbleDuel, superScrabble } from '../games';
|
|
5
|
+
import { crossplay, letterLeague, literaki, scrabble, scrabbleDuel, superScrabble, wordfeud } from '../games';
|
|
6
6
|
|
|
7
7
|
export const englishGbCrossplay = new Config({
|
|
8
8
|
...crossplay,
|
|
@@ -203,6 +203,39 @@ export const englishGbSuperScrabble = new Config({
|
|
|
203
203
|
],
|
|
204
204
|
});
|
|
205
205
|
|
|
206
|
+
export const englishGbWordfeud = new Config({
|
|
207
|
+
...wordfeud,
|
|
208
|
+
locale: Locale.EN_GB,
|
|
209
|
+
tiles: [
|
|
210
|
+
{ character: 'a', count: 10, score: 1 },
|
|
211
|
+
{ character: 'b', count: 2, score: 4 },
|
|
212
|
+
{ character: 'c', count: 2, score: 4 },
|
|
213
|
+
{ character: 'd', count: 5, score: 2 },
|
|
214
|
+
{ character: 'e', count: 12, score: 1 },
|
|
215
|
+
{ character: 'f', count: 2, score: 4 },
|
|
216
|
+
{ character: 'g', count: 3, score: 3 },
|
|
217
|
+
{ character: 'h', count: 3, score: 4 },
|
|
218
|
+
{ character: 'i', count: 9, score: 1 },
|
|
219
|
+
{ character: 'j', count: 1, score: 10 },
|
|
220
|
+
{ character: 'k', count: 1, score: 5 },
|
|
221
|
+
{ character: 'l', count: 4, score: 1 },
|
|
222
|
+
{ character: 'm', count: 2, score: 3 },
|
|
223
|
+
{ character: 'n', count: 6, score: 1 },
|
|
224
|
+
{ character: 'o', count: 7, score: 1 },
|
|
225
|
+
{ character: 'p', count: 2, score: 4 },
|
|
226
|
+
{ character: 'q', count: 1, score: 10 },
|
|
227
|
+
{ character: 'r', count: 6, score: 1 },
|
|
228
|
+
{ character: 's', count: 5, score: 1 },
|
|
229
|
+
{ character: 't', count: 7, score: 1 },
|
|
230
|
+
{ character: 'u', count: 4, score: 2 },
|
|
231
|
+
{ character: 'v', count: 2, score: 4 },
|
|
232
|
+
{ character: 'w', count: 2, score: 4 },
|
|
233
|
+
{ character: 'x', count: 1, score: 8 },
|
|
234
|
+
{ character: 'y', count: 2, score: 4 },
|
|
235
|
+
{ character: 'z', count: 1, score: 10 },
|
|
236
|
+
],
|
|
237
|
+
});
|
|
238
|
+
|
|
206
239
|
export const englishUsCrossplay = new Config({
|
|
207
240
|
...crossplay,
|
|
208
241
|
locale: Locale.EN_US,
|
|
@@ -401,3 +434,36 @@ export const englishUsSuperScrabble = new Config({
|
|
|
401
434
|
{ character: 'z', count: 2, score: 10 },
|
|
402
435
|
],
|
|
403
436
|
});
|
|
437
|
+
|
|
438
|
+
export const englishUsWordfeud = new Config({
|
|
439
|
+
...wordfeud,
|
|
440
|
+
locale: Locale.EN_US,
|
|
441
|
+
tiles: [
|
|
442
|
+
{ character: 'a', count: 10, score: 1 },
|
|
443
|
+
{ character: 'b', count: 2, score: 4 },
|
|
444
|
+
{ character: 'c', count: 2, score: 4 },
|
|
445
|
+
{ character: 'd', count: 5, score: 2 },
|
|
446
|
+
{ character: 'e', count: 12, score: 1 },
|
|
447
|
+
{ character: 'f', count: 2, score: 4 },
|
|
448
|
+
{ character: 'g', count: 3, score: 3 },
|
|
449
|
+
{ character: 'h', count: 3, score: 4 },
|
|
450
|
+
{ character: 'i', count: 9, score: 1 },
|
|
451
|
+
{ character: 'j', count: 1, score: 10 },
|
|
452
|
+
{ character: 'k', count: 1, score: 5 },
|
|
453
|
+
{ character: 'l', count: 4, score: 1 },
|
|
454
|
+
{ character: 'm', count: 2, score: 3 },
|
|
455
|
+
{ character: 'n', count: 6, score: 1 },
|
|
456
|
+
{ character: 'o', count: 7, score: 1 },
|
|
457
|
+
{ character: 'p', count: 2, score: 4 },
|
|
458
|
+
{ character: 'q', count: 1, score: 10 },
|
|
459
|
+
{ character: 'r', count: 6, score: 1 },
|
|
460
|
+
{ character: 's', count: 5, score: 1 },
|
|
461
|
+
{ character: 't', count: 7, score: 1 },
|
|
462
|
+
{ character: 'u', count: 4, score: 2 },
|
|
463
|
+
{ character: 'v', count: 2, score: 4 },
|
|
464
|
+
{ character: 'w', count: 2, score: 4 },
|
|
465
|
+
{ character: 'x', count: 1, score: 8 },
|
|
466
|
+
{ character: 'y', count: 2, score: 4 },
|
|
467
|
+
{ character: 'z', count: 1, score: 10 },
|
|
468
|
+
],
|
|
469
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrabble-solver/dictionaries",
|
|
3
|
-
"version": "2.18.
|
|
3
|
+
"version": "2.18.9",
|
|
4
4
|
"description": "Dictionary manager for Scrabble Solver: downloads per-locale word lists and serves them as GADDAG automata with layered disk/memory caching.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"scrabble",
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@kamilmielnik/gaddag": "3.0.0",
|
|
41
|
-
"@scrabble-solver/logger": "2.18.
|
|
42
|
-
"@scrabble-solver/types": "2.18.
|
|
43
|
-
"@scrabble-solver/word-lists": "2.18.
|
|
41
|
+
"@scrabble-solver/logger": "2.18.9",
|
|
42
|
+
"@scrabble-solver/types": "2.18.9",
|
|
43
|
+
"@scrabble-solver/word-lists": "2.18.9"
|
|
44
44
|
},
|
|
45
45
|
"gitHead": "f029a11f306a01937ee99fc6365cb226b972dfed"
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ZAXBgTNB3tlEK8seyFXPO
|
|
@@ -4,37 +4,37 @@
|
|
|
4
4
|
],
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"lowPriorityFiles": [
|
|
7
|
-
"static/
|
|
8
|
-
"static/
|
|
7
|
+
"static/ZAXBgTNB3tlEK8seyFXPO/_buildManifest.js",
|
|
8
|
+
"static/ZAXBgTNB3tlEK8seyFXPO/_ssgManifest.js"
|
|
9
9
|
],
|
|
10
10
|
"rootMainFiles": [],
|
|
11
11
|
"rootMainFilesTree": {},
|
|
12
12
|
"pages": {
|
|
13
13
|
"/": [
|
|
14
|
-
"static/chunks/webpack-
|
|
14
|
+
"static/chunks/webpack-e8cd77eb7929e1f0.js",
|
|
15
15
|
"static/chunks/framework-86d3b250d278cea9.js",
|
|
16
|
-
"static/chunks/main-
|
|
17
|
-
"static/chunks/744-
|
|
16
|
+
"static/chunks/main-738e097cd313908f.js",
|
|
17
|
+
"static/chunks/744-5ad846426b8f4514.js",
|
|
18
18
|
"static/css/8b8087461767360a.css",
|
|
19
|
-
"static/chunks/pages/index-
|
|
19
|
+
"static/chunks/pages/index-ebba11f9b00e2bb5.js"
|
|
20
20
|
],
|
|
21
21
|
"/_app": [
|
|
22
|
-
"static/chunks/webpack-
|
|
22
|
+
"static/chunks/webpack-e8cd77eb7929e1f0.js",
|
|
23
23
|
"static/chunks/framework-86d3b250d278cea9.js",
|
|
24
|
-
"static/chunks/main-
|
|
24
|
+
"static/chunks/main-738e097cd313908f.js",
|
|
25
25
|
"static/css/4dbcacc1122ac6b9.css",
|
|
26
|
-
"static/chunks/pages/_app-
|
|
26
|
+
"static/chunks/pages/_app-649c89598d664fab.js"
|
|
27
27
|
],
|
|
28
28
|
"/_error": [
|
|
29
|
-
"static/chunks/webpack-
|
|
29
|
+
"static/chunks/webpack-e8cd77eb7929e1f0.js",
|
|
30
30
|
"static/chunks/framework-86d3b250d278cea9.js",
|
|
31
|
-
"static/chunks/main-
|
|
31
|
+
"static/chunks/main-738e097cd313908f.js",
|
|
32
32
|
"static/chunks/pages/_error-f0290a98eb3ed0ec.js"
|
|
33
33
|
],
|
|
34
34
|
"/not-found": [
|
|
35
|
-
"static/chunks/webpack-
|
|
35
|
+
"static/chunks/webpack-e8cd77eb7929e1f0.js",
|
|
36
36
|
"static/chunks/framework-86d3b250d278cea9.js",
|
|
37
|
-
"static/chunks/main-
|
|
37
|
+
"static/chunks/main-738e097cd313908f.js",
|
|
38
38
|
"static/css/dee878eb64099d92.css",
|
|
39
39
|
"static/chunks/pages/not-found-a59f9deeeff63d17.js"
|
|
40
40
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"previewModeId":"
|
|
1
|
+
{"previewModeId":"bb63e296c5b33c4f28499acbbc6c3d4d","previewModeSigningKey":"f1d663a4ee38f9409c49f7503326b0bee068e036237da8e62af08c82005a1f7c","previewModeEncryptionKey":"7264b7e70d1b1221271c4c714dba240d95e0c3f811680e446fae639b42d24cbf","expireAt":1794418943245}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"encryption.key":"
|
|
1
|
+
{"encryption.key":"KqbCh+RNmCaW2iDbEzHi9PlsgS/nsDLJF7cP1sf+zW0=","encryption.expire_at":1794418943243}
|