scrimba
Note at 2:13
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 2:13
AboutCommentsNotes
Note at 2:13
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

//event listener
document.getElementById("buttonPressed").addEventListener("click", buttonPressed);

//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 () => {
//WRITE YOUR CODE HERE
let n = parseInt(spinningElem.innerHTML, 10) || 0
spinningElem.innerHTML = n+1
if (pushed || n > 98) {
stop(n)
} else {
await sleep(124) //1(2 2)4 ... DEC 24
spin()
}
}

//EDIT THIS FUNCTION
function stop(i){
buttonPressed()
//WRITE YOUR CODE HERE
var diff = Math.abs(targetInt - i - 1)
var message = `so close - try again<br><span style="color:red">(off by ${diff})</span>`
if (diff === 0) {
message = 'right on - you win!';
(()=>{let h=42;let d=(n)=>Math.floor(Math.random()*n);let k=(c)=>{let s=document.createElement('style');s.id='daConfetti';if(!!(window.attachEvent && !window.opera)){s.styleSheet.cssText=c;}else{s.appendChild(document.createTextNode(c));}document.getElementsByTagName('head')[0].appendChild(s);};k('@keyframes u{0%{transform:rotate(0deg);}25%{transform:rotate(10deg);}50%{transform:rotate(0deg);}75%{transform:rotate(-10deg);}100%{transform:rotate(0deg);}};');k('@keyframes m{0%{margin-top:2vh;opacity:0;transform:rotateX(-80deg)}20%{opacity:1.0;margin-top:0vh;margin-left:0vw;transform:rotateX(0deg) rotate('+d(360)+'deg);}100%{opacity:0.4;margin-top:100vh;margin-left:'+d(4)+'vw;transform:rotateX(440deg) rotate(1080deg);}};');let w=document.createElement('div');w.id='daWorld';w.style='animation:u 60s ease-in infinite;position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;';document.body.appendChild(w);while(h--){let o=document.createElement('div');o.style=`pointer-events:none;opacity:0;animation:m ${d(4)+6}s ease-in ${d(4000)}ms infinite;z-index:1000;position:fixed;top:${d(40)}vh;left:${d(100)}vw;font-size:${d(20)+10}px;color:${['#7CE','#5AD','#368DDA','#ACE','#DEF'][d(5)]};`;o.innerHTML=['❃','❄','❅','❆','❇','❈','❉','❊','❋'][d(9)];w.appendChild(o);}})()
}
var result = document.getElementById('result') //display your result message here
result.innerHTML = message

}

//main
setTargetInt();
spin()



Console
/index.html
LIVE