scrimba
Note at 1:38
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

Note at 1:38
AboutCommentsNotes
Note at 1:38
Expand for more info
index.js
run
preview
console
//HINT: ONLY EDIT THE SPIN() AND STOP() FUNCTIONS

//globals
var pushed = false //Has the stop button been pushed - false is default
var targetInt; //The target number to stop the wheel on
var spinningElem = document.getElementById('spinning'); //The spinning number
var difficultyMillisec = 50 // See sleep usage and Hard/Easy Buttons

//event listener
const buttonStop = document.getElementById("buttonPressed")
buttonStop.addEventListener("click", buttonPressed);
const buttonReset = document.getElementById("buttonReset")
const buttonHard = document.getElementById("buttonHard")
const buttonEasy = document.getElementById("buttonEasy")
console.log(buttonReset)


//When the stop button is pushed
function buttonPressed(){
pushed = true;
}

//set the target Int
function setTargetInt(){
var targetElem = document.getElementById('targetNum');
targetInt=Math.floor(Math.random() * 101)
targetElem.innerHTML = targetInt;
}

//sleep const
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds))
}



//EDIT THIS FUNCTION
const spin = async () => {
console.log(difficultyMillisec)
let currentNumber = 0
while (!pushed) {
currentNumber = currentNumber + 1 <= 100 ? currentNumber + 1 : 0
spinningElem.innerHTML = currentNumber
await sleep(difficultyMillisec)
}
stop(currentNumber);
}

//EDIT THIS FUNCTION
function stop(finalNumber){
let finalDifference = Math.abs(finalNumber - targetInt)
let message;
if (finalDifference === 0) {
message = "🎉 You're the Number Wheel Champion! 💪"
} else if (finalDifference < 3) {
message = "😀 So close, keep going! 🤩"
} else if (finalDifference < 10) {
message = "🏋️‍♀️ Keep Working At It! 🏋️"
} else {
message = "🧊 Whoops! Better luck next time! 🥶"
}

if (difficultyMillisec < 50) {
message = "🔥 Hotshot Mode Enabled! 🤖<br>" + message
}

var result = document.getElementById('result').innerHTML = `${message}<br> Off By ${finalDifference}`
flipButtonDisplays()
}

//TRIGGERED BY GAME END/RESET
function flipButtonDisplays() {
buttonStop.classList.toggle('hidden')
buttonReset.classList.toggle('hidden')
buttonHard.classList.toggle('hidden')
buttonEasy.classList.toggle('hidden')
}

function clearResult() {

}

//main
setTargetInt();
spin()

//RESTART MAIN
// Could refactor this somehow, maybe into actual main function
buttonReset.addEventListener("click", ()=>{
document.getElementById('result').innerHTML = ''
flipButtonDisplays()
pushed = false
setTargetInt();
spin()
})

buttonHard.addEventListener("click", ()=>{
document.getElementById('result').innerHTML = ''
difficultyMillisec = Math.floor(difficultyMillisec / 2)
flipButtonDisplays()
pushed = false
setTargetInt();
spin()
})

buttonEasy.addEventListener("click", ()=>{
document.getElementById('result').innerHTML = ''
difficultyMillisec = difficultyMillisec * 4
flipButtonDisplays()
pushed = false
setTargetInt();
spin()
})

Console
<button
class=
"hidden"
id=
"buttonReset"
>
,
50
,
25
,
12
,
6
,
24
,
96
,
384
,
/index.html
LIVE