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.
- Haz Fork del repositorio
- Clónalo en tú área de trabajo local
- Una vez resuelto:
$ git add .
$ git commit -m "done"
$ git push origin master
- Haz Pull Request desde la master branch del repositorio con el nombre en la cabecera del mensaje.
Escribe el JavaScript en el fichero src/clue.js
.
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 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
Después de crear esta estructura, crea un array para cada uno de los datos y sube cada documento a su array correspondiente
Por ejemplo:
let mrGreen = {
// Properties
};
let rope = {
// Properties
}
// etc
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.
El ejercicio constará de un test que se correrá mediante el fichero SpecRunner.html
.
Crea un método randomSelector
que seleccione de forma aleatoria un elemento del mazo de cartas. El método recibirá un array
como argumento y devuelve un elemento random del array.
Crea un método 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. El misterio se debe guardar en una variable misteryEnvelope
.
Para revelar el misterio se ha de crear un método revealMistery
que recibirá el array misteryEnvelope
como argumento y devolverá un misterio revelado con este formato:
<FIRST NAME> <LAST NAME> killed Mr.Boddy using the <WEAPON> in the <PLACE>!!!!