-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
96 lines (95 loc) · 2.64 KB
/
script.js
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
document.getElementsByTagName("input")[0].onchange = function(){
if(this.value < 1 || this.value > 120)
return false;
generate(this.value);
};
document.getElementsByTagName("input")[1].onclick = function(){
generate(document.getElementsByTagName("input")[0].value);
};
function rColor() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++)
color += letters[Math.floor(Math.random() * 16)];
return color;
}
function generate(max){
var pola = [];
for(var i = 1; i <= max; i++){
pola.push(rColor());
}
pola = pola.concat(pola);
var set = "<tr>";
var sq = Math.sqrt(pola.length);
for(var i = 0; i < pola.length; i++){
set += "<td></td>";
if((i+1)%Math.round(sq)==0){
set += "</tr>"+(i >= pola.length-1 ? "" : "<tr>");
}
}
if(sq%2!==0)
set += "</tr>";
document.getElementById("mem").innerHTML = set;
var save = [];
var last = null;
var first = null;
var timer = null;
var prev = null;
var done = 0;
var l = pola.length;
for(var i = 0; i < l; i++){
var rand = Math.floor(Math.random()*pola.length);
save[i] = pola[rand];
pola.splice(rand, 1);
document.getElementsByTagName('td')[i].onclick = function(){
if(this.innerHTML.length > 0)
return false;
if(timer != null){
clearTimeout(timer);
timer = null;
prev.style.backgroundColor = "";
prev.style.transform = "";
last.style.transform = "";
last.innerHTML = "";
last.style.backgroundColor = "";
last = null;
timer = null;
prev = null;
}
var val = save[this.parentNode.rowIndex*Math.round(sq)+this.cellIndex];
if(last == null){
if(first == null)
first = Date.now();
this.innerHTML = val;
this.style.backgroundColor = val;
this.style.transform = "rotateY(180deg)";
last = this;
}else if(last.innerHTML == val){
this.innerHTML = val;
this.style.backgroundColor = val;
this.style.transform = "rotateY(180deg)";
last = null;
done += 2;
if(done == l){
d = new Date(Date.now()-first);
d = d < 1000 ? d.getMilliseconds()+"ms" : (d.getMinutes()+"m"+d.getSeconds()+"s").replace("0m", "");
setTimeout(function(){alert("Gratulacje wygrałeś!\nTwój czas to: "+d);},1000);
}
}else{
prev = this;
this.style.backgroundColor = val;
this.style.transform = "rotateY(180deg)";
timer = setTimeout(function(){
prev.style.backgroundColor = "";
prev.style.transform = "";
last.style.transform = "";
last.innerHTML = "";
last.style.backgroundColor = "";
last = null;
timer = null;
prev = null;
},1000);
}
};
}
}