From 6942552866b87996fe3a22dea6d58723a67f8ca7 Mon Sep 17 00:00:00 2001 From: Ben Kyd Date: Tue, 13 Apr 2021 13:15:47 +0100 Subject: [PATCH] done language distributions --- client/public/scrabble/index.html | 2 +- server/src/game-logic.js | 12 ++ server/src/game.js | 2 +- server/src/letter-distributions.js | 244 +++++++++++++++++++++++++++++ server/src/socketserver.js | 2 +- 5 files changed, 259 insertions(+), 3 deletions(-) create mode 100644 server/src/letter-distributions.js diff --git a/client/public/scrabble/index.html b/client/public/scrabble/index.html index 00836a3..b4a3df1 100644 --- a/client/public/scrabble/index.html +++ b/client/public/scrabble/index.html @@ -293,7 +293,7 @@ - A1 + Ç8 B4 C3 D2 diff --git a/server/src/game-logic.js b/server/src/game-logic.js index 47e9ec0..25906b4 100644 --- a/server/src/game-logic.js +++ b/server/src/game-logic.js @@ -24,6 +24,18 @@ let ActiveGames = []; function StartGame(lobby) { + // game uses the owners language + const gameowner = Registrar.GetUserByUID(lobby.owneruid); + + + + ActiveGames[lobby.uid] = { + lobbyuid: lobby.uid, + locale: gameowner.locale, + + turn: 0, + + }; } diff --git a/server/src/game.js b/server/src/game.js index 408ba90..702e44c 100644 --- a/server/src/game.js +++ b/server/src/game.js @@ -11,5 +11,5 @@ const GameLogic = require('./game-logic.js') module.exports = { Registrar: Registrar, Lobbies: Lobbies, - Game: GameLogic + Logic: GameLogic } diff --git a/server/src/letter-distributions.js b/server/src/letter-distributions.js new file mode 100644 index 0000000..774b9c0 --- /dev/null +++ b/server/src/letter-distributions.js @@ -0,0 +1,244 @@ + +const Logger = require('./logger.js'); + + +/* +DISTRIBUTIONS OBJECT +{ + tileset: [], + blanktiles: int, + lettercount: int, + dist: [ + {points: 1, letters: [], amounts: []}, + {points: 2, letters: [], amounts: []} + ... + ] +} +*/ +let Distributions = []; + + +Distributions['en'] = { + tileset: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'], + blanktiles: 2, + lettercount: 100, + dist: [ + { + points: 1, + letters: ['E', 'A', 'I', 'O', 'N', 'R', 'T', 'L', 'S', 'U'], + amounts: [12, 9, 9, 8, 6, 6, 6, 4, 4, 4] + }, + { + points: 2, + letters: ['D', 'G'], + amounts: [4, 3] + }, + { + points: 3, + letters: ['B', 'C', 'M', 'P'], + amounts: [2, 2, 2, 2] + }, + { + points: 4, + letters: ['F', 'H', 'V', 'W', 'Y'], + amounts: [2, 2, 2, 2, 2] + }, + { + points: 5, + letters: ['K'], + amounts: [1] + }, + { + points: 8, + letters: ['J', 'X'], + amounts: [1, 1] + }, + { + points: 8, + letters: ['Q', 'Z'], + amounts: [1, 1] + } + ] +}; + +Distributions['pt'] = { + tileset: ['A', 'B', 'C', 'Ç', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Z'], + blanktiles: 3, + lettercount: 120, + dist: [ + { + points: 1, + letters: ['A', 'E', 'I', 'O', 'S', 'U', 'M', 'R', 'T'], + amounts: [14, 11, 10, 10, 8, 7, 6, 6, 5] + }, + { + points: 2, + letters: ['D', 'L', 'C', 'P'], + amounts: [5, 5, 4, 4] + }, + { + points: 3, + letters: ['N', 'B', 'Ç'], + amounts: [4, 3, 2] + }, + { + points: 4, + letters: ['F', 'G', 'H', 'V'], + amounts: [2, 2, 2, 2] + }, + { + points: 5, + letters: ['J'], + amounts: [2] + }, + { + points: 6, + letters: ['Q'], + amounts: [1] + }, + { + points: 8, + letters: ['X', 'Z'], + amounts: [1, 1] + } + ] +}; + +Distributions['es'] = { + tileset: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'L', 'LL', 'M', 'N', 'Ñ', 'O', 'P', 'Q', 'R', 'RR', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z', 'CH'], + blanktiles: 2, + lettercount: 100, + dist: [ + { + points: 1, + letters: ['A', 'E', 'O', 'I', 'S', 'N', 'R', 'U', 'L', 'T'], + amounts: [12, 12, 9, 6, 6, 5, 5, 5, 4, 4] + }, + { + points: 2, + letters: ['D', 'G'], + amounts: [5, 2] + }, + { + points: 3, + letters: ['C', 'B', 'M', 'P'], + amounts: [4, 2, 2, 2] + }, + { + points: 4, + letters: ['H', 'F', 'V', 'Y'], + amounts: [2, 1, 1, 1] + }, + { + points: 5, + letters: ['CH', 'Q'], + amounts: [1, 1] + }, + { + points: 8, + letters: ['J', 'LL', 'Ñ', 'RR', 'X'], + amounts: [1, 1, 1, 1, 1] + }, + { + points: 10, + letters: ['Z'], + amounts: [1] + } + ] +}; + +Distributions['fr'] = { + tileset: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'], + blanktiles: 2, + lettercount: 102, + dist: [ + { + points: 1, + letters: ['E', 'A', 'I', 'N', 'O', 'R', 'S', 'T', 'U', 'L'], + amounts: [15, 9, 8, 6, 6, 6, 6, 6, 6, 5] + }, + { + points: 2, + letters: ['D', 'M', 'G'], + amounts: [3, 3, 2] + }, + { + points: 3, + letters: ['B', 'C', 'P'], + amounts: [2, 2, 2] + }, + { + points: 4, + letters: ['F', 'H', 'V'], + amounts: [2, 2, 2] + }, + { + points: 8, + letters: ['J', 'Q'], + amounts: [1, 1] + }, + { + points: 10, + letters: ['K', 'W', 'X', 'Y', 'Z'], + amounts: [1, 1, 1, 1, 1] + } + ] +}; + +Distributions['cs'] = { + tileset: ['A', 'Á', 'B', 'C', 'Č', 'D', 'Ď', 'E', 'É', 'Ě', 'F', 'G', 'H', 'I', 'Í', 'J', 'K', 'L', 'M', 'N', 'Ň', 'O', 'Ó', 'P', 'R', 'Ř', 'S', 'Š', 'T', 'Ť', 'U', 'Ú', 'Ů', 'V', 'X', 'Y', 'Ý', 'Z', 'Ž'], + blanktiles: 2, + lettercount: 100, + dist: [ + { + points: 1, + letters: ['O', 'A', 'E', 'N', 'I', 'S', 'T', 'V', 'D', 'K', 'L', 'P', 'R'], + amounts: [6, 5 ,5 ,5, 4, 4, 4, 4, 3, 3, 3, 3, 3] + }, + { + points: 2, + letters: ['C', 'H', 'Í', 'M', 'U', 'Á', 'J', 'Y', 'Z'], + amounts: [3, 3, 3, 3, 3, 2, 2, 2, 2] + }, + { + points: 3, + letters: ['B', 'É', 'Ě'], + amounts: [2, 2, 2] + }, + { + points: 4, + letters: ['Ř', 'Š', 'Ý', 'Č', 'Ů', 'Ž'], + amounts: [2, 2, 2, 1, 1, 1] + }, + { + points: 5, + letters: ['F', 'G', 'Ú'], + amounts: [1, 1, 1] + }, + { + points: 6, + letters: ['Ň'], + amounts: [1] + }, + { + points: 7, + letters: ['Ó', 'Ť'], + amounts: [1, 1] + }, + { + points: 8, + letters: ['Ď'], + amounts: [1] + }, + { + points: 8, + letters: ['X'], + amounts: [1] + }, + ] +}; + + +module.exports = { + Distributions: Distributions +}; diff --git a/server/src/socketserver.js b/server/src/socketserver.js index a43b8e5..c9e51ee 100644 --- a/server/src/socketserver.js +++ b/server/src/socketserver.js @@ -133,9 +133,9 @@ function ClientIdentify(socket, args) if (Game.Lobbies.IsLobbyReadyForGame(lobby.uid)) { + const game = Game.Logic.StartGame(lobby); - } }