{"id":9247,"date":"2022-10-21T15:50:35","date_gmt":"2022-10-21T14:50:35","guid":{"rendered":"https:\/\/stevepedwards.today\/DebianAdmin\/?p=9247"},"modified":"2023-10-28T20:08:23","modified_gmt":"2023-10-28T19:08:23","slug":"javascript-guess-number-game","status":"publish","type":"post","link":"https:\/\/stevepedwards.today\/DebianAdmin\/javascript-guess-number-game\/","title":{"rendered":"JavaScript: Guess Number Game"},"content":{"rendered":"<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_9247\" class=\"pvc_stats all  \" data-element-id=\"9247\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/stevepedwards.today\/DebianAdmin\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n<div><a href=\"https:\/\/www.udemy.com\/course\/the-complete-javascript-course\/\">https:\/\/www.udemy.com\/course\/the-complete-javascript-course\/<\/a><\/div>\n<div>jonas schmedtmann (Udemy):<\/div>\n<div><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-9246\" src=\"https:\/\/stevepedwards.today\/DebianAdmin\/wp-content\/uploads\/2022\/10\/Game.png\" alt=\"\" width=\"1921\" height=\"1033\" \/><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html lang=\"en\"&gt;\r\n  &lt;head&gt;\r\n    &lt;meta charset=\"UTF-8\" \/&gt;\r\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/&gt;\r\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\" \/&gt;\r\n    &lt;link rel=\"stylesheet\" href=\"style.css\" \/&gt;\r\n    &lt;title&gt;Guess My Number!&lt;\/title&gt;\r\n    &lt;script src=\"script.js\" defer&gt;&lt;\/script&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt;\r\n    &lt;header&gt;\r\n      &lt;h1&gt;Guess My Number!&lt;\/h1&gt;\r\n      &lt;p class=\"between\"&gt;(Between 1 and 20)&lt;\/p&gt;\r\n      &lt;button class=\"btn again\"&gt;Play Again!&lt;\/button&gt;\r\n      &lt;div class=\"number\"&gt;?&lt;\/div&gt;\r\n    &lt;\/header&gt;\r\n    &lt;main&gt;\r\n      &lt;section class=\"left\"&gt;\r\n        &lt;input class=\"guess\" type=\"number\"&gt;\r\n        &lt;button class=\"btn check\"&gt;Check!&lt;\/button&gt;\r\n      &lt;\/section&gt;\r\n      &lt;section class=\"right\"&gt;\r\n        &lt;p class=\"message\"&gt;Start guessing...&lt;\/p&gt;\r\n        &lt;p class=\"label-score\"&gt;? Score: &lt;span class=\"score\"&gt;20&lt;\/span&gt;&lt;\/p&gt;\r\n        &lt;p class=\"label-highscore\"&gt;\r\n          ? Highscore: &lt;span class=\"highscore\"&gt;0&lt;\/span&gt;\r\n        &lt;\/p&gt;\r\n      &lt;\/section&gt;\r\n    &lt;\/main&gt;\r\n    \r\n  &lt;\/body&gt;\r\n&lt;\/html&gt;\r\n\r\n<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">let secretNumber = Math.trunc(Math.random() * 20 + 1);\r\n\/\/ state variable - part of the state of the code - not in the DOM\r\nlet score = 20;\r\nlet highscore = 0;\r\n\r\ndocument.querySelector('.check').addEventListener('click', function () {\r\n  const guess = Number(document.querySelector('.guess').value);\r\n\r\n  \/\/ When no input\r\n  if (!guess) {\r\n    document.querySelector('.message').textContent =\r\n      'No Number Entered! Try Again!';\r\n\r\n    \/\/ When player wins\r\n  } else if (guess === secretNumber) {\r\n    document.querySelector('.message').textContent = 'Correct Number! You Win!';\r\n    document.querySelector('.number').textContent = secretNumber;\r\n\r\n    \/\/ change bg on win\r\n    document.querySelector('body').style.backgroundColor = '#60b347';\r\n    \/\/ change text width\r\n    document.querySelector('.number').style.width = '30rem';\r\n\r\n    if (score &gt; highscore) {\r\n      highscore = score;\r\n      document.querySelector('.highscore').textContent = highscore;\r\n    }\r\n\r\n    \/\/ Guess too high\r\n  } else if (guess &gt; secretNumber) {\r\n    if (score &gt; 1) {\r\n      document.querySelector('.message').textContent = 'Too high';\r\n      document.querySelector('.message').style.color = 'red';\r\n      score--;\r\n      document.querySelector('.score').textContent = score;\r\n    } else {\r\n      document.querySelector('.message').textContent = 'You lost the game!';\r\n      document.querySelector('.score').textContent = 0;\r\n    }\r\n\r\n    \/\/ Guess too low\r\n  } else if (guess &lt; secretNumber) {\r\n    if (score &gt; 1) {\r\n      document.querySelector('.message').textContent = 'Too low';\r\n      document.querySelector('.message').style.color = 'yellow';\r\n      score--;\r\n      document.querySelector('.score').textContent = score;\r\n    } else {\r\n      document.querySelector('.message').textContent = 'You lost the game!';\r\n      document.querySelector('.score').textContent = 0;\r\n    }\r\n  }\r\n});\r\n\r\n\/\/ \"Again\" button reset game - really simple method of reloading from server i window.location.reload() so cache is released - so whole page! Would incur traffic and lose highscore value. Now do long version...\r\ndocument.querySelector('.again').addEventListener('click', function () {\r\n  console.log(document.querySelector('.again').value);\r\n  \/\/ window.location.reload()\r\n\r\n  score = 20;\r\n  secretNumber = Math.trunc(Math.random() * 20 + 1);\r\n  document.querySelector('.message').textContent = 'Start guessing...';\r\n  document.querySelector('.score').textContent = '20';\r\n  document.querySelector('.number').textContent = '?';\r\n  document.querySelector('.guess').value = '';\r\n  document.querySelector('body').style.backgroundColor = '#222';\r\n  document.querySelector('.number').style.width = '15rem';\r\n});<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"css\">@import url('https:\/\/fonts.googleapis.com\/css?family=Press+Start+2P&amp;display=swap');\r\n\r\n* {\r\n  margin: 0;\r\n  padding: 0;\r\n  box-sizing: inherit;\r\n}\r\n\r\nhtml {\r\n  font-size: 62.5%;\r\n  box-sizing: border-box;\r\n}\r\n\r\nbody {\r\n  font-family: 'Press Start 2P', sans-serif;\r\n  color: #eee;\r\n  background-color: #222;\r\n  \/* background-color: #60b347; *\/\r\n}\r\n\r\n\/* LAYOUT *\/\r\nheader {\r\n  position: relative;\r\n  height: 35vh;\r\n  border-bottom: 7px solid #eee;\r\n}\r\n\r\nmain {\r\n  height: 65vh;\r\n  color: #eee;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-around;\r\n}\r\n\r\n.left {\r\n  width: 52rem;\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n}\r\n\r\n.right {\r\n  width: 52rem;\r\n  font-size: 2rem;\r\n}\r\n\r\n\/* ELEMENTS STYLE *\/\r\nh1 {\r\n  font-size: 4rem;\r\n  text-align: center;\r\n  position: absolute;\r\n  width: 100%;\r\n  top: 52%;\r\n  left: 50%;\r\n  transform: translate(-50%, -50%);\r\n}\r\n\r\n.number {\r\n  background: #eee;\r\n  color: #333;\r\n  font-size: 6rem;\r\n  width: 15rem;\r\n  padding: 3rem 0rem;\r\n  text-align: center;\r\n  position: absolute;\r\n  bottom: 0;\r\n  left: 50%;\r\n  transform: translate(-50%, 50%);\r\n}\r\n\r\n.between {\r\n  font-size: 1.4rem;\r\n  position: absolute;\r\n  top: 2rem;\r\n  right: 2rem;\r\n  color: greenyellow;\r\n}\r\n\r\n.again {\r\n  position: absolute;\r\n  top: 2rem;\r\n  left: 2rem;\r\n}\r\n\r\n.guess {\r\n  background: none;\r\n  border: 4px solid #eee;\r\n  font-family: inherit;\r\n  color: inherit;\r\n  font-size: 5rem;\r\n  padding: 2.5rem;\r\n  width: 25rem;\r\n  text-align: center;\r\n  display: block;\r\n  margin-bottom: 3rem;\r\n}\r\n\r\n.btn {\r\n  border: none;\r\n  background-color: greenyellow;\r\n  color: #222;\r\n  font-size: 2rem;\r\n  font-family: inherit;\r\n  padding: 2rem 3rem;\r\n  cursor: pointer;\r\n}\r\n\r\n.btn:hover {\r\n  background-color: #ccc;\r\n}\r\n\r\n.message {\r\n  margin-bottom: 8rem;\r\n  height: 3rem;\r\n}\r\n\r\n.label-score {\r\n  margin-bottom: 2rem;\r\n}\r\n\r\n.label-highscore {\r\n  color: greenyellow;\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_9247\" class=\"pvc_stats all  \" data-element-id=\"9247\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/stevepedwards.today\/DebianAdmin\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n<p>https:\/\/www.udemy.com\/course\/the-complete-javascript-course\/ jonas schmedtmann (Udemy): &lt;!DOCTYPE html&gt; &lt;html lang=\"en\"&gt; &lt;head&gt; &lt;meta charset=\"UTF-8\" \/&gt; &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/&gt; &lt;meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\" \/&gt; &lt;link rel=\"stylesheet\" href=\"style.css\" \/&gt; &lt;title&gt;Guess My Number!&lt;\/title&gt; &lt;script src=\"script.js\" defer&gt;&lt;\/script&gt; &lt;\/head&gt; &lt;body&gt; &lt;header&gt; &lt;h1&gt;Guess My Number!&lt;\/h1&gt; &lt;p class=\"between\"&gt;(Between 1 and 20)&lt;\/p&gt; &lt;button class=\"btn again\"&gt;Play Again!&lt;\/button&gt; &lt;div class=\"number\"&gt;?&lt;\/div&gt; &lt;\/header&gt; &lt;main&gt; &lt;section class=\"left\"&gt; &lt;input class=\"guess\" type=\"number\"&gt; <a href=\"https:\/\/stevepedwards.today\/DebianAdmin\/javascript-guess-number-game\/\" class=\"more-link\">...<span class=\"screen-reader-text\">\u00a0 JavaScript: Guess Number Game<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-9247","post","type-post","status-publish","format-standard","hentry","category-post"],"a3_pvc":{"activated":true,"total_views":6,"today_views":0},"_links":{"self":[{"href":"https:\/\/stevepedwards.today\/DebianAdmin\/wp-json\/wp\/v2\/posts\/9247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stevepedwards.today\/DebianAdmin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stevepedwards.today\/DebianAdmin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stevepedwards.today\/DebianAdmin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stevepedwards.today\/DebianAdmin\/wp-json\/wp\/v2\/comments?post=9247"}],"version-history":[{"count":4,"href":"https:\/\/stevepedwards.today\/DebianAdmin\/wp-json\/wp\/v2\/posts\/9247\/revisions"}],"predecessor-version":[{"id":9955,"href":"https:\/\/stevepedwards.today\/DebianAdmin\/wp-json\/wp\/v2\/posts\/9247\/revisions\/9955"}],"wp:attachment":[{"href":"https:\/\/stevepedwards.today\/DebianAdmin\/wp-json\/wp\/v2\/media?parent=9247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stevepedwards.today\/DebianAdmin\/wp-json\/wp\/v2\/categories?post=9247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stevepedwards.today\/DebianAdmin\/wp-json\/wp\/v2\/tags?post=9247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}