From bd7d723c0251b7a9df8ba5626515364181235f43 Mon Sep 17 00:00:00 2001 From: Playmaker1210 Date: Sun, 15 May 2022 19:44:10 +0200 Subject: [PATCH] mozi --- javascript/mozi/index.html | 32 +++++++++++ javascript/mozi/script.js | 109 +++++++++++++++++++++++++++++++++++++ javascript/mozi/style.css | 41 ++++++++++++++ 3 files changed, 182 insertions(+) create mode 100644 javascript/mozi/index.html create mode 100644 javascript/mozi/script.js create mode 100644 javascript/mozi/style.css diff --git a/javascript/mozi/index.html b/javascript/mozi/index.html new file mode 100644 index 0000000..55a6679 --- /dev/null +++ b/javascript/mozi/index.html @@ -0,0 +1,32 @@ + + + + + + + + + + +
+
+ +
+
+ + + +

+
+
+
+
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/javascript/mozi/script.js b/javascript/mozi/script.js new file mode 100644 index 0000000..7d99349 --- /dev/null +++ b/javascript/mozi/script.js @@ -0,0 +1,109 @@ +/*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; + legutobbiFoglalas = null; +} \ No newline at end of file diff --git a/javascript/mozi/style.css b/javascript/mozi/style.css new file mode 100644 index 0000000..d74a92f --- /dev/null +++ b/javascript/mozi/style.css @@ -0,0 +1,41 @@ +body{ + margin-left: 1%; + margin-right: 1%; + margin-top: 1%; + margin-bottom: 1%; +} + +.flex-container { + display: flex; + background-color: DodgerBlue; + flex-direction: column; + flex-wrap: wrap; + justify-content: center; + padding: 1%; +} + + +.szek{ + background-color: #f1f1f1; + width: 10%; + margin: 1%; + text-align: center; + line-height: 100px; + font-size: 30px; +} + +.sor{ + display: flex; + background-color: purple; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; +} + +.foglalt{ + background-color: red; +} + +.ideiglenes{ + background-color: darkturquoise; +} \ No newline at end of file