El clásico juego de detectives
Cluedo o Clue es un juego de mesa popular que fue producido originalmente por la empresa Parker Brothers y ha sido uno de los juegos favoritos de generaciones de familias. El objetivo del juego es resolver un caso de asesinato preguntando: ¿quién lo hizo? ¿Con qué arma? ¿En qué habitación? Luego, cada vez que haces una sugerencia en cuanto al posible sospechoso, arma y habitación, vas eliminando las posibilidades y acercándote cada vez más a la verdad.
- Clona el repo asignado a tu área de trabajo local
- Una vez resuelto:
$ git add .
$ git commit -m "done"
$ git push origin main
- Abre el fichero de test
SpecRunner.html
con Live Server. - Escribe el código JavaScript en el fichero
src/clue.js
. - Comprueba en tu navegador que los tests van pasando (si lo necesitas refresca la página de los tests)
El Cluedo tiene tres tipos de cartas: suspects, rooms, and weapons. Los tres tipos de cartas siempre están separadas.
Para hacer esto, necesitarás conocer a los personajes (posibles asesinos), armas disponibles y habitaciones de la casa. Toda la información se encuentra disponible en el fichero clue.js
.
Todos los personajes tienen nombre, apellido, trabajo, edad, descripción e imagen.
Hay nueve armas.
El juego representa el plano de una mansión y describe 15 habitaciones diferentes.
Crea una estructura de datos para cada uno de los personajes, armas y habitaciones. Cada documento tendrá toda la información.
Cuando hayas creado estas estructuras sube cada documento a su array correspondiente.
Por ejemplo:
// Characters Collection
const mrsPeacock = {name: "Peacko", edad:33}
const charactersArray = [mrsPeacock,...];
// Rooms' Collection
const dinningRoom = {name:"Dinning Room"}
const roomsArray = [dinningRoom,...];
// Weapons Collection
const rope = {name: "rope",weight: 10}
const weaponsArray = [rope,...];
Tendrás tres arrays: charactersArray
, weaponsArray
y roomsArray
.
Al inicio del juego, los jugadores barajan los mazos de cartas para crear combinaciones de suspect, weapon y room. Este será el misterio a resolver.
Crea una función randomSelector
que seleccione de forma aleatoria un elemento del mazo de cartas. El método recibe un array
como argumento y devuelve un elemento random del array.
Crea una función pickMistery
que llamará a randomSelector
por cada mazo de cartas y devolverá un array con tres cartas escogidas: un personaje, un arma y una habitación.
Para revelar el misterio se ha de crear una función revealMistery
que recibirá el array del misterio como argumento y lo devolverá revelado con este formato:
<FIRST NAME> <LAST NAME> killed Mr.Boddy using the <WEAPON> in the <PLACE>!!!!