Learn Basic JavaScript by Building a Role Playing Game - Step 140

Tell us what’s happening:

it need to transform the condition in ternary operator

### Your code so far

function attack() {
  text.innerText = "The " + monsters[fighting].name + " attacks.";
  text.innerText += " You attack it with your " + weapons[currentWeapon].name + ".";
  health -= monsters[fighting].level;
  monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1;
  healthText.innerText = health;
  monsterHealthText.innerText = monsterHealth;
  if (health <= 0) {
    lose();
  } else if (monsterHealth <= 0) {
    if (fighting === 2) {
      winGame();
    } else {
      defeatMonster();
    }
  }
}
health <= 0 ? lose() : (monsterHealth <= 0 ? (fighting === 2 ? winGame() : defeatMonster()) : null);

WARNING

The challenge seed code and/or your solution exceeded the maximum length we can port over from the challenge.

You will need to take an additional step here so the code you wrote presents in an easy to read format.

Please copy/paste all the editor code showing in the challenge from where you just linked.

Replace these two sentences with your copied code.
Please leave the ``` line above and the ``` line below,
because they allow your code to properly format in the post.

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0

Challenge Information:

Learn Basic JavaScript by Building a Role Playing Game - Step 140

Hey @MaryGothic
good work so far only turn the code below to use ternary operator not the whole if statement

Happy coding

and I made this

health <= 0 ? lose() : (monsterHealth <= 0 ? (fighting === 2 ? winGame() : defeatMonster()) : null);

but it doen’t work

Yap because you are using the tenary operator on the whole if statement you only need to convert the nested one ,The one with the “fighting ===2” as a condition

yes I know, it was for explain you the exercice: here my all solution and I don’ t know why return an error

function attack() {
  text.innerText = "The " + monsters[fighting].name + " attacks.";
  text.innerText += " You attack it with your " + weapons[currentWeapon].name + ".";
  health -= monsters[fighting].level;
  monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1;
  healthText.innerText = health;
  monsterHealthText.innerText = monsterHealth;
  
health <= 0 ? lose() : (monsterHealth <= 0 ? (fighting === 2 ? winGame() : defeatMonster()) : null);
}

Tenary operator only takes 3 arguments

condition ?  truthy:falsy

Right now in your code you are having tenary operator with multiple arguments which will not work

Dont change any other thing

Aaaaah I don’t understood the exercise, the ternary expression it was about the second condition! xD

Glad I could be of help Keep up the good work

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.