Review DOM Manipulation by Building a Rock, Paper, Scissors Game - Step 4

Tell us what’s happening:

I know that I need the updated results of computer’s and player’s scores. Inside getRoundResults() I have those scores updated, but I’m not getting how to call those scores correctly. Can you help me, please?

Your code so far

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

/* file: styles.css */

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

const playerScoreSpanElement = document.getElementById("player-score");
const computerScoreSpanElement = document.getElementById("computer-score");
const roundResultsMsg = document.getElementById("results-msg");

function showResults(userOption) {
playerScoreSpanElement.innerText = getRoundResults(playerScore);
computerScoreSpanElement.innerText = getRoundResults(computerScore);
roundResultsMsg.innerText = getRoundResults(userOption);
};

showResults("Rock");

// 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/134.0.0.0 Safari/537.36

Challenge Information:

Review DOM Manipulation by Building a Rock, Paper, Scissors Game - Step 4

you are right that getRoundResults updates playerScore and computerScore, but remember that those are global variables, after they are updated you can reference them normally

look at getRoundResults, what arguments does the function expect?

userOption, right?
I tried to use just that variables like “playerScoreSpanElement.innerText = playerScore;”, but doesn’t work as well because the playerScore was supposed to be updated.

so you should do that after it is updated

Sorry, but i dunno what i can do more. :worried:

share your updated code

playerScoreSpanElement.innerText = playerScore(getRoundResult(userOption));

that doesn’t look correct, is playerScore a function?

I meant sharing the whole showResults function

function showResults(userOption) {

playerScoreSpanElement.innerText = playerScore;

computerScoreSpanElement.innerText = computerScore;

roundResultsMsg.innerText = getRoundResults(userOption);

};

No, playerScore is a variable.

Now I changed the order and worked. Why?

function showResults(userOption) {
roundResultsMsg.innerText = getRoundResults(userOption);
playerScoreSpanElement.innerText = playerScore;
computerScoreSpanElement.innerText = computerScore;

};

because if you do this first

then playerScore and computerScore have not been updated yet, so you are adding their old value to the html

Instead you want to add the updated value to the html

This solution worked for me, I hope it helps you.

removed

This solution worked for me, I hope it helps you. continue.



Please do not:

  • reply to months old posts
  • post solution code to the forum

It is great that you solved the challenge, but instead of posting your full working solution, it is best to stay focused on answering the original poster’s question(s) and help guide them with hints and suggestions to solve their own issues with the challenge. How to Help Someone with Their Code Using the Socratic Method

We are trying to cut back on the number of spoiler solutions found on the forum and instead focus on helping other campers with their questions and definitely not posting full working solutions.