-
Notifications
You must be signed in to change notification settings - Fork 0
/
getWinner.js
45 lines (38 loc) · 1.15 KB
/
getWinner.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import playerState from "./playerState.js";
const getIntFromMatrix = function getValueFromConversionMatrix(value) {
const conversionMatrix = {
QUEEN: 12,
KING: 13,
JACK: 11,
ACE: 14,
};
return conversionMatrix[value];
};
const convertValueToInt = function convertCardValueToIntegers(element) {
return element > 0 || element < 11
? parseInt(element)
: getIntFromMatrix(element);
};
const getIntegerArray = (cardsArray) => cardsArray.map(convertValueToInt);
const getValueArray = (cardsArray) => cardsArray.map((card) => card.value);
const compareCards = function (userCard, computerCard) {
return userCard === computerCard
? "draw"
: userCard > computerCard
? "user"
: "computer";
};
const updatePlayersState = function (winner) {
winner === "user"
? (playerState.user += 1)
: winner === "computer"
? (playerState.computer += 1)
: null;
};
const getWinner = function getWinningCard(cardsArray) {
const [userCard, computerCard] = getIntegerArray(getValueArray(cardsArray));
const winner = compareCards(userCard, computerCard);
updatePlayersState(winner);
return winner;
};
export { getWinner };