-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReto #12.js
More file actions
88 lines (73 loc) · 2.62 KB
/
Reto #12.js
File metadata and controls
88 lines (73 loc) · 2.62 KB
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
/**
* Reto #12: ⚔️ Batalla de elfos
*
* Dos elfos están jugando una batalla por turnos. Cada uno tiene un mazo de movimientos que se representan como un string donde cada carácter es una acción.
A Ataque normal: causa 1 punto de daño si no es bloqueado
B Bloqueo: bloquea un ataque normal (A)
F Ataque fuerte: causa 2 puntos de daño, no puede ser bloqueado
Ambos elfos comienzan con 3 puntos de vida. El primer elfo que llegue a 0 puntos de vida o menos pierde y la batalla termina inmediatamente (no se siguen procesando más
movimientos).
Reglas por ronda
Si ambos usan ataque (A o F), ambos reciben daño según el tipo.
B bloquea A, pero no bloquea F.
Todo se resuelve simultáneamente.
Tu tarea
Devuelve el resultado de la batalla como un número:
1 → si el Elfo 1 gana
2 → si el Elfo 2 gana
0 → si empatan (ambos llegan a 0 a la vez o terminan con la misma vida)
*/
console.log(elfBattle('A', 'B'));
// Ronda 1: A vs B -> Elfo 2 bloquea
// Resultado: Elfo 1 = 3 de vida
// Elfo 2 = 3 de vida
// → 0
console.log(elfBattle('F', 'B'));
// Ronda 1: F vs B -> Elfo 2 recibe 2 de daño (F no se bloquea)
// Resultado: Elfo 1 = 3 de vida
// Elfo 2 = 1 de vida
// → 1
console.log(elfBattle('AAB', 'BBA'));
// R1: A vs B → Elfo 2 bloquea
// R2: A vs B → Elfo 2 bloquea
// R3: B vs A → Elfo 1 bloquea
// Resultado: Elfo 1 = 3, Elfo 2 = 3
// → 0
console.log(elfBattle('AFA', 'BBA'));
// R1: A vs B → Elfo 2 bloquea
// R2: F vs B → Elfo 2 recibe 2 de daño (F no se bloquea)
// R3: A vs A → ambos -1
// Resultado: Elfo 1 = 2, Elfo 2 = 0
// → 1
console.log(elfBattle('AFAB', 'BBAF'));
// R1: A vs B → Elfo 2 bloquea
// R2: F vs B → Elfo 2 recibe 2 de daño (F no se bloquea)
// R3: A vs A → ambos -1 → Elfo 2 llega a 0 ¡Batalla termina!
// R4: no se juega, ya que Elfo 2 no tiene vida
// → 1
console.log(elfBattle('AA', 'FF'));
// R1: A vs F → Elfo 1 -2, Elfo 2 -1
// R2: A vs F → Elfo 1 -2, Elfo 2 -1 → Elfo 1 llega a -1
// → 2
/**
* @param {string} elf1 - The moves of the first elf
* @param {string} elf2 - The moves of the second elf
* @return {number} - The result of the battle
*/
function elfBattle(elf1, elf2) {
let elf1Life = 3;
let elf2Life = 3;
for(let i = 0; i < elf1.length; i++){
if(elf1[i]=== 'A' && elf2[i]!== 'B')
elf2Life--;
if(elf2[i]=== 'A' && elf1[i]!== 'B')
elf1Life--;
if(elf1[i]=== 'F')
elf2Life -= 2;
if(elf2[i] === 'F')
elf1Life -= 2;
if(elf1Life <= 0 || elf2Life <= 0)
break;
}
return elf1Life > elf2Life ? 1 : elf2Life > elf1Life ? 2 : 0;
}