done language distributions

This commit is contained in:
Ben Kyd
2021-04-13 13:15:47 +01:00
parent 2682c5d680
commit 6942552866
5 changed files with 259 additions and 3 deletions

View File

@@ -293,7 +293,7 @@
</div>
</div>
<piece class="unselectable unplayed-piece">A<score>1</score></piece>
<piece class="unselectable unplayed-piece">Ç<score>8</score></piece>
<piece class="unselectable unplayed-piece">B<score>4</score></piece>
<piece class="unselectable unplayed-piece">C<score>3</score></piece>
<piece class="unselectable unplayed-piece">D<score>2</score></piece>

View File

@@ -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,
};
}

View File

@@ -11,5 +11,5 @@ const GameLogic = require('./game-logic.js')
module.exports = {
Registrar: Registrar,
Lobbies: Lobbies,
Game: GameLogic
Logic: GameLogic
}

View File

@@ -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
};

View File

@@ -133,9 +133,9 @@ function ClientIdentify(socket, args)
if (Game.Lobbies.IsLobbyReadyForGame(lobby.uid))
{
const game = Game.Logic.StartGame(lobby);
}
}