-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAlphabetWar.js
93 lines (89 loc) · 2 KB
/
AlphabetWar.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/**
* Description:
*
* Introduction
*
* There is a war and nobody knows - the alphabet war!
* There are two groups of hostile letters.
* The tension between left side letters and right side letters
* was too high and the war began.
*
* Task
*
* Write a function that accepts fight string consists
* of only small letters and return who wins the fight.
* When the left side wins return Left side wins!,
* when the right side wins return Right side wins!,
* in other case return Let's fight again!.
*
* The left side letters and their power:
*
* w - 4
* p - 3
* b - 2
* s - 1
*
* The right side letters and their power:
*
* m - 4
* q - 3
* d - 2
* z - 1
*
* The other letters don't have power and are only victims.
*
* Example
*
* alphabetWar("z"); //=> Right side wins!
* alphabetWar("zdqmwpbs"); //=> Let's fight again!
* alphabetWar("zzzzs"); //=> Right side wins!
* alphabetWar("wwwwwwz"); //=> Left side wins!
*
*
* Kata URL: https://www.codewars.com/kata/59377c53e66267c8f6000027
*
*
* @param {*} fight
* @returns
*/
function alphabetWar(fight) {
const weightedLetters = {
leftSideLetters: {
w: 4,
p: 3,
b: 2,
s: 1,
},
rightSideLetters: {
m: 4,
q: 3,
d: 2,
z: 1,
},
};
let leftSideScore = 0;
let rightSideScore = 0;
for (let i = 0; i < fight.length; i++) {
try {
if (
"undefined" != typeof weightedLetters.leftSideLetters[fight.charAt(i)]
) {
leftSideScore += weightedLetters.leftSideLetters[fight.charAt(i)];
}
} catch (error) {}
try {
if (
"undefined" != typeof weightedLetters.rightSideLetters[fight.charAt(i)]
) {
rightSideScore += weightedLetters.rightSideLetters[fight.charAt(i)];
}
} catch (error) {}
}
if (leftSideScore === rightSideScore) {
return "Let's fight again!";
} else if (leftSideScore > rightSideScore) {
return "Left side wins!";
} else {
return "Right side wins!";
}
}