@@ -2,9 +2,32 @@ let sumbmitBtn = document.querySelector("#submit");
22let a1Message = document . querySelector ( "#a1-result" ) ;
33let a2Message = document . querySelector ( "#a2-result" ) ;
44let a3Message = document . querySelector ( "#a3-result" ) ;
5- let a4Message = document . querySelector ( "#a4-result" )
6- let num = document . querySelector ( "#numberInput" )
5+ let a4Message = document . querySelector ( "#a4-result" ) ;
6+ let a5Message = document . querySelector ( "#a5-result" ) ;
7+ let num = document . querySelector ( "#numberInput" ) ;
8+ let scoreText = document . querySelector ( "#scoreText" ) ;
9+ const ATTEMPTS_KEY = "quizAttempts" ;
710
11+ let attempts = parseInt ( localStorage . getItem ( ATTEMPTS_KEY ) ?? "0" , 10 ) ;
12+ document . querySelector ( "#attemptsText" ) . textContent = `Attempts: ${ attempts } ` ;
13+
14+ function shuffle ( array ) {
15+ for ( let i = array . length - 1 ; i > 0 ; i -- ) {
16+ const j = Math . floor ( Math . random ( ) * ( i + 1 ) ) ;
17+ [ array [ i ] , array [ j ] ] = [ array [ j ] , array [ i ] ] ;
18+ }
19+ return array ;
20+ }
21+
22+
23+ window . addEventListener ( "DOMContentLoaded" , ( ) => {
24+ const container = document . querySelector ( "#checkbox-container" ) ;
25+ const options = Array . from ( container . querySelectorAll ( ".option" ) ) ;
26+ shuffle ( options ) ;
27+ container . innerHTML = "" ;
28+ options . forEach ( el => container . appendChild ( el ) ) ;
29+ } ) ;
30+
831
932//gernate random order answers
1033// let question3Options = [1,2,3];
@@ -28,58 +51,92 @@ let num = document.querySelector("#numberInput")
2851// radioLabel.for = question3Options[0];
2952// question3Space.appendChild(radioLabel);
3053
31- sumbmitBtn . addEventListener ( 'click' , function ( ) {
54+ sumbmitBtn . addEventListener ( 'click' , function ( e ) {
55+ e . preventDefault ( ) ;
56+ attempts ++ ;
57+ localStorage . setItem ( ATTEMPTS_KEY , String ( attempts ) ) ;
58+ document . querySelector ( "#attemptsText" ) . textContent = `Attempts: ${ attempts } ` ;
59+ let score = 100 ;
3260 let answer1 = document . querySelector ( '#a1' ) . value ;
3361 console . log ( answer1 ) ;
3462 let result = answer1 . toUpperCase ( ) ;
3563 if ( result === "MINECRAFT" ) {
36- a1Message . textContent = "That's right!"
64+ a1Message . textContent = "✅ That's right!"
3765 a1Message . style . color = "green" ;
3866 }
3967 else {
40- a1Message . textContent = "That's incorrect" ;
41- a2Message . style . color = "red" ;
68+ a1Message . textContent = "❌ That's incorrect" ;
69+ a1Message . style . color = "red" ;
70+ score -= 20 ;
4271 }
4372
4473 // let answer2 = document.querySelector("input[name=colors]:checked").value;
4574 // console.log(answer2);
4675
47- let answer2 = document . querySelector ( "input[name=launchers]:checked" ) . value ;
48- if ( answer2 === "steam" ) {
49- a2Message . textContent = "Lucky Guess!" ;
76+ let answer2 = document . querySelector ( "input[name=launchers]:checked" ) ;
77+ if ( answer2 && answer2 . value === "steam" ) {
78+ a2Message . textContent = "✅ Lucky Guess!" ;
5079 a2Message . style . color = "green" ;
5180 }
5281 else {
53- a2Message . textContent = "Nope" ;
54- a2Message . style . color = "red" ;
82+ a2Message . textContent = "❌ Nope" ;
83+ a2Message . style . color = "red" ;
84+ score -= 20 ;
5585 }
5686
5787
5888 let answer3 = document . querySelector ( "#POV" ) ;
5989 let current = answer3 . value ;
6090 console . log ( current ) ;
6191 if ( current === "o1" ) {
62- a3Message . textContent = "Nuh uh" ;
92+ a3Message . textContent = "❌ Nuh uh" ;
6393 a3Message . style . color = "red" ;
94+ score -= 20 ;
6495 }
6596 else if ( current === "o2" ) {
66- a3Message . textContent = "Wrong" ;
97+ a3Message . textContent = "❌ Wrong" ;
6798 a3Message . style . color = "red" ;
99+ score -= 20 ;
68100 }
69101 else if ( current === "o3" ) {
70- a3Message . textContent = "Duh" ;
102+ a3Message . textContent = "✅ Duh" ;
71103 a3Message . style . color = "green" ;
72104 }
73105
74106
75107 let answer4 = document . querySelector ( "#numberInput" ) . value ;
76108 if ( answer4 === "11" ) {
77- a4Message . textContent = "Nice" ;
109+ a4Message . textContent = "✅ Nice" ;
78110 a4Message . style . color = "green" ;
79111 }
80112 else {
81- a4Message . textContent = "Nah" ;
82- a4Message . style . color = "red" ;
113+ a4Message . textContent = "❌ Nah" ;
114+ a4Message . style . color = "red" ;
115+ score -= 20 ;
83116 }
84117
118+ let checked = document . querySelectorAll ( "input[name=recipe]:checked" ) ;
119+ let values = Array . from ( checked ) . map ( cb => cb . value ) ;
120+
121+ let correct = [ "egg" , "sugar" , "pumpkin" ] ;
122+
123+ let isCorrect = values . length === correct . length && correct . every ( item => values . includes ( item ) ) ;
124+
125+ if ( isCorrect ) {
126+ a5Message . textContent = "✅ You got it!" ;
127+ a5Message . style . color = "green" ;
128+ }
129+ else {
130+ a5Message . textContent = "❌ Close, but no!" ;
131+ a5Message . style . color = "red" ;
132+ score -= 20 ;
133+ }
134+ scoreText . textContent = "Score: " + score ;
135+
136+ if ( score > 80 ) {
137+ alert ( "Nice job! You got 100!!!" ) ;
138+ }
139+
140+
141+
85142} ) ;
0 commit comments