Files
WebTechnologiak-vizsga/2019-20-1-03/Feladat/gknb_intm049_2019-20-1_03.js
2024-12-06 12:08:15 +01:00

74 lines
1.7 KiB
JavaScript

let jatek = {
lampak: 9,
klikk: 0,
felkapcsolva: function(mezo) {
return mezo && mezo.children.length > 0;
},
atkapcsol: function(mezo) {
if(this.felkapcsolva(mezo)) {
$(mezo).empty().attr("title", "Lámpa lekapcsolva");
return -1;
} else {
$(mezo).append($("<img>").attr({
src: "bulb.svg",
alt: "izzó"
})).attr("title", "Lámpa felkapcsolva");
return 1;
}
},
szomszedok: function(mezo) {
let tomb = [];
if(mezo.previousElementSibling != null) {
tomb.push(mezo.previousElementSibling); // bal
}
if(mezo.nextElementSibling != null) {
tomb.push(mezo.nextElementSibling); // jobb
}
let oszlop = 0;
let gyerek = mezo;
while((gyerek = gyerek.previousElementSibling) != null) {
oszlop++;
}
let sor = mezo.parentNode;
if(sor.previousElementSibling != null) {
tomb.push(sor.previousElementSibling.children[oszlop]); // fent
}
if(sor.nextElementSibling != null) {
tomb.push(sor.nextElementSibling.children[oszlop]); // lent
}
return tomb;
},
kattintas: function(mezo) {
if(this.lampak != 0) {
this.klikk++;
this.lampak += this.atkapcsol(mezo);
let t = this.szomszedok(mezo);
for(let m in t) {
this.lampak += this.atkapcsol(t[m]);
}
if(this.lampak == 0) {
alert("Gratulálunk, Ön minden lámpát lekapcsolt " +
this.klikk + " kattintással!");
}
}
}
};
$(function() {
$("table").click(function(e) {
let mezo = e.target;
if(mezo.tagName == "IMG") {
mezo = mezo.parentNode;
}
if(mezo.tagName == "TD") {
jatek.kattintas(mezo);
}
});
});