HTML Academy
New conditions
Objects16/30
Back to the list of tasks
  • 1. Shall we play?
  • 2. Players, let’s start!
  • 3. My attempt number one
  • 4. Hello, object!
  • 5. Reading from the object
  • 6. Count off!
  • 7. Overriding object properties
  • 8. Passing object by a link
  • 9. My game
  • 10. Giving out the attempts
  • 11. Who is the winner?
  • 12. Announce the entire list, please
  • 13. Looking for a cat with great results
  • 14. No one will hide
  • 15. New conditions
  • 16. Hard to come across
  • 17. Let’s bring it all to light
  • 18. Roll the dice, gentlemen cats!
  • 19. Let’s make adjustments
  • 20. Summary of “Objects”. Part 1
  • 21. Tenth program: “Golden ball”
  • 22. Build it yourself!
  • 23. My first method
  • 24. Implementing methods
  • 25. Object as a dictionary
  • 26. Bracket notation
  • 27. Let’s not forget about the context
  • 28. Store check
  • 29. Summary of “Objects”. Part 2
  • 30. Eleventh program: “The house that Muffin built”
Let’s bring it all to light
  • Sign up
  • Log in

Loading…
Everything will be ready in few seconds

  • Theory
  • Theory
  • Comments

Hard to come across

We wrote another function and now the program knows how to determine the winners of the game, but so it doesn’t log them anywhere. Let’s add to the code so that the names of the winners and their game points are logged in the console.

To begin with, let’s create the printWinners function and handle a rare situation, when all players roll the same number of points. The more players we have, the less is the probability of a tie, but this can happen, and we must take into account this turn of events.

How to determine that all cats scored the same number of points? All we have to do is transfer the array of players and the array of winners to the printWinners function and check the lengths of these arrays. If they match, then we have a collective draw. After all, there cannot be more winners than players, and if they are fewer of them, then not everyone has won.

Comments

  • script.js
JavaScript
var gameRules = { diceNumber: 2, maxAttempts: 3 }; var firstCat = { name: 'Muffin', points: 0 }; var secondCat = { name: 'Rudolph', points: 0 }; var cats = [firstCat, secondCat]; var runGame = function (rules, players) { for (var currentAttempt = 1; currentAttempt <= rules.maxAttempts; currentAttempt++) { for (var i = 0; i < players.length; i++) { var throwResult = muffin.throwDice(rules.diceNumber, rules.diceNumber * 6); players[i].points += throwResult; console.log(players[i].name + ' rolled ' + players[i].points); } } return players; }; var getWinners = function (players) { var winners = []; var max = players[0]; for (var i = 0; i < players.length; i++) { var currentPlayer = players[i]; if (currentPlayer.points > max.points) { max = currentPlayer; winners = [max]; } else if (currentPlayer.points === max.points) { winners.push(currentPlayer); } } return winners; }; cats = runGame(gameRules, cats); console.log(cats); var tops = getWinners(cats); console.log(tops);

What didn’t you like in this task?

Thanks! We’ll fix everything at once!

Console

The code has changed, click “Run” or turn autorun on.

Result

Goalscompleted
  1. After the getWinners function, declare a function printWinners with parameters players and winners.
  2. At the end of the program, call printWinners with arguments cats and tops.
  3. Inside the printWinners function, add a check for equality of lengths of arrays players and winners.
  4. If the condition is fulfilled, log 'All cats rock!' in the console.

Cookies ∙ Privacy ∙ License Agreement ∙ About ∙ Contacts ∙ © HTML Academy OÜ, 2019−2025

VISAMastercard

Log in

or

Forgot your password?

Sign up

Sign up

or
Log in

Restore access

Have you forgotten your password or lost access to your profile? Enter your email connected to your profile and we will send you a link to restore access.

Forgot to connect your email to the profile? Email us and we’ll help.