Commit bc05386ef4a5abeb622a5c1b6361cf5719d9865c
add helper to print current turn
mix irving committed on 8/13/2017, 3:24:37 AMParent: 4d3dec1ae29aecc29509c5669ac22916d9256368
Files changed
printTurn.js | added |
printTurn.js | |||
---|---|---|---|
@@ -1,0 +1,32 @@ | |||
1 … | +const { players, currentTurn } = require('./state') | ||
2 … | + | ||
3 … | +printTurn() | ||
4 … | + | ||
5 … | +function printTurn () { | ||
6 … | + const orderedPlayers = alphabetize(players) | ||
7 … | + const currentPlayer = getCurrentTurnPlayer(orderedPlayers, currentTurn) | ||
8 … | + | ||
9 … | + orderedPlayers | ||
10 … | + .forEach((p, index) => { | ||
11 … | + | ||
12 … | + const symbol = p.key === currentPlayer.key | ||
13 … | + ? '> ' | ||
14 … | + : ' ' | ||
15 … | + process.stdout.write(`${symbol} ${p.name}\n`) | ||
16 … | + }) | ||
17 … | +} | ||
18 … | + | ||
19 … | +function alphabetize (players) { | ||
20 … | + return Object.keys(players) | ||
21 … | + .map(k => Object.assign({}, players[k], { key: k })) | ||
22 … | + .sort((a, b) => a.surname > b.surname ? 1 : -1) | ||
23 … | +} | ||
24 … | + | ||
25 … | +function getCurrentTurnPlayer (orderedPlayers, currentTurn) { | ||
26 … | + return orderedPlayers[(currentTurn - 1) % orderedPlayers.length] | ||
27 … | + | ||
28 … | + // This is going to break real bad when: | ||
29 … | + // - people join the game | ||
30 … | + // - people are 'inactive' in some capacity | ||
31 … | +} | ||
32 … | + |
Built with git-ssb-web