Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 150 additions & 10 deletions src/clue.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,166 @@
// ITERATION 1

// Suspects Array

const suspectsArray = [];

// Rooms Array

const roomsArray = [];

// Weapons Array
// ITERATION 2


function pickMystery() {}


// ITERATION 3

function revealMystery() {}



const mrGreen = {
firstName: "Jacob",
lastName: "Green",
occupation: "Entrepreneur",
age: 45,
description: "He has a lot of connections",
image: "https://pbs.twimg.com/profile_images/506787499331428352/65jTv2uC.jpeg",
color: "green",
}


const drOrchid = {
firstName: "Doctor",
lastName: "Orchid",
occupation: "Scientist",
age: 26,
description: "PhD in plant toxicology. Adopted daughter of Mr. Boddy",
image: "http://www.radiotimes.com/uploads/images/Original/111967.jpg",
color: "white",
}



const profPlum = {
firstName: "Victor",
lastName: "Plum",
occupation: "Designer",
age: 22,
description: "Billionaire video game designer",
image: "https://66.media.tumblr.com/ee7155882178f73b3781603f0908617c/tumblr_phhxc7EhPJ1w5fh03_540.jpg",
color: "purple",
}



const missScarlet = {
firstName: "Kasandra",
lastName: "Scarlet",
occupation: "Actor",
age: 31,
description: "She is an A-list movie star with a dark past",
image: "https://www.radiotimes.com/uploads/images/Original/111967.jpg",
color: "red",
}



const mrsPeacock = {
firstName: "Eleanor",
lastName: "Peacock",
occupation: "Socialité",
age: 36,
description: "She is from a wealthy family and uses her status and money to earn popularity",
image: "https://metrouk2.files.wordpress.com/2016/07/mrs-peacock.jpg",
color: "blue",
}


const weaponsArray = [];
const mrMustard = {
firstName: "Jack",
lastName: "Mustard",
occupation: "Retired Football player",
age: 62,
description: "He is a former football player who tries to get by on his former glory",
image: "https://static.independent.co.uk/s3fs-public/thumbnails/image/2016/07/04/08/unspecified-3.jpg",
color: "yellow",
}


const suspectsArray = [
mrGreen, drOrchid, profPlum, missScarlet, mrsPeacock, mrMustard
];


const weaponsArray = [
{name: "rope", weight: 10},
{name: "knife", weight: 8},
{name: "candlestick", weight: 2},
{name: "dumbbell", weight: 30},
{name: "poison", weight: 2},
{name: "axe", weight: 15},
{name: "bat", weight: 13},
{name: "trophy", weight: 25},
{name: "pistol", weight: 20},
]



const roomsArray = [
{name: "Dining-Room"},
{name: "Conservatory"},
{name: "Kitchen"},
{name: "Study"},
{name: "Library"},
{name: "Billiard-Room"},
{name: "Lounge"},
{name: "Ballroom"},
{name: "Hall"},
{name: "Spa"},
{name: "Living-Room"},
{name: "Observatory"},
{name: "Theater"},
{name: "Guest-House"},
{name: "Patio"},
]

// ITERATION 2

function selectRandom() {}
function selectRandom(room, weapon, suspect) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Es importante hacerlo en una sola función, ya que de esta manera estas repitiendo código. Fijate que haces un Math.floor y la siguiente lineas accedes al array y lo pusheas.

Sería mucho más fácil si pasandole un array la función te devuelve un elemento.


let randomCard = [];

const randomIndexroom = Math.floor(Math.random() * room.length);

const randomRoom = room[randomIndexroom];

randomCard.push(randomRoom)

const randomIndexweapon = Math.floor(Math.random() * weapon.length);

const randomWeapon = weapon[randomIndexweapon];

randomCard.push(randomWeapon);

const randomIndexsuspect = Math.floor(Math.random() * suspect.length);

const randomSuspect = suspect[randomIndexsuspect];

randomCard.push(randomSuspect);

console.log(randomCard)

return randomCard;

}

const randomCard = selectRandom(roomsArray, weaponsArray, suspectsArray)



function pickMystery() {}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Esta función debería llamar a selectRandom asignar la respuestas a diferentes constantes. Por ejemplo; suspect, room, weapon y después de eso pasarle un objeto ya compuesto a revealMystery. De esta manera revealMystery no necesita saber en que posición del array viene cada cosa sino acceder directamente al objeto.
Imagina que llamas al parámetro mystery.

Podrias acceder de la siguiente manera: mystery.suspect.firstName, mystery.suspect.lastName, mystery.weapon.name y mystery.room.name



// ITERATION 3

function revealMystery() {}
function revealMystery(randomCard) {
return `${randomCard[2].firstName} ${randomCard[2].lastName} killed Mr.Boddy using the ${randomCard[1].name} in the ${randomCard[0].name}`
}

console.log(revealMystery(randomCard))