-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
112 lines (106 loc) · 2.36 KB
/
index.html
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
<!DOCTYPE html>
<html lang = "EN">
<head>
<title>Numble</title>
<h1>Numble</h1>
</head>
<body>
<font face = "Consolas">
<p id = "score">Current score: 0 pts</p>
<p id = "code">Type in...</p>
<button onclick = "clk(1)">1</button>
<button onclick = "clk(2)">2</button>
<button onclick = "clk(3)">3</button><br>
<button onclick = "clk(4)">4</button>
<button onclick = "clk(5)">5</button>
<button onclick = "clk(6)">6</button><br>
<button onclick = "clk(7)">7</button>
<button onclick = "clk(8)">8</button>
<button onclick = "clk(9)">9</button><br>
<button onclick = "clk(0)">0</button>
<button onclick = "backspace()">x</button>
<button onclick = "submit()">Submit</button>
<p>Histories:</p>
<p id = "history"></p>
<font/>
<script>
var n = prompt("Input number of digits:", 6)
var hr_pos = 0
var ans_code = []
ans_code.length = n
var ans_key = []
ans_key.length = n
for(let i = 0; i < n; i++) {
ans_key[i] = Math.floor(Math.random() * 10)
}
var tot_score = 0
var winned = false
function get_code() {
if(hr_pos == 0) {
return "Type in..."
} else {
var disp = ""
for(let i = 0; i < hr_pos; i++) {
disp += ans_code[i]
}
return disp
}
}
function get_score() {
var cur_score = 0
for(let i = 0; i < n; i++) {
if(ans_code[i] == ans_key[i]) {
cur_score++
}
}
for(let t = 0; t < 10; t++) {
var cnt_code = 0, cnt_ans = 0
for(let i = 0; i < n; i++) {
if(ans_code[i] == t) {
cnt_code++
}
if(ans_key[i] == t) {
cnt_ans++
}
}
cur_score += Math.min(cnt_code, cnt_ans)
}
return cur_score
}
function rfr_code() {
document.getElementById("code").innerHTML = get_code()
}
function clk(x) {
if(hr_pos < n) {
ans_code[hr_pos] = x
hr_pos++
rfr_code()
}
}
function backspace() {
if(hr_pos > 0) {
hr_pos--
rfr_code()
}
}
function submit() {
if(hr_pos == n) {
var cur_score = get_score()
document.getElementById("history").innerHTML += get_code() + " " + cur_score + " pts<br>"
if(!winned) {
tot_score += n * 2 - cur_score
document.getElementById("score").innerHTML = "Current score: " + tot_score + " pts"
}
ans_code = []
ans_code.length = n
hr_pos = 0
rfr_code()
if(cur_score == n * 2) {
winned = true
document.getElementById("score").innerHTML += " (completed)"
}
}
}
</script>
</body>
</html>