Review Algorithmic Thinking by Building a Dice Game - Step 7

Tell us what’s happening:

Give me a hint of my mistake.
When the array has three of the same number, your getHighestDuplicates function should update the Three of a Kind radio option with , score = and the total sum of the dice.
This test is failing.

Your code so far

<!-- file: index.html -->

/* file: styles.css */

/* file: script.js */
// User Editable Region

const getHighestDuplicates = (arr) => {
  const counts = {};

  for (let num of arr) {
    if(counts[num]){
      counts[num]++
    }
    else{
      counts[num] = 1;
    }
  } 
  let highestCount = 0;
  for(let num of arr){
   const count = counts[num];
   if(count >=3 && count > highestCount){
     highestCount = count;
   }
   if(count >=4 && count > highestCount){
     highestCount = count;
   }
  }
  const sumOfAllDice = diceValuesArr.reduce((a,b)=> a+b,0);
  if(highestCount >= 4){
    updateRadioOption(1,sumOfAllDice);
  }
  if(highestCount >= 3){
    updateRadioOption(0,sumOfAllDice);
  }
  
    updateRadioOption(5,0);
  
 
};
rollDiceBtn.addEventListener("click", () => {
  if (rolls === 3) {
    alert("You have made three rolls this round. Please select a score.");
  } else {
    rolls++;
    rollDice();
    updateStats();
    getHighestDuplicates(diceValuesArr);
  }
});

// User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36

Challenge Information:

Review Algorithmic Thinking by Building a Dice Game - Step 7

Your reduce is called on the wrong array. Call it on the arr parameter.

2 Likes

Thank you :slight_smile: I got that.