Explorer
project
index.css
index.html
index.js
Dependencies
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
//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()
})