- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
Latest commit
125 lines (102 loc) · 3.21 KB
/
Copy pathscript.js
File metadata and controls
125 lines (102 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
//Variables
constheaderStreak=document.getElementById("header-streak");
constheaderBest=document.getElementById("header-best");
constgameTask=document.getElementById("game-task");
constgameInput=document.getElementById("game-input");
constincorrect=document.getElementById("incorrect");
constoverlay=document.getElementById("overlay");
constincorrectCorrection=document.getElementById("incorrect-correction");
constincorrectStreak=document.getElementById("incorrect-streak");
constincorrectGuess=document.getElementById("incorrect-guess");
letstreak=Number(localStorage.getItem("streak"))||0;
letbest=Number(localStorage.getItem("best"))||0;
lettask;
letoperator;
letresult;
//Code
headerStreak.textContent="Streak: "+streak;
headerBest.textContent="Best: "+best;
constsaved=localStorage.getItem("currentTask");
if(saved){
constt=JSON.parse(saved)
operator=t.op
task=t.a+" "+t.op+" "+t.b
result=t.res
gameTask.textContent=task
resetUI()
}else{
resetUI()
generateTask()
}
functionresetUI(){
incorrect.classList.remove("show");
overlay.classList.remove("show");
gameInput.focus();
}
functiongenerateTask(){
resetUI();
letrandomIndex;
leta=Math.floor(Math.random()*100);
letb=Math.floor(Math.random()*100);
letoperators=["+","-","*"];
if(streak<10){
operator=operators[0];
}elseif(streak<20){
randomIndex=Math.floor(Math.random()*2);
operator=operators[randomIndex];
}else{
randomIndex=Math.floor(Math.random()*3);
operator=operators[randomIndex];
}
if(operator==="+"){
result=a+b;
}
if(operator==="-"){
result=a-b;
}
if(operator==="*"){
a=Math.floor(Math.random()*12);
b=Math.floor(Math.random()*12);
result=a*b;
}
task=a+" "+operator+" "+b;
saveTask(a,b,operator,result)
gameTask.textContent=task;
}
functionsaveTask(a,b,op,res){
localStorage.setItem("currentTask",JSON.stringify({ a, b, op, res }))
}
gameInput.addEventListener("keydown",(e)=>{
if(e.key==="Enter"){
tryGuess();
}
});
functiontryGuess(){
letguess=Number(gameInput.value);
if(gameInput.value===""){
return;
}
gameInput.value="";
if(guess===result){
streak++;
localStorage.setItem("streak",streak);
headerStreak.textContent="Streak: "+streak;
generateTask();
if(streak>best){
best=streak;
localStorage.setItem("best",best);
headerBest.textContent="Best: "+best;
}
}else{
incorrect.classList.add("show");
overlay.classList.add("show");
incorrectCorrection.textContent="Correct answer: "+result;
incorrectGuess.textContent="Your answer: "+guess;
incorrectStreak.textContent="Streak: "+streak;
streak=0;
localStorage.setItem("streak",streak);
localStorage.removeItem("currentTask");
headerStreak.textContent="Streak: "+streak;
gameInput.focus();
}
}