Files

109 lines
5.2 KiB
JavaScript
Raw Permalink Normal View History

2022-05-15 19:44:10 +02:00
/*Egy vidéki kis moziteremben 10 sor, soronként 8 szék található. Készíts olyan weboldalt, amely segítségével le lehet foglalni széket/székeket! Az oldal jelenítse meg a székeket, a foglalások pillanatnyi állapotát! Ránézésre meg lehessen állapítani, hogy melyik szék foglalt, és melyik nem. Ha egy szék már foglalt, akkor azt még egyszer ne lehessen lefoglalni. A székek lefoglalását lehessen visszavonni.
Az oldal legyen minél dizájnosabb! Ügyelj arra, hogy az oldal reszponzív legyen!
A leírtak a feladat minimumkövetelményét tartalmazzák, természetesen ötletekkel és megvalósítással bővíthető.
Erre a feladatra mindenki jegyet kap (az is aki nem küldi be határidőre).*/
let ulohelyek = [
[0,0,0,0,0,0,0,0], //1.sor
[0,0,0,0,0,0,0,0], //2.sor
[0,0,0,0,0,0,0,0], //3.sor
[0,0,0,0,0,0,0,0], //4.sor
[0,0,0,0,0,0,0,0], //5.sor
[0,0,0,0,0,0,0,0], //6.sor
[0,0,0,0,0,0,0,0], //7.sor
[0,0,0,0,0,0,0,0], //8.sor
[0,0,0,0,0,0,0,0], //9.sor
[0,0,0,0,0,0,0,0] //10.sor
/*
0 a nem lefoglalt szek
1 az ideiglenesen lefoglalt szek
2 a lefoglalt szek
*/
]
let legutobbiFoglalas = ""; //legutoljara lefoglalt szekek eltarolasa formatum: sor,oszlop;sor,oszlop;
/*console.log(ulohelyek.length);
console.log(ulohelyek[0].length);
console.log(ulohelyek[0][0].length);*/
function ulohelyekGeneralas(){
let terem = document.getElementById("szekek"); //szekeket tartalmozo div lekerese
for (let i = 0; i < ulohelyek.length; i++) {
let sor = document.createElement("div"); //uj sor div letrehozasa
sor.setAttribute("id", "sor-" + (i+1)); //megfelelelo id beallitasa a sorhoz | formatum: sor-1; sor-2
sor.setAttribute("value", i); //ertek beallitasa a script muveletekhez
sor.setAttribute("class", "sor"); //sor css osztaly hozzarendeles a flexbox miatt
for (let j = 0; j < ulohelyek[i].length; j++) {
let szek = document.createElement("button"); //szekek legeneralasa a sorhoz
szek.setAttribute("id","sor-" + (i+1) + "_szek-" + (j+1)); //id beallitasa | formatum: sor-1_szek-1
szek.setAttribute("value", j); //ertek beallitasa a script muveletekhez
szek.setAttribute("class", "szek"); //szek osztaly hozzarendeles
szek.setAttribute("onclick", "ideiglenesFoglalas(" + i + ", this.value)"); //ideiglenes foglalashoz a fuggveny hozza adasa ha a gombra van kattintva
let text = document.createTextNode(j+1); //szoveg hozzaadasa a gombhoz
szek.appendChild(text); //szoveg hozza adasa a gombhoz
sor.appendChild(szek); //aktualis szek hozza adasa a sorhoz
}
terem.appendChild(sor); //sor hozzaadasa a divhez
}
}
function ideiglenesFoglalas(sor, szek){
console.log("sor: " + sor + " szek: " + szek);
let akt_szek = document.getElementById("sor-" + (sor+1) + "_szek-" + (parseInt(szek)+1)); //aktualis szek eltarolasa
console.log("sor-" + (sor+1) + "_szek-" + (parseInt(szek)+1)); //id kiirasa
if(ulohelyek[sor][szek] == 0){ //nulla vizsgalat mert ha 2 az ertek akkor ne allitsa at
ulohelyek[sor][szek] = 1; //ideiglenes foglalas beallitasa
akt_szek.setAttribute("class", "szek ideiglenes"); //hatter atallitasa kekre
}
else if(ulohelyek[sor][szek] == 1){ //megvizsgalni ha mar pirosan foglalt akkor ne lehessen levenni a foglalast
ulohelyek[sor][szek] = 0;
akt_szek.setAttribute("class", "szek"); //ha levesszuk a kijelolest vissza all a hatter
}
let kiir = "";
for (let i = 0; i < ulohelyek.length; i++) {
for (let j = 0; j < ulohelyek[i].length; j++) {
kiir += ulohelyek[i][j] + " ";
}
console.log(kiir);
kiir = "";
}
}
function leFoglalas(){
legutobbiFoglalas = ""; //elozo foglalasok torlese mivel nem lettek visszamondva
for (let i = 0; i < ulohelyek.length; i++) {
for (let j = 0; j < ulohelyek[i].length; j++) {
//ulohelyek[i][j] = 1; tesztelesre minden ulohely lefoglalasa
if(ulohelyek[i][j] == 1){
ulohelyek[i][j] = 2;
let szek = document.getElementById("sor-" + (i+1) + "_szek-" + (j+1));
console.log("sor-" + (i+1) + "_szek-" + (j+1));
szek.setAttribute("class", "szek foglalt");
legutobbiFoglalas += i + "," + j + ";"; //legutobbi foglalt szek eltarolasa a visszamondashoz
}
}
}
console.log("Legutobb foglalt szekek: " + legutobbiFoglalas);
}
function legutobbiFoglalasVisszaMondas(){
let szekek = legutobbiFoglalas.split(";");
console.log("Foglalas vissza mondasa");
for (let i = 0; i < szekek.length - 1; i++) {
let sor = parseInt(szekek[i].split(",")[0]);
let szek = parseInt(szekek[i].split(",")[1]);
console.log("sor: " + sor + " szek: " + szek + " i:" + i);
let akt_szek = document.getElementById("sor-" + (sor+1) + "_szek-" + (szek+1));
console.log("sor-" + (sor+1) + "_szek-" + (szek+1));
akt_szek.setAttribute("class", "szek");
ulohelyek[sor][szek] = 0;
}
szekek = null;
2022-05-18 17:59:01 +02:00
legutobbiFoglalas = "";
2022-05-15 19:44:10 +02:00
}