commit 4bdaa9ba8d40f3bb7f46d862493484e884195e2a Author: Buduf Date: Tue Nov 2 07:56:51 2021 +0100 Initial commit diff --git a/aranyjanos/ballada.js b/aranyjanos/ballada.js new file mode 100644 index 0000000..d53806a --- /dev/null +++ b/aranyjanos/ballada.js @@ -0,0 +1,119 @@ +var cimek = [ + "A walesi bárdok", + "Ágnes asszony", + "Az örök zsidó", + "Híd-avatás", + "Szondi két apródja", + "Tengerihántás", + "Tetemre hívás", + "V. László", + "Vörös Rébék" +]; +var tema = [ + "történelmi", + "népi", + "népi", + "lélektani", + "történelmi", + "népi", + "lélektani", + "történelmi", + "népi" +] +var szerkezet = [ + "lineáris", + "körkörös", + "lineáris", + "lineáris", + "többszólamú", + "többszólamú", + "lineáris", + "többszólamú", + "lineáris" +] +var balladak; +var vers = [], szavak = []; +var first = true; +var index; + +function init() { + balladak = document.getElementById("ballada"); + for (var i = 0; i < cimek.length; i++) { + var option = document.createElement("option"); + option.text = cimek[i]; + balladak.add(option); + } +} + +function loadBallada() { + var selected = balladak.options[balladak.selectedIndex].text; + if (first) { + if (selected != "Ballada kiválasztása...") { + balladak.remove(0); + document.getElementById("vers").style.paddingBottom = "24px"; + first = false; + } + } + if (!first) { + index = balladak.selectedIndex; + var xhttp = new XMLHttpRequest(); + xhttp.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + vers = this.responseText.split("\r\n"); + document.getElementById("vers").innerHTML = vers.join("
"); + count(); + } + }; + xhttp.open("GET", "balladák/" + selected + ".txt", true); + xhttp.send(); + } +} + +function count() { + szavak = []; + var versszak = 0, verssor = 0, soros = vers.indexOf(""), szavakcnt = 0, karakterek = 0, korszak = ""; + var ev = parseInt(vers[vers.length-1].substring(1,5)); + if (ev <= 1851) { + korszak = "Nagyszalonta"; + } + else if (ev <= 1860) { + korszak = "Dalias idők (Nagykőrös)"; + } + else if (ev <= 1882) { + korszak = "Őszikék (Pest)"; + } + for (var i = 0; i < vers.length; i++) { + if (vers[i] == "") { + versszak++; + } + } + verssor = versszak * soros; + var sorok = 0; + for (var vsz = 0; vsz < versszak; vsz++) { + szavak[vsz] = new Array(soros); + for (var sor = 0; sor < szavak[vsz].length-1; sor++) { + szavak[vsz][sor] = []; + szavak[vsz][sor] = vers[sorok].trim().split(' '); + szavakcnt += szavak[vsz][sor].length; + sorok++; + for (var szo = 0; szo < szavak[vsz][sor].length; szo++) { + karakterek += szavak[vsz][sor][szo].length; + } + } + sorok++; + } + console.log("versszak: " + versszak); + console.log("versor: " + verssor); + console.log("szavak: " + szavakcnt); + console.log("karakterek: " + karakterek); + console.log("év: " + ev); + console.log("korszak: " + korszak); + document.getElementById("k").innerHTML = korszak; + document.getElementById("t").innerHTML = tema[index]; + document.getElementById("s").innerHTML = szerkezet[index]; + document.getElementById("vsz").innerHTML = versszak; + document.getElementById("vs").innerHTML = verssor; + document.getElementById("kar").innerHTML = karakterek; + document.getElementById("vsa").innerHTML = Math.round(karakterek / verssor * 100) / 100; + document.getElementById("sza").innerHTML = Math.round(karakterek / versszak * 100) / 100; +} diff --git a/aranyjanos/balladak.html b/aranyjanos/balladak.html new file mode 100644 index 0000000..0093721 --- /dev/null +++ b/aranyjanos/balladak.html @@ -0,0 +1,103 @@ + + + + + Balladák + + + + + +
+

Arany János

+
+ +
+
+ +

+
+ +
+
+ + diff --git a/aranyjanos/balladák/A walesi bárdok.txt b/aranyjanos/balladák/A walesi bárdok.txt new file mode 100644 index 0000000..6b79ff7 --- /dev/null +++ b/aranyjanos/balladák/A walesi bárdok.txt @@ -0,0 +1,156 @@ +Edward király, angol király + Léptet fakó lován: +Hadd látom, úgymond, mennyit ér + A velszi tartomány. + +Van-e ott folyó és földje jó? + Legelőin fű kövér? +Használt-e a megöntözés: + A pártos honfivér? + +S a nép, az istenadta nép, + Ha oly boldog-e rajt' +Mint akarom, s mint a barom, + Melyet igába hajt? + +Felség! valóban koronád + Legszebb gyémántja Velsz: +Földet, folyót, legelni jót, + Hegy-völgyet benne lelsz. + +S a nép, az istenadta nép + Oly boldog rajta, Sire! +Kunyhói mind hallgatva, mint + Megannyi puszta sir. + +Edward király, angol király + Léptet fakó lován: +Körötte csend amerre ment, + És néma tartomány. + +Montgomery a vár neve, + Hol aznap este szállt; +Montgomery, a vár ura, + Vendégli a királyt. + +Vadat és halat, s mi jó falat + Szem-szájnak ingere, +Sürgő csoport, száz szolga hord, + Hogy nézni is tereh; + +S mind, amiket e szép sziget + Ételt-italt terem; +S mind, ami bor pezsegve forr + Túl messzi tengeren. + +Ti urak, ti urak! hát senkisem + Koccint értem pohárt? +Ti urak, ti urak!... ti velsz ebek! + Ne éljen Eduárd? + +Vadat és halat, s mi az ég alatt + Szem-szájnak kellemes, +Azt látok én: de ördög itt + Belül minden nemes. + +Ti urak, ti urak, hitvány ebek! + Ne éljen Eduárd? +Hol van, ki zengje tetteim - + Elő egy velszi bárd! + +Egymásra néz a sok vitéz, + A vendég velsz urak; +Orcáikon, mint félelem, + Sápadt el a harag. + +Szó bennszakad, hang fennakad, + Lehellet megszegik. - +Ajtó megől fehér galamb, + Ősz bárd emelkedik. + +Itt van, király, ki tetteidet + Elzengi, mond az agg; +S fegyver csörög, haló hörög + Amint húrjába csap. + +"Fegyver csörög, haló hörög, + A nap vértóba száll, +Vérszagra gyűl az éji vad: + Te tetted ezt, király! + +Levágva népünk ezrei, + Halomba, mint kereszt, +Hogy sirva tallóz aki él: + Király, te tetted ezt!" + +Máglyára! el! igen kemény - + Parancsol Eduárd - +Ha! lágyabb ének kell nekünk; + S belép egy ifju bárd. + +"Ah! lágyan kél az esti szél + Milford-öböl felé; +Szüzek siralma, özvegyek + Panasza nyög belé. + +Ne szülj rabot, te szűz! anya + Ne szoptass csecsemőt!..." +S int a király. S elérte még + A máglyára menőt. + +De vakmerőn s hivatlanúl + Előáll harmadik; +Kobzán a dal magára vall, + Ez íge hallatik: + +"Elhullt csatában a derék - + No halld meg Eduárd: +Neved ki diccsel ejtené, + Nem él oly velszi bárd. + +Emléke sír a lanton még - + No halld meg Eduárd: +Átok fejedre minden dal, + Melyet zeng velszi bárd." + +Meglátom én! - S parancsot ád + Király rettenetest: +Máglyára, ki ellenszegűl, + Minden velsz énekest! + +Szolgái szét száguldanak, + Ország-szerin, tova. +Montgomeryben így esett + A híres lakoma. - + +S Edward király, angol király + Vágtat fakó lován; +Körötte ég földszint az ég: + A velszi tartomány. + +Ötszáz, bizony, dalolva ment + Lángsírba velszi bárd: +De egy se birta mondani + Hogy: éljen Eduárd. - + +Ha, ha! mi zúg?... mi éji dal + London utcáin ez? +Felköttetem a lord-majort, + Ha bosszant bármi nesz! + +Áll néma csend; légy szárnya bent, + Se künn, nem hallatik: +"Fejére szól, ki szót emel! + Király nem alhatik." + +Ha, ha! elő síp, dob, zene! + Harsogjon harsona: +Fülembe zúgja átkait + A velszi lakoma... + +De túl zenén, túl síp-dobon, + Riadó kürtön át: +Ötszáz énekli hangosan + A vértanúk dalát. + +(1857 jún.) \ No newline at end of file diff --git a/aranyjanos/balladák/Az örök zsidó.txt b/aranyjanos/balladák/Az örök zsidó.txt new file mode 100644 index 0000000..3bc4eca --- /dev/null +++ b/aranyjanos/balladák/Az örök zsidó.txt @@ -0,0 +1,67 @@ +Pihenni már. - Nem, nem lehet: +Vész és vihar hajt engemet, +Alattam a föld nem szilárd, +Fejem fölött kétélü bárd... + Tovább! tovább! + +Az út, hová talpam nyomul, +Sűlyed, ropog, átvékonyul; +Ónsúllyal a kolosszi lég +Elzúzna, ha megállanék... + Tovább! tovább! + +Rettent a perc, a létező, +S teher minden következő; +Új léptem új kigyón tapod: +Gyülölöm a mát s holnapot... + Tovább! tovább! + +Éhes vagyok: ennem iszony; +Láng az ital, midőn iszom; +Álmam szilaj fölrettenés, +Kárpit megől szivembe kés... + Tovább! tovább! + +S melyet hazud a sivatag, +Mint délibáb: tó és patak; +Gyümölcs unszol, friss balzsamu: +Kivűl arany, belűl hamu... + Tovább! tovább! + +Rohannom kell - s a földi boly +Mellettem gyorsan visszafoly: +Ködfátyol-kép az emberek: +Én egy arcot sem ismerek... + Tovább! tovább! + +Oh, mily tömeg? s én egyedűl, +Útam habár közé vegyül: +Érzem, mint csónak a habot, +Hogy átmenet mind rám csapott. + Tovább! tovább! + +Az üstökös meg' visszatér, +Kiröppent nyíl oda is ér, +Az eldobott kő megpihen: +Én céltalan, én szüntelen + Tovább! tovább! + +Pusztán folyam mért nem vagyok, +Hogy inna fel aszú homok! +Mért nem futó, veszett vihar, +Mely ormokon egyszer kihal... + Tovább! tovább! + +Irígylem az ágról szakadt +Levélkét: hisz majd fennakad; +Irígylem az ördögszekért: +Árokba hull: céljához ért... + Tovább! tovább! + +Szegény zsidó... Szegény szivem: +Elébb-utóbb majd megpihen. +Az irgalom nagy és örök, +Megszán s átkom nem mennydörög: + Tovább! tovább! + +(1860) \ No newline at end of file diff --git a/aranyjanos/balladák/Híd-avatás.txt b/aranyjanos/balladák/Híd-avatás.txt new file mode 100644 index 0000000..df78499 --- /dev/null +++ b/aranyjanos/balladák/Híd-avatás.txt @@ -0,0 +1,121 @@ +Szólt a fiú: "Kettő, vagy semmi!" + És kártya perdül, kártya mén; +Bedobta... késő visszavenni: + Ez az utolsó tétemény: + "Egy fiatal élet-remény." + +A kártya nem "fest", - a fiúnak + Vérgyöngy izzad ki homlokán. +Tét elveszett!... ő vándorútnak + - Most már remény nélkül, magán - + Indúl a késő éjszakán. + +Előtte a folyam, az új hid, + Még rajta zászlók lengenek: +Ma szentelé föl a komoly hit, + S vidám zenével körmenet: + Nyeré "Szűz-Szent-Margit" nevet. + +Halad középig, hova záros + Kapcsát ereszték mesteri; +Éjfélt is a négy parti város + Tornyában sorra elveri; - + Lenn, csillagok száz-ezeri. + +S amint az óra, csengve, bongva, + Ki véknyan üt, ki vastagon, +S ő néz a visszás csillagokba: + Kél egy-egy árnyék a habon: + Ősz, gyermek, ifju, hajadon. + +Elébb csak a fej nő ki állig, + S körülforog kiváncsian; +Majd az egész termet kiválik + S ujjonganak mindannyian: + "Uj hid! avatni mind! vigan." + +"Jerünk!... ki kezdje? a galamb-pár!" + Fehérben ifju és leány +Ölelkezik s a hídon van már: + "Egymásé a halál után!" + S buknak, - mint egykor igazán. + +Taps várja. - "Most a millióson + Van a sor: bátran, öregem!" - +"Ha megszökött minden adósom: + Igy szökni tisztesebb nekem!" + S elsímul a víz tükre lenn. + +Hivatlanul is jönnek aztán + A harmadik, a negyedik: +"Én a quaternót elszalasztám!" + "Én a becsűletet, - pedig + Viseltem négy évtizedig." + +S kört körre hány a barna hullám, + Amint letűnnek, itt vagy ott. +Jön egy fiú: "Én most tanúlám + Az elsőt; pénzem elfogyott: + Nem adtak: ugrom hát nagyot!" + +Egy tisztes agg, fehér szakállal, + Lassan a hídra vánszorog: +"Hordozta ez, míg birta vállal, + A létet: mégis nyomorog! - + Fogadd be, nyílt örvény-torok! + +Unalmas arc, félig kifestve - + Egy úri nő lomhán kikel: +"Ah, kínos élet: reggel, estve + Öltözni és vetkezni kell!" + Ezt is hullámok nyelik el. + +Nagy zajjal egy dúlt férfi váza + Csörtet fel és vigyorgva mond: +"Enyém a hadvezéri pálca, + Mely megveré Napleont!" + A többi sugdos: "a bolond!..." + +Szurtos fiú ennek nyakába + Hátul röhögve ott terem +S ketten repűlnek a Dunába: + "Lábszijjra várt a mesterem: + No, várjon, míg megkérlelem!" + +"Én dús vagyok" kiált egy másik + S élvezni többé nem tudom! -" +"Én hű valék a kézfogásig + S elvette Alfréd a hugom'!" + Eltűnnek mind, a járt uton. + +"Párbajban ezt én így fogadtam: + Menj hát elül, sötét golyó!" -- +"Én a szemérmet félrehagytam, + És íme, az lőn bosszuló: + Most vőlegényem a folyó. -" + +Igy, s már nem egyenkint, - seregben, + Cikázva, némán ugranak, +Mint röpke hal a tengerekben; + Vagy mint csoportos madarak + Föl-fölreppenve, szállanak. + +Órjás szemekben hull e zápor, + Lenn táncol órjás buborék; +Félkörben az öngyilkos tábor + Zúg fel s le, mint malomkerék; + A Duna győzi s adja még. + +Néz a fiú... nem látja többé, + Elméje bódult, szeme vak; +De, amint sűrübbé, sűrübbé + Nő a veszélyes forgatag: + Megérzi sodrát, hogy ragad. + +S nincs ellenállás e viharnak, - + Széttörni e varázsgyürüt +Nincsen hatalma földi karnak. - + Mire az óra egyet üt: + Üres a híd, - csend mindenütt. + +(1877 aug. 22) \ No newline at end of file diff --git a/aranyjanos/balladák/Szondi két apródja.txt b/aranyjanos/balladák/Szondi két apródja.txt new file mode 100644 index 0000000..d55a47b --- /dev/null +++ b/aranyjanos/balladák/Szondi két apródja.txt @@ -0,0 +1,96 @@ +Felhőbe hanyatlott a drégeli rom, +Rá visszasüt a nap, ádáz tusa napja; +Szemközt vele nyájas, szép zöld hegy-orom, + Tetején lobogós hadi kopja. + +Két ifiu térdel, kezökben a lant, +A kopja tövén, mintha volna feszűlet. +Zsibongva hadával a völgyben alant + Ali győzelem-ünnepet űlet. + +"Mért nem jön a Szondi két dalnoka, mért? +Bülbül-szavu rózsák két mennyei bokra? +Hadd fűzne dalokból gyöngysorba füzért, + Odaillőt egy huri nyakra!" + +"Ott zöldel az ormó, fenn zöldel a hant +Zászlós kopiával a gyaur basa sírján: +Ott térdel a gyöngypár, kezében a lant, + És pengeti, pengeti, sírván." + +...S hogy feljöve Márton, az oroszi pap, +Kevély üzenettel a bősz Ali küldte: +Add meg kegyelemre, jó Szondi, magad! + Meg nem marad itt anyaszülte. + +"Szép úrfiak! immár e puszta halom, +E kopja tövén nincs mér' zengeni többet: +Jertek velem, ottlenn áll nagy vigalom, + Odalenn vár mézizü sörbet. -" + +Mondjad neki, Márton, im ezt felelem: +Kegyelmet uradtól nem vár soha Szondi, +Jézusa kezében kész a kegyelem: + Egyenest oda fog folyamodni. + +"Serbet, füge, pálma, sok déli gyümölcs, +Mit csak terem a nagy szultán birodalma. +Jó illatu fűszer, és drága kenőcs... + Ali győzelem-ünnepe van ma!" + +Hadd zúgjon az álgyu! pogány Ali mond, +És pattog a bomba, és röpked a gránát; +Minden tüzes ördög népet, falat ont: + Töri Drégel sziklai várát. + +"Szép úrfiak! a nap nyugvóra hajolt, +Immár födi vállát bíborszinü kaftán, +Szél zendül az erdőn, - ott leskel a hold: + Idekinn hideg éj sziszeg aztán!" + +A vár piacára ezüstöt, aranyt, +Sok nagybecsü marhát máglyába kihordat; +Harcos paripái nyihognak alant: + Szügyeikben tőrt keze forgat. + +"Aztán - no, hisz úgy volt! aztán elesett! +Zászlós kopiával hős Ali temette; +Itt nyugszik a halmon, - rövid az eset -; + Zengjétek Alit ma helyette!" + +Két dalnoka is volt, két árva fiú: +Öltözteti cifrán bársonyba puhába: +Nem hagyta cselédit - ezért öli bú - + Vele halni meg, ócska ruhába'! + +"S küldött Alihoz... Ali dús, Ali jó; +Lány-arcotok' a nap meg nem süti nála; +Sátrában alusztok, a széltül is ó: + Fiaim, hozzá köt a hála!" + +Hogy vítt ezerekkel! hogy vítt egyedűl! +Mint bástya, feszült meg romlott torony alján: +Jó kardja előtt a had rendre ledűl, + Kelevéze ragyog vala balján. + +"Rusztem maga volt ő!... s hogy harcola még, +Bár álgyúgolyótul megtört ina, térde! +Én láttam e harcot!... Azonban elég: + Ali majd haragunni fog érte." + +Mint hulla a hulla! veszett a pogány, +Kő módra befolyván a hegy menedékét: +Ő álla halála vérmosta fokán, + Diadallal várta be végét. + +"Eh! vége mikor lesz? kifogytok-e már +Dícséretiből az otromba gyaurnak? +Eb a hite kölykei! vesszeje vár + És börtöne kész Ali úrnak." + +Apadjon el a szem, mely célba vevé, +Száradjon el a kar, mely őt lefejezte; +Irgalmad, oh Isten, ne légyen övé, + Ki miatt lőn ily kora veszte! + +(1856 jún.) \ No newline at end of file diff --git a/aranyjanos/balladák/Tengerihántás.txt b/aranyjanos/balladák/Tengerihántás.txt new file mode 100644 index 0000000..e5dffd2 --- /dev/null +++ b/aranyjanos/balladák/Tengerihántás.txt @@ -0,0 +1,99 @@ +Ropog a tűz, messze süt a vidékre, +Pirosan száll füstje fel a nagy égre; + Körülállja egynehány fa, + Tovanyúlik rémes árnya; + S körül űli a tanyáknak + Szép legénye, szép leánya. + +"Szaporán, hé! nagy a rakás; mozogni! +Nem is illik összebúva susogni. + Ki először piros csőt lel, + Lakodalma lesz az ősszel. + - Tegyetek rá! hadd lobogjon: + Te gyerek, gondolj a tűzzel. + +- Dalos Eszti szép leány volt, de árva. +Fiatal még a mezei munkára; + Sanyarú volt beleszokni: + Napon égni, pirosodni, + - Hüvös éj lesz, fogas a szél! - + Derekának hajladozni. + +Deli karcsú derekában a salló, +Puha lábán nem teve kárt a talló; + Mint a búza, piros, teljes, + Kerek arca, maga mellyes, + - Teli a hold, most buvik fel - + Az egész lyány ugyan helyes. + +Tuba Ferkó juhot őriz a tájon: +Juha mételyt legel a rossz lapályon, + Maga oly bús... mi nem éri? + Furulyája mindig sí-ri, + - Aha! rókát hajt a Bodré - + Dalos Esztert úgy kiséri. + +Dalos Eszti - a mezőre kiment ő, +Aratókkal puha fűvön pihent ő; + De ha álom ért reájok, + Odahagyta kis tanyájok' + - Töri a vadkan az "irtást" - + Ne tegyétek, ti leányok! + +Szederinda gyolcs ruháját szakasztja, +Tövis, talló piros vérit fakasztja; + Hova jár, mint kósza lélek, + Ha alusznak más cselédek?... + - Soha, mennyi csillag hull ma! - + Ti, leányok, ne tegyétek. + +Tuba Ferkó a legelőt megúnta, +Tovahajtott, furulyáját se fútta; + Dalos Eszter nem kiséri, + Maga halvány, dala sí-rí: + - Nagy a harmat, esik egyre - + Csak az isten tudja, mér' rí. + +Szomorún jár, tébolyog a mezőben, +Nem is áll jól semmi dolog kezében; + Éje hosszú, napja bágyadt, + Szive sóhajt - csak egy vágyat: + - De suhogjon az a munka! - + Te, halál, vess puha ágyat. + +Ködös őszre vált az idő azonban, +Törik is már a tengerit Adonyban; + Dalos Eszter csak nem jött ki: + Temetőbe költözött ki; + - Az a Lombár nagy harangja! - + Ne gyalázza érte senki. + +Tuba Ferkó hazakerűlt sokára, +Dalos Esztit hallja szegényt, hogy jára; + Ki-kimén a temetőbe + Rossz időbe', jó időbe': + - Kuvikol már, az ebanyja! - + "Itt nyugosznak, fagyos földbe." + +Maga Ferkó nem nyughatik az ágyon, +Behunyt szemmel jár-kel a holdvilágon, + Muzsikát hall nagy-fenn, messze, + Dalos Eszti hangja közte, + - Ne aludj, hé! vele álmodsz - + Azt danolja: "gyere! jöszte!" + +Nosza Ferkó, felszalad a boglyára, +Azután a falu hegyes tornyára; + Kapaszkodnék, de nem éri, + Feje szédűl: mi nem éri?... + - Tizenkettőt ver Adonyban: + Elég is volt ma regélni. -" + +Lohad a tűz; a legények subába - +Összebúnak a leányok csuhába; + Magasan a levegőben + Repül egy nagy lepedő fenn: + Azon ülve muzsikálnak, + Furulyálnak, eltünőben. + +(1877 júl. 15) \ No newline at end of file diff --git a/aranyjanos/balladák/Tetemre hívás.txt b/aranyjanos/balladák/Tetemre hívás.txt new file mode 100644 index 0000000..04aa3eb --- /dev/null +++ b/aranyjanos/balladák/Tetemre hívás.txt @@ -0,0 +1,97 @@ +A radványi sötét erdőben + Halva találták Bárczi Benőt. +Hosszu hegyes tőr ifju szivében; + "Ime, bizonyság Isten előtt: + Gyilkos erőszak ölte meg őt!" + +Kastélyába vitette föl atyja, + Ott letevék a hűs palotán; +Ki se terítteti, meg se mosatja: + Vérben, ahogy volt, nap nap után + Hever egyszerű ravatalán. + +Állata őrzeni négy alabárdost: + "Lélek ez ajtón se be, se ki..." +"Hátha az anyja, szép huga már most + Jönne siratni?" - "Vissza neki; + Jaj, ki parancsom, élve, szegi!" + +Fojtva, teremről rejti teremre + Halk zokogását asszonyi bú. - +Maga, pecséttel, "hívja tetemre" + Kit szemre vesz, ölyvként, sanda gyanú: + Legyen a seb vérzése tanú. + +A palotát fedi fekete posztó, + Déli verőn sem süt oda nap; +Áll a tetemnél tiszti pörosztó, + Gyertya, feszűlet, kánoni pap: + Sárga viaszfényt nyughelye kap. + +"Jöjjenek ellenségi, ha voltak!" + Jő, kit az apja rendre nevez; +Hiába! nem indul sebe a holtnak + Állva fejénél az, vagy emez: + "Gyilkosa hát nem ez... újra nem ez." + +"Hát ki?..." riad fel Bárczi sötéten, + "Boszulatlan nem foly ez ösi vér; +Ide a gyilkost!... bárha pecsétem + Váddal az önnön szívemig ér: + Mindenki gyanús nekem, aki él!" + +"Jöjjenek úgy hát ifju baráti!" + Sorra belépdel sok dalia: +Fáj nekik a hőst véribe' látni, + S nem harc mezején elomlania. + Erre se vérzik Bárczi fia. + +"Jöjjön az udvar! apraja, nagyja... + Jöjjön elő Bárc, a falu, mind!" +Megkönnyezetlen senki se hagyja, + Kedves urára szánva tekint. + Nem fakad a seb könnyre megint. + +"Jöjjön az anyja! hajadon húga!" + Künn a leány, már messze, sikolt; +Anyja reárogy, öleli búgva: + Mindre nem érez semmit a holt: + Marad a tört vér - fekete folt. + +"Jöjjön utolszor szép szeretője, + Titkos arája, Kund Abigél!" +Jő; - szeme villan s tapad a tőrre, + Arca szobor lett, lába gyökér. + - Sebből pirosan buzog a vér. + +Könnye se perdűl, jajja se hallik, + Csak odakap, hol fészkel az agy: +Iszonyu az, mi oda nyilallik!... + Döbbenet által a szív ere fagy: + "Lyányom, ez ifjú gyilkosa vagy!" + +Kétszeri mondást - mint lebüvölten - + Hallgat el, aztán így rebegi: +"Bárczi Benőt én meg nem öltem + Tanum az Ég, s minden seregi! + Hanem e tőrt én adtam neki. + +Bírta szivem' már hű szerelemre - + Tudhatta, közöttünk nem vala gát: +Unszola mégis szóval "igenre", + Mert ha nem: ő kivégzi magát. + Enyelegve adám a tőrt: nosza hát!" + +S vadul a sebből a tőrt kiragadja, + Szeme szokatlan lángot lövell, +Kacag és sír, s fennvillogtatja + S vércse-visongással rohan el. + Vetni kezet rá senki se mer. + +Odakinn lefut a nyilt utca során, + Táncolni, dalolni se szégyell; +Dala víg: "Egyszer volt egy leány, + Ki csak úgy játszott a legénnyel, + Mint macska szokott az egérrel!" + +(1877 okt. 27) \ No newline at end of file diff --git a/aranyjanos/balladák/V. László.txt b/aranyjanos/balladák/V. László.txt new file mode 100644 index 0000000..6302b3d --- /dev/null +++ b/aranyjanos/balladák/V. László.txt @@ -0,0 +1,91 @@ +Sűrű setét az éj, +Dühöng a déli szél, +Jó Budavár magas +Tornyán az érckakas + Csikorog élesen. + +"Ki az? mi az? vagy úgy -" +"Fordulj be és alugy +Uram László király: +A zápor majd eláll, + Az veri ablakod." + +A felhő megszakad, +Nyilása tűz, patak; +Zúgó sebes özönt +A rézcsatorna önt + Budának tornyiról. + +"Miért zúg a tömeg? +Kivánja eskümet?" +"A nép, uram király, +Csendes, mint a halál, + Csupán a menny dörög." + +Megcsörren a bilincs, +Lehull, gazdája nincs: +Buda falán a rab +- Egy-egy felhődarab - + Ereszkedik alá. + +"Hah! láncát tépi a +Hunyadi két fia -" +"Uram, uram, ne félj! +László, tudod, nem él + S a gyermek, az fogoly." + +Mélyen a vár alatt +Vonúl egy kis csapat; +Olyan rettegve lép, +Most lopja életét... + Kanizsa, Rozgonyi. + +"Kettőzni kell az őrt, +Kivált Mátyás előtt!" +"Mátyás, az itt maradt, +Hanem a többi rab - + Nincsen, uram, sehol." + +A felhő kimerült, +A szélvihar elült, +Lágyan zsongó habok +Ezer kis csillagot + Rengetnek a Dunán. + +"El! míg lehet s szabad! +Cseh-földön biztosabb." +"Miért e félelem? +Hallgat minden elem + Ég s föld határa közt." + +Az alvó aluszik, +A bujdosó buvik; +Ha zörren egy levél, +Poroszlót jőni vél + Kanizsa, Rozgonyi. + +"Messze még a határ? +Minden perc egy halál!" +"Legitten átkelünk, +Ne félj uram: velünk + A gyermek, a fogoly." + +Az alvó felvirad, +A bujdosó riad; +Szellő sincsen, de zúg, +Felhő sincsen, de búg + S villámlik messziről. + +"Oh adj, oh adj nekem +Hűs cseppet, hű csehem!" +"Itt a kehely, igyál, +Uram, László király, + Enyhít... mikép a sír!" + +Állj meg, bosszú, megállj: +Cseh földön ül a rab; +Cseh földben a király, +Mindég is ott marad, + De visszajő a rab...! + +(1853) \ No newline at end of file diff --git a/aranyjanos/balladák/Vörös Rébék.txt b/aranyjanos/balladák/Vörös Rébék.txt new file mode 100644 index 0000000..2c07d53 --- /dev/null +++ b/aranyjanos/balladák/Vörös Rébék.txt @@ -0,0 +1,105 @@ +"Vörös Rébék általment a + Keskeny pallón s elrepült -" +Tollászkodni, már mint varju, + Egy jegenyefára űlt. + Akinek azt mondja: kár! + Nagy baj éri és nagy kár: + Hess, madár! + +Ő volt az, ki addig főzte + Pörge Dani bocskorát, +Míg elvette a Sinkóék + Cifra lányát, a Terát. + De most bezzeg bánja már, + Váltig hajtja: kár volt, kár! + Hess, madár! + +Pörge Dani most őbenne + Ha elbotlik se köszön, +S ha ott kapja, kibuktatja + Orrával a küszöbön. + Pedig titkon oda jár, + Szép asszonynak mondja: kár! + Hess, madár! + +Cifra asszony színes szóra + Tetteti, hogy mit se hajt: +"Kend meg köztünk ne csináljon + Háborodást, házi bajt, + Nem vagyok én csapodár." + Rebi néni mondja: kár! + Hess, madár! + +Másszor is jön, hoz fehér pénzt, + Piros kendőt s egyebet: +"Nesze, lyányom? e mézes bor + Erősítse a szived: + Szépnek úgy nem tenni kár!" + - "Hadd jöjjön hát a kasznár." + Hess, madár! + +Háborúság, házi patvar + Attól kezdve van elég; +De nem hallik a szomszédba: + Pörge Dani tűri még. + A bölcső is ott van már: + Künn egy varju mondja: kár! + Hess, madár! + +"Asszony, ördög! vidd apádnak + Haza ezt a gyermeket - +Ne! a varjut (hol a puskám?) + Útra meglövöm neked." + Varju azt se mondja: kár! + El sem is rebbenti már: + "Hess, madár! + +Híre terjed a helységben:. + "Tudjátok, mi az eset? +Pörge Dani egy varjút lőtt + S Rebi néni leesett!" + Rebi lelke nem vón' kár: + De, mint varju, visszajár + Hess, madár! + +Gyilkost a törvény nyomozza; + Szegény Dani mit tegyen? +Útnak indul, bujdosásnak, + Keskeny pallón átmegyen. + Szembe jött rá a kasznár. + Varju elkiáltja: kár! + Hess, madár! + +Keskeny a palló kettőnek: + Nem térhet ki a Dani; +Egy billentés: lent a vízben + Nagyot csobban valami. + Sok eső volt: mély az ár. + Varju látja, mondja: kár! + Hess, madár! + +Bujdosónak kín az élte; + Reszket, ha levél zörög: +Felvont sárkányt vesz kezébe, + Hajtja éh: "megállj, görög!" + Varjú mind' kiséri: "kár!... + Fennakadsz te, szép betyár!" + "Hess, madár!" + +"Most ebédre, hollók, varjak + Seregestül, aki van! +De szemét ne bántsa senki: + Azzal elbánok magam." + Fekete volt; mint bogár: + Asszony ott sír: "mégis kár! + Hess, madár!" + +Vörös Rébék általment a + Keskeny pallón: most repűl; +Egy varjúból a másikba + Száll a lelke, vég ne'kül + S kinek ő azt mondja: kár! + Nagy baj éri és nagy kár. + Hess, madár! + +(1877 szept. 26) \ No newline at end of file diff --git a/aranyjanos/balladák/Ágnes asszony.txt b/aranyjanos/balladák/Ágnes asszony.txt new file mode 100644 index 0000000..f60b33c --- /dev/null +++ b/aranyjanos/balladák/Ágnes asszony.txt @@ -0,0 +1,157 @@ +Ágnes asszony a patakban +Fehér lepedőjét mossa; +Fehér leplét, véres leplét +A futó hab elkapdossa. + Oh! irgalom atyja, ne hagyj el. + +Odagyűl az utcagyermek: +Ágnes asszony, mit mos kelmed? +"Csitt te, csitt te! csibém vére +Keveré el a gyolcs leplet." + Oh! irgalom atyja, ne hagyj el. + +Összefutnak a szomszédnők: +Ágnes asszony, hol a férjed? +"Csillagom, hisz ottbenn alszik! +Ne menjünk be, mert fölébred." + Oh! irgalom atyja, ne hagyj el. + +Jön a hajdu: Ágnes asszony, +A tömlöcbe gyere mostan. +"Jaj, galambom, hogy' mehetnék, +Míg e foltot ki nem mostam!" + Oh! irgalom atyja, ne hagyj el. + +Mély a börtön: egy sugár-szál +Odaférni alig képes; +Egy sugár a börtön napja, +Éje pedig rémtül népes. + Oh! irgalom atyja, ne hagyj el. + +Szegény Ágnes naphosszanta +Néz e kis világgal szembe, +Néz merően, - a sugárka +Mind belefér egy fél szembe. + Oh! irgalom atyja, ne hagyj el. + +Mert, alighogy félre fordul, +Rémek tánca van körűle; +Ha ez a kis fény nem volna, +Úgy gondolja: megőrülne. + Oh! irgalom atyja, ne hagyj el. + +Ím azonban, időtelve, +Börtönének zárja nyílik: +Ágnes a törvény előtt +Megáll szépen, ahogy illik. + Oh! irgalom atyja, ne hagyj el. + +Öltözetjét rendbe hozza, +Kendőjére fordít gondot, +Szöghaját is megsimítja +Nehogy azt higgyék: megbomlott. + Oh! irgalom atyja, ne hagyj el. + +Hogy belép, a zöld asztalnál +Tisztes őszek ülnek sorra; +Szánalommal néznek ő rá, +Egy se mérges, vagy mogorva. + Oh! irgalom atyja, ne hagyj el. + +"Fiam, Ágnes, mit miveltél? +Szörnyü a bűn, terhes a vád; +Ki a tettet végrehajtá +Szeretőd ím maga vall rád." + Oh! irgalom atyja, ne hagyj el. + +"Ő bitón fog veszni holnap, +Ő, ki férjedet megölte; +Holtig vizen és kenyéren +Raboskodva bünhödöl te." + Oh! irgalom atyja, ne hagyj el. + +Körültekint Ágnes asszony, +Meggyőződni ép eszérül; +Hallja a hangot, érti a szót, +S míg azt érti: "meg nem őrül." + Oh! irgalom atyja, ne hagyj el. + +De amit férjéről mondtak +A szó oly visszásan tetszik; +Az világos csak, hogy őt +Haza többé nem eresztik. + Oh! irgalom atyja, ne hagyj el. + +Nosza sírni, kezd zokogni, +Sűrü záporkönnye folyván: +Liliomról pergő harmat, +Hulló vizgyöngy hattyu tollán. + Oh! irgalom atyja, ne hagyj el. + +"Méltóságos nagy uraim! +Nézzen Istent kegyelmetek: +Sürgetős munkám van otthon, +Fogva én itt nem űlhetek." + Oh! irgalom atyja, ne hagyj el. + +"Mocsok esett lepedőmön, +Ki kell a vérfoltot vennem! +Jaj, ha e szenny ott maradna, +Hová kéne akkor lennem!" + Oh! irgalom atyja ne hagyj el. + +Összenéz a bölcs törvényszék +Hallatára ily panasznak. +Csendesség van. Hallgat a száj, +Csupán a szemek szavaznak. + Oh! irgalom atyja, ne hagyj el. + +"Eredj haza, szegény asszony! +Mosd fehérre mocskos lepled; +Eredj haza, Isten adjon +Erőt ahhoz és kegyelmet." + Oh! irgalom atyja, ne hagyj el. + +S Ágnes asszony a patakban +Lepedőjét újra mossa; +Fehér leplét, tiszta leplét +A futó hab elkapdossa. + Oh! irgalom atyja, ne hagyj el + +Mert hiában tiszta a gyolcs, +Benne többé semmi vérjel: +Ágnes azt még egyre látja +S épen úgy, mint akkor éjjel. + Oh! irgalom atyja, ne hagyj el. + +Virradattól késő estig +Áll a vízben, széke mellett: +Hab zilálja rezgő árnyát, +Haja fürtét kósza szellet. + Oh! irgalom atyja, ne hagyj el. + +Holdvilágos éjjelenkint, +Mikor a víz fodra csillog, +Maradozó csattanással, +Fehér sulyka messze villog. + Oh! irgalom atyja, ne hagyj el. + +És ez így megy évrül-évre; +Télen-nyáron, szünet nélkül; +Harmat-arca hő napon ég, +Gyönge térde fagyban kékül. + Oh! irgalom atyja, ne hagyj el. + +Őszbe fordul a zilált haj, +Már nem holló, nem is ében; +Torz-alakú ránc verődik +Szanaszét a síma képen. + Oh! irgalom atyja, ne hagyj el. + +S Ágnes asszony a patakban +Régi rongyát mossa, mossa - +Fehér leple foszlányait +A szilaj hab elkapdossa. + Oh! irgalom atyja, ne hagyj el. + +(1853) \ No newline at end of file diff --git a/aranyjanos/favicon.ico b/aranyjanos/favicon.ico new file mode 100644 index 0000000..5f4b763 Binary files /dev/null and b/aranyjanos/favicon.ico differ diff --git a/aranyjanos/game.html b/aranyjanos/game.html new file mode 100644 index 0000000..0a85cd8 --- /dev/null +++ b/aranyjanos/game.html @@ -0,0 +1,52 @@ + + + + + Arany János + + + + + +
+

Arany János

+
+ +
+ + +
+ + diff --git a/aranyjanos/game.js b/aranyjanos/game.js new file mode 100644 index 0000000..96043f0 --- /dev/null +++ b/aranyjanos/game.js @@ -0,0 +1,139 @@ +var cimek = [ + "A walesi bárdok", + "Ágnes asszony", + "Az örök zsidó", + "Híd-avatás", + "Szondi két apródja", + "Tengerihántás", + "Tetemre hívás", + "V. László", + "Vörös Rébék" +]; + +var balladak = []; + +function init() { + for (var i = 0; i < 4; i++) { + let btn = document.createElement("input"); + btn.type = "button"; + btn.id = "btn" + i; + btn.setAttribute("onclick", "answer(" + i + ")"); + document.getElementById("answers").appendChild(btn); + } + loadBallada(0); + +} + +function loadBallada(index) { + if (index < cimek.length) { + var xhttp = new XMLHttpRequest(); + xhttp.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + let vers = this.responseText.split("\r\n"); + buildBallada(vers, index); + index++; + loadBallada(index); + } + }; + xhttp.open("GET", "balladák/" + cimek[index] + ".txt", true); + xhttp.send(); + } +} + +function buildBallada(vers, i) { + let versszak = 0; + for (var j = 0; j < vers.length; j++) { + if (vers[j] == "") { + versszak++; + } + } + let sorok = 0; + balladak[i] = new Array(versszak); + for (var vsz = 0; vsz < versszak; vsz++) { + balladak[i][vsz] = new Array(vers.indexOf("")); + for (var sor = 0; sor < balladak[i][vsz].length; sor++) { + // console.log(sor + " " + sorok); + balladak[i][vsz][sor] = vers[sorok]; + sorok++; + } + sorok++; + } +} + +function start() { + console.log("started"); + document.getElementById("mainmenu").hidden = true; + document.getElementById("game").hidden = false; + document.getElementById("newgame").hidden = true; + document.getElementById("pont").innerHTML = "Pontok: 0"; + round = 0; + score = 0; + nextRound(); +} + +var ballada, versszak; +var correctBallada; +var nums = []; +var round = 0; +var helped = false; +var score = 0; + +function nextRound() { + round++; + document.getElementById("help").disabled = false; + document.getElementById("help").value = "Segítség"; + document.getElementById("help").setAttribute("onclick", "help()"); + helped = false; + for (var i = 0; i < 4; i++) { + document.getElementById("btn" + i).style = ""; + document.getElementById("btn" + i).disabled = false; + } + document.getElementById("feladat").innerHTML = round + ". kör" + ballada = Math.floor(Math.random() * balladak.length); + versszak = Math.floor(Math.random() * balladak[ballada].length); + document.getElementById("resz").innerHTML = balladak[ballada][versszak][0] + "
" + balladak[ballada][versszak][1]; + correctBallada = Math.floor(Math.random() * 4); + for (var i = 0; i < cimek.length; i++) { + nums[i] = i; + } + writeAnswer(0, correctBallada, ballada); +} + +function writeAnswer(a, b, i) { + if (a < 4) { + document.getElementById("btn" + (b % 4)).value = cimek[i]; + nums.splice(nums.indexOf(i), 1); + // console.log((b % 4) + " " + i); + // console.log(nums); + a++; + b++; + writeAnswer(a, b, nums[Math.floor(Math.random() * nums.length)]); + } +} + +function answer(answ) { + if (answ == correctBallada) { + score = helped ? score + 0.5 : score + 1; + } + else { + document.getElementById("btn" + answ).style.backgroundColor = "red"; + } + document.getElementById("btn" + correctBallada).style.backgroundColor = "lime"; + document.getElementById("pont").innerHTML = "Pontok: " + score; + document.getElementById("help").value = round < 10 ? "Következő" : "Végtelen"; + document.getElementById("help").setAttribute("onclick", "nextRound()"); + document.getElementById("help").disabled = false; + for (var i = 0; i < 4; i++) { + document.getElementById("btn" + i).disabled = true; + } + if (round == 10) { + alert("Elért pontszám: " + score + "/10"); + document.getElementById("newgame").hidden = false; + } +} + +function help() { + helped = true; + document.getElementById("resz").innerHTML = balladak[ballada][versszak].join("
"); + document.getElementById("help").disabled = true; +} diff --git a/aranyjanos/index.html b/aranyjanos/index.html new file mode 100644 index 0000000..1b8f2ad --- /dev/null +++ b/aranyjanos/index.html @@ -0,0 +1,22 @@ + + + + + Arany János + + + + +
+

Arany János

+
+ +
+ +
+ + diff --git a/aranyjanos/style.css b/aranyjanos/style.css new file mode 100644 index 0000000..36feec7 --- /dev/null +++ b/aranyjanos/style.css @@ -0,0 +1,244 @@ +:focus {outline:none;} +::-moz-focus-inner {border:0;} +select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #000; +} + +body { + font-family: sans-serif; + margin: 10px 10%; + background-color: #aaa; + position: relative; +} + +header { + padding: 10px; + text-align: center; + background: #333; + user-select: none; +} + +header h1 { + font-family: cursive; + font-size: 50px; + color: gold; + text-shadow: 2px 2px 8px black; +} + +h2 { + text-align: center; +} + +main { + background-color: #eee; + padding: 14px 16px; +} + +nav { + overflow: hidden; + background-color: black; + user-select: none; +} + +nav a { + float: left; + display: block; + color: white; + text-align: center; + padding: 14px 16px; + text-decoration: none; +} + +nav a:hover { + background-color: #333; + color: white; +} + +.active { + background-color: #eee; + color: black; +} + +#vers { + width: 100%; + display: inline-block; + margin: 0; + font-family: serif; + padding: 0 24px; + background-color: white; + border-left: solid #aaa 4px; + box-sizing: border-box; + overflow-y: visible; +} + +#left { + width: 40%; + display: inline-block; + float: left; +} + +#right { + width: 40%; + display:inline-block; + float: right; + margin: 0 10%; +} + +table { + width: 100%; + margin-bottom: 16px; +} + +thead > tr > th { + font-size: 18px; + font-weight: bold; + border-bottom: solid 2px black; + text-align: center; +} + +tbody > tr > th { + font-weight: normal; + text-align: left; +} + +td { + text-align: right; + color: blue; +} + +#vszStat > tbody > tr > th, #vszStat > tbody > tr > td { + width: 10%; +} + +select { + width: 100%; + border: none; + font-family: serif; + font-weight: bold; + font-size: 24px; + border-left: solid #aaa 4px; + box-sizing: border-box; + padding: 24px; +} + +select:focus { + outline: none; +} + +.clear { + clear:both; + line-height:0; +} + +#mainmenu { + padding: 72px; +} + +#mainmenu p { + text-align: justify; + width: 50%; + margin: 10px auto; +} + +#mainmenu input { + display: block; + font-family: Arial; + width: 50%; + height: 72px; + font-size: 24px; + font-weight: bold; + background-color: aqua; + border: solid 1px black; + margin: auto; +} + +#mainmenu input:enabled:hover { + background-color: DeepSkyBlue; +} + +#game { + width: 60%; + margin: auto; + padding-top: 72px; + padding-bottom: 72px; +} + +#answers input { + font-family: Arial; + width: 23%; + height: 48px; + font-size: 18px; + background-color: aqua; + border: solid 1px black; + margin: 0 1%; + box-sizing: border-box; +} + +#answers input:enabled:hover { + background-color: DeepSkyBlue; +} + +#help, #newgame { + font-family: Arial; + width: 96px; + height: 24px; + line-height: 24px; + font-size: 16px; + margin: 0; + box-sizing: border-box; + float: right; + border: solid 1px black; + margin-right: 1%; +} + +#help { + background-color: lightgreen; +} + +#newgame { + background-color: yellow; +} + +#help:enabled:hover { + background-color: lime; +} + +#newgame:enabled:hover { + background-color: gold; +} + +input:enabled { + cursor: pointer; +} + +input:disabled { + color: black; + cursor: not-allowed; +} + +#pont, #feladat { + display: inline-block; + width: 33%; + margin: 0; + line-height: 24px; +} + +#pont { + text-align: left; + margin-left: 1%; +} + +#resz { + text-align: left; + display: inline-block; + margin: 72px; + font-style: italic; +} + +#idezet { + text-align: center; + margin: 1% 0; + border-top: solid 2px #aaa; + border-bottom: solid 2px #aaa; +} diff --git a/erzekelo/index.html b/erzekelo/index.html new file mode 100644 index 0000000..933b12a --- /dev/null +++ b/erzekelo/index.html @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Bitfaragó - 3. forduló + + + + +
+
+
+ +
+ + + diff --git a/erzekelo/javascript.js b/erzekelo/javascript.js new file mode 100644 index 0000000..4ea6fa2 --- /dev/null +++ b/erzekelo/javascript.js @@ -0,0 +1,371 @@ +class Sensor { + constructor(id, posx, posy, angle, anglerad) { + this.id= id; + this.posx=posx; + this.posy=posy; + this.angle=angle; + this.anglerad = anglerad; + } +} + +class Ray { + constructor(id, signal, angle){ + this.id = id; + this.signal = signal; + this.angle = angle; + } +} + +var sensorData =""; +var sensors = []; +var rays = []; +var canvas; +var ctx; +var grid; +var ctxFOV = "rgba(0,0,255,0.1)"; +var sensorChecker = ""; +var previousx = 0; +var previousy = 0; + +function getSensor() { + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + if (this.status == 200) { + sensorData = this.responseText; + splitSensorData(sensorData); + start(); + } + } + }; + xhr.open('POST', 'http://bitkozpont.mik.uni-pannon.hu/Vigyazz3SensorData.php', true); + xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + xhr.send(JSON.stringify({ + request: 'sensors' + })); +} + +function getSensorDataV1() { + if (previousx != aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorVizszintesPozicioja || previousy != aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorFuggolegesPozicioja) + { + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + if (this.status == 200) { + sensorChecker = this.responseText; + splitDetectedSensorData(sensorChecker); + } + } + }; + xhr.open('POST', 'http://bitkozpont.mik.uni-pannon.hu/Vigyazz3SensorData.php', true); + xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + xhr.send(JSON.stringify({ + request: 'sensordata', + version: 1, + posx: aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorVizszintesPozicioja, + posy: aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorFuggolegesPozicioja + })); + } + previousx = aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorVizszintesPozicioja; + previousy = aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorFuggolegesPozicioja; +} + +function getSensorDataV2() { + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + if (this.status == 200) { + sensorChecker = this.responseText; + splitDetectedSensorData(sensorChecker); + } + } + }; + xhr.open('POST', 'http://bitkozpont.mik.uni-pannon.hu/Vigyazz3SensorData.php', true); + xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + xhr.send(JSON.stringify({ + request: 'sensordata', + version: 2, + })); +} +//R.I.P nyikon dzsézönje :D + + +// function splitSensorData(rtrnValue){ + // var str = rtrnValue.split("[")[1].split("]")[0]; + // var snsrs = str.split("}"); + // var sensors = []; + // for (var i = 0; i < snsrs.length - 1; i++){ + // sensor = snsrs[i].split("{")[1]; + // var data = sensor.split(","); + // sensors.push(new Sensor(data[0].split(":")[1], data[1].split(":")[1], data[2].split(":")[1], data[3].split(":")[1]), data[4].split(":")[1]); + // } + // + // + // for (var i = 0; i < sensors.length; i++){ +// alert(sensors[i].id + ";", sensors[i].posx + ";", sensors[i].posy + ";", sensors[i].angle + ";", sensors[i].anglerad + ";"); +// } +// } + +function splitSensorData(json_text){ + var jsn = JSON.parse(json_text); + for (var i = 0; i < 4; i++) { + var sensor = jsn.data[i]; + + sensors.push(new Sensor(sensor.id, sensor.posx, sensor.posy, sensor.angle, sensor.anglerad)); + } +} + +var startX1; +var startY1; +var startX2; +var startY2; +var endX1; +var endY1; +var endX2; +var endY2; +var rectX; +var rectY; + +function splitDetectedSensorData(json_text){ + var sensorCount = 0; + var rayIDs = []; + rays = []; + var jsn = JSON.parse(json_text); + for (var i = 0; i < 4; i++) { + var ray = jsn.data[i]; + rays.push(new Ray(ray.id, ray.signal, ray.angle)); + // console.log(rays[i].id + ";" + rays[i].signal + ";" + rays[i].angle); + if (ray.signal && sensorCount < 2) { + rayIDs[sensorCount] = ray.id; + sensorCount++; + } + } + if (sensorCount == 2) + { //Ilyeneket nem tanultunk! + startX1 = sensors[rayIDs[0]].posx; + startY1 = sensors[rayIDs[0]].posy; + startX2 = sensors[rayIDs[1]].posx; + startY2 = sensors[rayIDs[1]].posy; + endX1 = startX1 + Math.cos((sensors[rayIDs[0]].angle + rays[rayIDs[0]].angle) * Math.PI / 180) * 400; + endY1 = startY1 + Math.sin((sensors[rayIDs[0]].angle + rays[rayIDs[0]].angle) * Math.PI / 180) * 400; + endX2 = startX2 + Math.cos((sensors[rayIDs[1]].angle + rays[rayIDs[1]].angle) * Math.PI / 180) * 400; + endY2 = startY2 + Math.sin((sensors[rayIDs[1]].angle + rays[rayIDs[1]].angle) * Math.PI / 180) * 400; + //console.log(startX1 + ", " + startY1 + " " + endX1 + ", " + endY1 + " " + startX2 + ", " + startY2 + " " + endX2 + ", " + endY2); + + // var b_angle = 90 - rays[rayIDs[0]].angle + sensors[rayIDs[0]].angle; + // var a_side = (Math.sin(sensors[rayIDs[0]].angle + rays[rayIDs[0]].angle*Math.PI/180) * 400) / Math.sin(90*Math.PI/180); + // var b_side = (Math.sin(b_angle*Math.PI/180) * 400) / Math.sin(90*Math.PI/180); + // + // endX1 = startX1 + b_side; + // endY1 = startY1 + a_side; + // + // var b_angle = 90 - rays[rayIDs[1]].angle + sensors[rayIDs[0]].angle; + // var a_side = (Math.sin(sensors[rayIDs[0]].angle + rays[rayIDs[1]].angle*Math.PI/180) * 400) / Math.sin(90*Math.PI/180); + // var b_side = (Math.sin(b_angle*Math.PI/180) * 400) / Math.sin(90*Math.PI/180); + + // endX2 = startX2 + b_side; + // endY2 = startY2 + a_side; + var pos = detectIntersection(startX1, startY1, endX1, endY1, startX2, startY2, endX2, endY2); + drawSquare(Math.floor(pos[0] / 100) * 100, Math.floor(pos[1] / 100) * 100); + rectX = Math.floor(pos[0] / 100) * 100; + rectY = Math.floor(pos[1] / 100) * 100; + } + else { + rectX = -101; + rectY = -101; + } +} +function start() { + modal(); + canvas = document.getElementById("myCanvas"); + ctx = canvas.getContext("2d"); + grid = canvas.getContext("2d"); + versionPicker(); + var canvasRefresher = setInterval(refreshCanvas, 35); +} + +function refreshCanvas() { + var canvasHeight=canvas.offsetHeight; + var canvasWidth=canvas.offsetWidth; + ctx.clearRect(0, 0, canvasHeight, canvasWidth); + drawGrid(); + drawFOV(); + drawDetection(); + drawSensors(); + drawSquare(); + if (version){ + drawCircle(); + } +} + +function drawSquare() { + ctx.fillStyle = "rgba(255, 255, 0, 0.6)"; + ctx.fillRect(rectX + 1, rectY + 1, 99, 99); +} + +function drawGrid(){ + var p = 0; + for (var x = 0; x <= 500; x += 100) { + grid.moveTo(0.5 + x + p, p); + grid.lineTo(0.5 + x + p, 500 + p); + } + + for (var x = 0; x <= 500; x += 100) { + grid.moveTo(p, 0.5 + x + p); + grid.lineTo(500 + p, 0.5 + x + p); + } + grid.strokeStyle = "black"; + grid.stroke(); +} + +function drawSensors() { + ctx.fillStyle = "darkred"; + for (var si=0; siMath.PI*2) jsAngleStart-=Math.PI*2; + if (jsAngleEnd<0) jsAngleEnd+=Math.PI*2; + else if (jsAngleEnd>Math.PI*2) jsAngleEnd-=Math.PI*2; + ctx.beginPath(); + ctx.moveTo(sensors[si].posx, sensors[si].posy); + ctx.lineTo(sensors[si].posx+Math.cos(anglerad-Math.PI/4)*20, sensors[si].posy+Math.sin(anglerad-Math.PI/4)*20); + ctx.lineTo(sensors[si].posx+Math.cos(anglerad+Math.PI/4)*20, sensors[si].posy+Math.sin(anglerad+Math.PI/4)*20); + ctx.lineTo(sensors[si].posx, sensors[si].posy); + ctx.fill(); + } +} + +function drawFOV() { + ctx.fillStyle = ctxFOV; + for (var i = 0; i < 4; i++) + { + ctx.moveTo(sensors[i].posx, sensors[i].posy); + ctx.beginPath(); + ctx.arc(sensors[i].posx, sensors[i].posy, 400, (sensors[i].angle - 45) * Math.PI / 180, (sensors[i].angle + 45) * Math.PI / 180); + ctx.lineTo(sensors[i].posx, sensors[i].posy); + ctx.fill(); + }; +} + +function fovonoff() { + if (document.getElementById("fovswitch").checked) + { + ctxFOV = "rgba(0,0,255,0.1)"; + } + else { + ctxFOV = "rgba(0,0,0,0)"; + } +} + +var refreshSensorData2; +var refreshSensorData1; +function versionPicker() { + if (document.getElementById("versionswitch").checked) + { + clearInterval(refreshSensorData1); + getSensorDataV2(); + refreshSensorData2 = setInterval(getSensorDataV2, 1000); + version = false; + } + else { + clearInterval(refreshSensorData2); + refreshSensorData1 = setInterval(getSensorDataV1, 35); + version = true; + } +} + +function drawDetection() { + ctx.fillStyle = "rgba(255,0,0,0.2)"; + for (var i = 0; i < 4; i++) + { + if (rays[i] != undefined) { + if (rays[i].signal) { + ctx.moveTo(sensors[i].posx, sensors[i].posy); + ctx.beginPath(); + ctx.arc(sensors[i].posx, sensors[i].posy, 400, (sensors[i].angle + rays[i].angle - 2) * Math.PI / 180, (sensors[i].angle + rays[i].angle + 2) * Math.PI / 180); + ctx.lineTo(sensors[i].posx, sensors[i].posy); + ctx.fill(); + } + } + } +} + +var aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorVizszintesPozicioja = 250; +var aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorFuggolegesPozicioja = 250; + +function drawCircle(){ + ctx.strokeStyle = "rgba(0, 0, 0, 0)"; + ctx.fillStyle = "black"; + ctx.beginPath(); + ctx.arc(aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorVizszintesPozicioja, aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorFuggolegesPozicioja, 4, 0, Math.PI*2, true); + ctx.fill() +} + +window.addEventListener("keydown", moveObject, false); + +function moveObject(e) { + var step=8; + switch(e.keyCode) { + case 37: + if (aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorVizszintesPozicioja - step >= 0) + aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorVizszintesPozicioja -= step; + break; + case 38: + if (aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorFuggolegesPozicioja - step >= 0) + aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorFuggolegesPozicioja -= step; + break; + case 39: + if (aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorVizszintesPozicioja + step <= 500) + aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorVizszintesPozicioja += step; + break; + case 40: + if (aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorFuggolegesPozicioja + step <= 500) + aFeherHatteruKozepenElhelyezkedoNegyzetAlakuVaszononMegjelenitettTelitettFeketenKitoltottKorFuggolegesPozicioja += step; + break; + } +} + + +function modal() { + var modal = document.getElementById("myModal"); + var btn = document.getElementById("myBtn"); + var span = document.getElementsByClassName("close")[0]; + + btn.onclick = function() { + modal.style.display = "block"; + } + span.onclick = function() { + modal.style.display = "none"; + } + window.onclick = function(event) { + if (event.target == modal) { + modal.style.display = "none"; + } + } +} + +//[0, 0], [0, 0] +function detectIntersection(x1, y1, x2, y2, x3, y3, x4, y4){ + denominator = ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1)); + if (denominator === 0) { + return false; + } + + let ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator; + let ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator; + + if (ua < 0 || ua > 1 || ub < 0 || ub > 1) { + return false; + } + + let x = x1 + ua * (x2 - x1); + let y = y1 + ua * (y2 - y1); + + return [x, y]; + +} diff --git a/erzekelo/style.css b/erzekelo/style.css new file mode 100644 index 0000000..6097eb5 --- /dev/null +++ b/erzekelo/style.css @@ -0,0 +1,176 @@ +body { + font-family: Verdana,Arial,sans-serif; + font-weight: bold; + margin-left: 10px; +} +article { + width: 600px; + margin: 100px auto; + height: 100%; +} +footer { + text-align: center; + margin: auto; + bottom: 0; + font-weight: normal; +} +#myCanvas { + border: dotted 1px; + background-color: lightgray; +} +.text { + margin-bottom: 8px; + font-weight: bold; + position: relative; + display: inline-block; + margin-top: 5px; +} + +.menu { + display: inline-block; + margin-right: 50px; + margin-bottom: 50px; + margin: auto; + padding: 10px; + border: 2px solid black; + border-radius: 4px; +} + +a{ + color: #2196F3; + text-decoration: none; + display: inline; +} + + +/*choosing thing*/ +.switch { + position: relative; + display: inline-block; + width: 60px; + height: 34px; + float: right; +} + +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 26px; + width: 26px; + left: 4px; + bottom: 4px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider { + background-color: #2196F3; +} + +input:focus + .slider { + box-shadow: 0 0 1px #2196F3; +} + +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); +} + +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +/*segédlet*/ +#myBtn{ + cursor:pointer; + margin-top: 40px; +} +.modal { + display: none; /* Hidden by default */ + position: fixed; /* Stay in place */ + z-index: 1; /* Sit on top */ + padding-top: 100px; /* Location of the box */ + left: 0; + top: 0; + width: 100%; /* Full width */ + height: 100%; /* Full height */ + overflow: auto; /* Enable scroll if needed */ + background-color: rgb(0,0,0); /* Fallback color */ + background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ +} + +.modal-content { + position: relative; + background-color: #fefefe; + margin: auto; + padding: 0; + border: 1px solid #888; + width: 80%; + box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19); + -webkit-animation-name: animatetop; + -webkit-animation-duration: 0.4s; + animation-name: animatetop; + animation-duration: 0.4s +} + +@-webkit-keyframes animatetop { + from {top:-300px; opacity:0} + to {top:0; opacity:1} +} + +@keyframes animatetop { + from {top:-300px; opacity:0} + to {top:0; opacity:1} +} + +.close { + color: white; + float: right; + font-size: 28px; + font-weight: bold; +} + +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; +} + +.modal-header { + padding: 2px 16px; + background-color: #2196F3; + color: white; +} + +.modal-body {padding: 2px 16px;} + +.modal-footer { + padding: 2px 16px; + background-color: #2196F3; + color: white; +} diff --git a/futoszalag/img/arrowDown.gif b/futoszalag/img/arrowDown.gif new file mode 100644 index 0000000..ca3eff3 Binary files /dev/null and b/futoszalag/img/arrowDown.gif differ diff --git a/futoszalag/img/arrowLeft.gif b/futoszalag/img/arrowLeft.gif new file mode 100644 index 0000000..0886346 Binary files /dev/null and b/futoszalag/img/arrowLeft.gif differ diff --git a/futoszalag/img/arrowRight.gif b/futoszalag/img/arrowRight.gif new file mode 100644 index 0000000..abb9af0 Binary files /dev/null and b/futoszalag/img/arrowRight.gif differ diff --git a/futoszalag/img/arrowUp.gif b/futoszalag/img/arrowUp.gif new file mode 100644 index 0000000..5601915 Binary files /dev/null and b/futoszalag/img/arrowUp.gif differ diff --git a/futoszalag/index.html b/futoszalag/index.html new file mode 100644 index 0000000..76334c8 --- /dev/null +++ b/futoszalag/index.html @@ -0,0 +1,552 @@ + + + + + + + 1. feladat + + + + + + +
+

Futószalag szimulátor

+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ 110
+

Sebesség

+
+
+
+
+ + + + + diff --git a/futoszalag/package.png b/futoszalag/package.png new file mode 100644 index 0000000..9ee0b85 Binary files /dev/null and b/futoszalag/package.png differ diff --git a/huszar/index.html b/huszar/index.html new file mode 100644 index 0000000..870284b --- /dev/null +++ b/huszar/index.html @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Bitfaragó - Huszárvándorlás + + + + +
+
+
+
+ + + +
+
+ 0 +
+
+ +
+
+
+
+
+
+
+
+ HoBITek © | 2019 okt. 9 +
+ + diff --git a/huszar/main.css b/huszar/main.css new file mode 100644 index 0000000..42bf3c9 --- /dev/null +++ b/huszar/main.css @@ -0,0 +1,163 @@ +td { + width: 45px; + height: 45px; + background-color: rgb(42,42,42); + border: 1px solid white; + padding: 0; + margin: 0; + font-size: 24px; + font-family: Arial, Helvetica, sans-serif; +} +#table{ + margin: auto; + border: 2px solid black; + text-align: center; + user-select: none; + cursor: crosshair; +} +header{ + margin: auto; +} +.input { + margin-bottom: 5px; + width: 110px; +} +.inline { + display: inline-block; + margin-right: 50px; + margin: auto; + padding: 10px; + border: 2px solid black; + border-radius: 4px; +} +.time{ + display: inline; + text-align: center; + font-weight: bold; + font-size: 5em; + margin-right: 50px; + float: right; +} +.button { + background-color: #017310; + border: none; + color: white; + padding: 16px 32px; + text-align: center; + font-size: 16px; + margin: 4px; + opacity: 0.8; + transition: 0.3s; + display: inline-block; + text-decoration: none; + cursor: pointer; +} +article { + height: 100%; +} +.button:hover {opacity: 1} + +footer { + text-align: center; + margin: auto; + bottom: 0; +} + +.hard{ + position: absolute; + width: 100px; + margin-right: auto; + margin-left: auto; + left: 50%; +} + +/*radio buttons*/ +.container { + display: block; + position: relative; + padding-left: 35px; + margin-bottom: 12px; + cursor: pointer; + font-size: 17px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + font-family: arial,sans-serif; + font-weight: bold; +} + +.container input { + position: absolute; + opacity: 0; + cursor: pointer; +} + +.checkmark { + position: absolute; + top: 0; + left: 0; + height: 25px; + width: 25px; + background-color: #eee; + border-radius: 50%; +} + +.container:hover input ~ .checkmark { + background-color: #ccc; +} + +.container input:checked ~ .checkmark { + background-color: #13e3eb; +} +.checkmark:after { + content: ""; + position: absolute; + display: none; +} + +.container input:checked ~ .checkmark:after { + display: block; +} + +.container .checkmark:after { + top: 9px; + left: 9px; + width: 8px; + height: 8px; + border-radius: 50%; + background: white; +} + + /*Cells*/ + .cell:hover { + background-color: yellow !important; + } + +.hardCell { + background-color: purple; +} + +.stepCell { + background-color: lime; +} + +.stepCell:hover { + background-color: yellow; +} + +.hardCell.stepCell { + background-color: green; +} + +.hardCell.stepCell:hover { + background-color: yellow; +} + +.currentCell { + background-color: darkorange; +} + +.passedCell { + background-color: red; +} diff --git a/huszar/main.js b/huszar/main.js new file mode 100644 index 0000000..3bc7306 --- /dev/null +++ b/huszar/main.js @@ -0,0 +1,368 @@ +class GridCell { + constructor(_id, xpos, ypos) { + this.id = _id; + this.x = xpos; + this.y = ypos; + this.passed = false; + this.text = 0; + this.step = true; + this.motionDetector = false; + this.motionID = -2; + } + + startTimer(interval) { + var dOld = new Date(); + var nOld; + if (this.motionID == globalMotionID){ + nOld = globalMotionTime; + } + else{ + nOld = dOld.getTime(); + } + var x = this.x; + var y = this.y; + var mid = this.motionID; + var counter = setInterval(function(){ + var dNow = new Date(); + var nNow = dNow.getTime(); + var ntime = Math.round(((interval*1000) - (nNow - nOld))/10) / 100; + if(globalx != x){ + clearInterval(counter); + globalMotionID = mid; + globalMotionTime = nOld; + if (grid[globalx][globaly].motionDetector == true){ + grid[globalx][globaly].startTimer(5); + } + else{ + globalMotionID = -1; + globalMotionTime = 0; + document.getElementById("timer").innerHTML = 0.00; + isFirtHardCellClick = true; + } + } + else if (ntime <= 0){ + clearInterval(counter); + document.getElementById("timer").innerHTML = 0.00; + state = "endOfGame"; + } + else{ + document.getElementById("timer").innerHTML = ntime; + } + + if (document.getElementById("timer").innerHTML == "0"){ + document.getElementById("timer").innerHTML = "0.00"; + } + }, 1); + } +} + +var width = 0; +var height = 0; +var state; +var cnt = 1; +var grid = []; +var running = false; +var globalx; +var globaly; +var globalMotionID = -1; +var globalMotionTime = 0; +var steps = 0; +var startx = 0; +var starty = 0; +var areas = 0; +var sizes = []; +var isFirtHardCellClick = true; +var hardSizes = []; +var hardCenters = []; + +function distance(a, b) { + const dx = a[0] - b[0]; + const dy = a[1] - b[1]; + return(Math.sqrt(dx*dx + dy*dy)); //Math.hypot(dx, dy) +} + +function start() { + if (!running) { + running = true; + generate(); + if (document.getElementById("hard").checked == true) + { + document.getElementById("timer").innerHTML = "0.0"; + areas = Math.floor(height*width/20); + + for (let i = 0; i < areas && i < 4; i++) + { + sizes.push(3 + i * 2); + } + hardMode(); + } + } +} + +function time() { + var dOld = new Date(); + var nOld = dOld.getTime(); + if (state != "endOfGame") { + var counter = setInterval(function(){ + var dNow = new Date(); + var nNow = dNow.getTime(); + timeElasped = Math.floor((nNow-nOld) / 1000); + document.getElementById("counter").innerHTML = timeElasped; + if(state == "endOfGame"){ + clearInterval(counter); + if (cnt == width * height + 1) { + result = circleSolution(); + if (result) { + alert("GG! Ön egy körútvonalat talált!!! Noice!"); + reset(); + } + else{ + alert("Nyertél!"); + reset(); + } + } + else { + alert("Vesztettél!"); + reset(); + } + } + }, 10); + } +} + +function generate() { + width = parseInt(document.getElementById("width").value); + height = parseInt(document.getElementById("height").value); + id = 0; + if (width >= 5 && height >= 5) { + table = document.getElementById("table"); + for (let i = 0; i < height; i++) { + row = table.insertRow(-1); + grid.push([]); + for (let j = 0; j < width; j++) { + grid[i].push(new GridCell(id, i, j)); + cell = row.insertCell(-1); + cell.setAttribute("class", "cell"); + cell.setAttribute("id", id); + cell.setAttribute("onclick", "cellClick(" + id + ", " + i + ", " + j + ")"); + id += 1; + } + } + } + else { + state = "endOfGame"; + alert("Rossz adat!"); + } +} + +function cellClick(id, i, j) { + if (grid[i][j].step) + { + document.getElementById(grid[i][j].id).classList.toggle("currentCell", true); + grid[i][j].passed = true; + grid[i][j].text = cnt; + if (cnt == 1) { + time(); + startx = j; + starty = i; + for (let k = 0; k < height; k++) + { + for (let l = 0; l < width; l++) + { + document.getElementById(grid[k][l].id).classList.toggle("cell", false); + } + } + } + else { + document.getElementById(grid[globalx][globaly].id).classList.toggle("currentCell", false); + document.getElementById(grid[globalx][globaly].id).classList.toggle("passedCell", true); + } + globalx = i; + globaly = j; + cnt += 1; + document.getElementById(id).innerHTML = grid[i][j].text; + search(); + if (isFirtHardCellClick && grid[i][j].motionDetector == true){ + if (grid[i][j].motionDetector == true){ + grid[i][j].startTimer(5); + } + else{ + globalMotionID = -1; + globalMotionTime = 0; + document.getElementById("timer").innerHTML = 0.00; + } + isFirtHardCellClick = false; + } + + } +} + +function search() { + steps = 0; + for (i = 0; i < height; i++) + { + for (j = 0; j < width; j++) + { + grid[i][j].step = false; + document.getElementById(grid[i][j].id).classList.toggle("stepCell", false); + } + } + cellCheck(globalx+2, globaly-1); + cellCheck(globalx+2, globaly+1); + cellCheck(globalx-2, globaly-1); + cellCheck(globalx-2, globaly+1); + cellCheck(globalx-1, globaly-2); + cellCheck(globalx-1, globaly+2); + cellCheck(globalx+1, globaly-2); + cellCheck(globalx+1, globaly+2); + if (steps == 0) + { + running = false; + state = "endOfGame"; + } +} + +function cellCheck(targetx, targety) { + if (grid[targetx] != undefined) + { + if (grid[targetx][targety] != undefined) + { + if (grid[targetx][targety].text == 0) + { + grid[targetx][targety].step = true; + document.getElementById(grid[targetx][targety].id).classList.toggle("stepCell", true); + steps++; + } + } + } +} + +function circleSolution(){ + if (globalx - 1 == startx && globaly - 2 == starty) { + return true; + } + else if (globalx + 1 == startx && globaly - 2 == starty) { + return true; + } + else if (globalx - 2 == startx && globaly - 1 == starty) { + return true; + } + else if (globalx - 2 == startx && globaly + 1 == starty) { + return true; + } + else if (globalx + 2 == startx && globaly - 1 == starty) { + return true; + } + else if (globalx + 1 == startx && globaly + 1 == starty) { + return true; + } + else if (globalx - 1 == startx && globaly + 2 == starty) { + return true; + } + else if (globalx + 1 == startx && globaly + 2 == starty) { + return true; + } + else{ + return false; + } +} + +var hc = 0; +function hardMode() { + for (let i = 0; i < areas; i++) + { + var centers = []; + hardSizes.push(sizes[Math.floor(Math.random()*sizes.length)]); + var circle = false; + for (let j = 0; j < grid.length; j++){ + for (let k = 0; k < grid[j].length; k++){ + var result = isAway([j, k]); + if (result){ + centers.push([j, k]); + circle = true; + } + } + } + if (circle){ + hardCenters.push(centers[Math.floor(Math.random() * centers.length)]); + createCircle(hardSizes[i], hardCenters[i], i); + } + else{ + hardCenters.push([-1000, -1000]); + hc++; + } + } + console.log(hc); +} + +function isAway(o) { + for (let i = 0; i < hardCenters.length; i++) { + if (distance(o, hardCenters[i]) < (hardSizes[i] - 1) / 2 + (hardSizes[hardSizes.length -1] - 1) / 2 + 1.5) + { + return false; + } + } + return true; +} + +function createCircle(size, pos, id) { + hardCells(pos[0], pos[1]); + for (var i = 0; i < (size - 1) / 2; i++) { + hardCells(pos[0] + i + 1, pos[1], id); + hardCells(pos[0] - (i + 1), pos[1], id); + hardCells(pos[0], pos[1] + i + 1, id); + hardCells(pos[0], pos[1] - (i + 1), id); + } + if (Math.random() < 0.5){ + for (var i = 0; i < (size - 1) / 2 - 1; i++) { + for (var j = 0; j < (size - 1) / 2 - i ; j++) { + hardCells(pos[0] - (i + 1), pos[1] - j, id); + hardCells(pos[0] + (i + 1), pos[1] - j, id); + hardCells(pos[0] - (i + 1), pos[1] + j, id); + hardCells(pos[0] + (i + 1), pos[1] + j, id); + } + } + } + else{ + for (var i = 0; i < (size - 1) / 2; i++) { + for (var j = 0; j < (size - 1) / 2 - (i - 1); j++) { + hardCells(pos[0] - (i + 1), pos[1] - j, id); + hardCells(pos[0] + (i + 1), pos[1] - j, id); + hardCells(pos[0] - (i + 1), pos[1] + j, id); + hardCells(pos[0] + (i + 1), pos[1] + j, id); + } + } + } +} + +function hardCells(targetx, targety, id) { + if (grid[targetx] != undefined) + { + if (grid[targetx][targety] != undefined) + { + document.getElementById(grid[targetx][targety].id).classList.toggle("hardCell", true); + grid[targetx][targety].motionDetector = true; + grid[targetx][targety].motionID = id; + } + } +} + +function reset(){ + width = 0; + height = 0; + state = null; + cnt = 1; + grid = []; + running = false; + globalx = 0; + globaly = 0; + steps = 0; + startx = 0; + starty = 0; + areas = 0; + globalMotionID = -1; + globalMotionTime = 0; + document.getElementById("counter").innerHTML = "0"; + document.getElementById("timer").innerHTML = "0.00"; + document.getElementById("table").innerHTML = ""; +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..3e9ed96 --- /dev/null +++ b/index.html @@ -0,0 +1,67 @@ + + + + + Buduf Weboldal + + + + + + + + + + +
+

Buduf Weboldal

+

Üdvözöllek a weboldalamon!

+
+ + +
+
+
+

About Me

+

Some text about me

+

Some Links

+

...

+
+
+

WEBES PROJEKTEK

+

Overwatch Heroes

+

Az első saját nagyobb weblap, amit csináltam.

+

Arany János

+

Egy irodalom projektre csináltam, nem sikerült teljesen befejezni.

+

Huszárvándorlás

+

Bitfaragó 2019 versenyre készítettük. A csapat: Balázs, Nyikus és Én

+

Mozgásérzékelők

+

Szintén a Bitfaragó 2019 versenyre készítettük. A csapat: Balázs, Nyikus és Én

+

Futószalag szimulátor

+

Ezt a Bitfaragó 2020 versenyre készítettük. A csapat: Balázs, Ricsi és Én

+

Ki nevet a végén?

+

Ezt is a Bitfaragó 2020 versenyre készítettük. A csapat: Balázs, Ricsi és Én

+
+
+
+
+ +
+

...

+
+ + + + \ No newline at end of file diff --git a/kinevet/img/526-5264193_board-game-png-board-game-figures-png-clipart.png b/kinevet/img/526-5264193_board-game-png-board-game-figures-png-clipart.png new file mode 100644 index 0000000..aac10f4 Binary files /dev/null and b/kinevet/img/526-5264193_board-game-png-board-game-figures-png-clipart.png differ diff --git a/kinevet/img/blue.png b/kinevet/img/blue.png new file mode 100644 index 0000000..8308e01 Binary files /dev/null and b/kinevet/img/blue.png differ diff --git a/kinevet/img/crown.png b/kinevet/img/crown.png new file mode 100644 index 0000000..bc74dba Binary files /dev/null and b/kinevet/img/crown.png differ diff --git a/kinevet/img/dice1.png b/kinevet/img/dice1.png new file mode 100644 index 0000000..9106840 Binary files /dev/null and b/kinevet/img/dice1.png differ diff --git a/kinevet/img/dice2.png b/kinevet/img/dice2.png new file mode 100644 index 0000000..f68e9d7 Binary files /dev/null and b/kinevet/img/dice2.png differ diff --git a/kinevet/img/dice3.png b/kinevet/img/dice3.png new file mode 100644 index 0000000..cf782ea Binary files /dev/null and b/kinevet/img/dice3.png differ diff --git a/kinevet/img/dice4.png b/kinevet/img/dice4.png new file mode 100644 index 0000000..3d06b05 Binary files /dev/null and b/kinevet/img/dice4.png differ diff --git a/kinevet/img/dice5.png b/kinevet/img/dice5.png new file mode 100644 index 0000000..c2e76fc Binary files /dev/null and b/kinevet/img/dice5.png differ diff --git a/kinevet/img/dice6.png b/kinevet/img/dice6.png new file mode 100644 index 0000000..dfabcea Binary files /dev/null and b/kinevet/img/dice6.png differ diff --git a/kinevet/img/freeze.png b/kinevet/img/freeze.png new file mode 100644 index 0000000..02eaf2c Binary files /dev/null and b/kinevet/img/freeze.png differ diff --git a/kinevet/img/ghost.png b/kinevet/img/ghost.png new file mode 100644 index 0000000..2eb8c1c Binary files /dev/null and b/kinevet/img/ghost.png differ diff --git a/kinevet/img/green.png b/kinevet/img/green.png new file mode 100644 index 0000000..bf222ac Binary files /dev/null and b/kinevet/img/green.png differ diff --git a/kinevet/img/ignite.png b/kinevet/img/ignite.png new file mode 100644 index 0000000..30da63e Binary files /dev/null and b/kinevet/img/ignite.png differ diff --git a/kinevet/img/info_icon.png b/kinevet/img/info_icon.png new file mode 100644 index 0000000..b750264 Binary files /dev/null and b/kinevet/img/info_icon.png differ diff --git a/kinevet/img/level2.png b/kinevet/img/level2.png new file mode 100644 index 0000000..0fa2035 Binary files /dev/null and b/kinevet/img/level2.png differ diff --git a/kinevet/img/level3.png b/kinevet/img/level3.png new file mode 100644 index 0000000..dae5529 Binary files /dev/null and b/kinevet/img/level3.png differ diff --git a/kinevet/img/level4.png b/kinevet/img/level4.png new file mode 100644 index 0000000..b45b11d Binary files /dev/null and b/kinevet/img/level4.png differ diff --git a/kinevet/img/red.png b/kinevet/img/red.png new file mode 100644 index 0000000..97a21dc Binary files /dev/null and b/kinevet/img/red.png differ diff --git a/kinevet/img/yellow.png b/kinevet/img/yellow.png new file mode 100644 index 0000000..2f65e0c Binary files /dev/null and b/kinevet/img/yellow.png differ diff --git a/kinevet/index.html b/kinevet/index.html new file mode 100644 index 0000000..f4f294c --- /dev/null +++ b/kinevet/index.html @@ -0,0 +1,143 @@ + + + + + + + Ki nevet a végén + + + + + + + + +
+
+

Ki nevet a végén?

+
+
+

Játékmód kiválasztása

+
+
+
+
+
+
+ 2 játékos mód +

2 játékos mód

+
+
+
+
+ 3 játékos mód +

3 játékos mód

+
+
+
+
+ 4 játékos mód +

4 játékos mód

+
+
+
+
+
+
+
+
+ dobókocka + +
+
+ Guide +
+ Játékos +
+
+
A soron következő játékos
+

Kék

+
+
Felégetés
+
Gyorsaság
+
Fagyasztás
+
+
+
+
+ +
+ + + +
+
+
+ + + +
+ + \ No newline at end of file diff --git a/kinevet/script.js b/kinevet/script.js new file mode 100644 index 0000000..d13a9ab --- /dev/null +++ b/kinevet/script.js @@ -0,0 +1,386 @@ +var canvas; +/** @type {CanvasRenderingContext2D} */ +var ctx; +/** @type {Array} */ +var game = []; +/** @type {Array} */ +var players = []; +var fieldCount = 0; +var playerCount = 0; +var currentPlayer = 0; +var doubleBuff = false; +var igniteBuff = false; +var frostBuff = false; +var nextplayer = true; +var inAnimation = false; + +class Field { + constructor(id, x, y) { + this.id = id; + this.x = x; + this.y = y; + this.color = "yellow"; + this.extrafield = 0; + this.ignited = false; + this.igniteID = -1; + } + draw() { + ctx.fillStyle = this.color; + ctx.beginPath(); + ctx.arc(this.x, this.y, 20, 0, 2 * Math.PI); + ctx.fill(); + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; + ctx.font = "20px Arial" + ctx.fillStyle = "black"; + ctx.fillText(this.id, this.x, this.y, 32); + } +} + +class Player { + constructor(color) { + this.color = color; + this.image = new Image(); + this.image.src = "img/" + color + ".png"; + this.position = 0; + this.setField(game[0]); + this.spells = [true, true, true]; + this.spellsTemporary = [false, false, false]; + this.skipTurn = false; + } + setField(field) { + this.position = field.id; + this.x = field.x - 10; + this.y = field.y - 20; + } + draw() { + ctx.drawImage(this.image, this.x, this.y, 20, 40); + } + spell(x) { + if (!inAnimation) { + if (this.spells[x - 1]) { + switch (x) { + case 1: + this.spellsTemporary[x - 1] = !this.spellsTemporary[x - 1]; + if (!igniteBuff) { + igniteBuff = true; + document.getElementById("ability" + x).style.backgroundColor = "blue"; + } else { + igniteBuff = false; + document.getElementById("ability" + x).style.backgroundColor = "green"; + } + break; + case 2: + this.spellsTemporary[x - 1] = !this.spellsTemporary[x - 1]; + if (!doubleBuff) { + doubleBuff = true; + document.getElementById("ability" + x).style.backgroundColor = "blue"; + } else { + doubleBuff = false; + document.getElementById("ability" + x).style.backgroundColor = "green"; + }; + break; + case 3: + this.spellsTemporary[x - 1] = !this.spellsTemporary[x - 1]; + if (!frostBuff) { + frostBuff = true; + document.getElementById("ability" + x).style.backgroundColor = "blue"; + } else { + frostBuff = false; + document.getElementById("ability" + x).style.backgroundColor = "green"; + }; + break; + } + } + + } + } +} + +function init(x) { + playerCount = x; + document.getElementById("gamemode").style.display = "none"; + document.getElementById("game").style.display = "block"; + canvas = document.getElementById("canvas"); + ctx = canvas.getContext("2d"); + generateFields(); + addPlayers(); + redraw(); +} + +function generateFields() { + for (let i = 1; i <= 9; i++) { + game.push(new Field(fieldCount++, i * 60, 60)); + } + + game.push(new Field(fieldCount++, 540, 120)); + game.push(new Field(fieldCount++, 540, 180)); + game.push(new Field(fieldCount++, 540, 240)); + + for (let i = 9; i >= 1; i--) { + game.push(new Field(fieldCount++, i * 60, 300)); + } + + game.push(new Field(fieldCount++, 60, 360)); + game.push(new Field(fieldCount++, 60, 420)); + game.push(new Field(fieldCount++, 60, 480)); + + for (let i = 1; i <= 9; i++) { + game.push(new Field(fieldCount++, i * 60, 540)); + } + + // Start mező + game[0].color = "lime"; + // Cél + game[32].color = "lime"; + + // Kimarad egy körből + for (const index of [6, 15, 22, 30]) { + game[index].extraField = 1; + game[index].color = "aqua"; + } + + // Mégegyszer jön + for (const index of [9, 16, 25]) { + game[index].extraField = 2; + game[index].color = "magenta"; + } + + // Visszatölti a képességeket + for (const index of [1, 11, 21]) { + game[index].extraField = 3; + game[index].color = "darkblue"; + } +} + +function addPlayers() { + players.push(new Player("blue")); + players.push(new Player("green")); + if (playerCount > 2) { + players.push(new Player("red")); + if (playerCount == 4) { + players.push(new Player("yellow")); + } + } + players[currentPlayer].image.onload = function () { + players[currentPlayer].draw(); + } +} + +function redraw() { + ctx.clearRect(0, 0, 600, 600); + for (let i = 0; i < fieldCount; i++) { + game[i].draw(); + } + for (let i = 0; i < playerCount; i++) { + players[i].draw(); + } +} + +function nextStep(amount) { + nextplayer = false; + document.getElementById("roll").disabled = true; + // Ha a játékos másik játékosra lépne + if (amount != 0) { + while (isThereAPlayer(players[currentPlayer].position + amount)) { + amount++; + } + } + // Ha túl sokat lépne a játékos vagy túl keveset + if (amount > 32 - players[currentPlayer].position) { + amount = 32 - players[currentPlayer].position; + } + if (amount < -players[currentPlayer].position) { + amount = -players[currentPlayer].position; + } + animateToNextField(amount); +} + +function isThereAPlayer(pos) { + for (let i = 0; i < playerCount; i++) { + if (players[i].position == pos) { + return true; + } + } +} + +function endStep() { + if (players[currentPlayer].position == 32) { + winner(players[currentPlayer].color); + return; + } + if (game[players[currentPlayer].position].ignited) { + animateToNextField(-1); + } else { + // Extra mező + switch (game[players[currentPlayer].position].extraField) { + case 1: + // Kimarad egy körből + players[currentPlayer].skipTurn = true; + break; + // Mégegyszer jön nem itt van kezelve (2) + case 3: + // Újratölti a képességeit + players[currentPlayer].spells = [true, true, true]; + players[currentPlayer].spellsTemporary = [false, false, false]; + break; + default: + break; + } + // Teszteli, ha a következő játékos kimaradna + while (players[(currentPlayer + 1) % playerCount].skipTurn) { + currentPlayer = (currentPlayer + 1) % playerCount; + players[currentPlayer].skipTurn = false; + } + // Következő játékos, ha nem mégegyszer jön + if (game[players[currentPlayer].position].extraField != 2) { + currentPlayer = (currentPlayer + 1) % playerCount; + } + nextplayer = true; + document.getElementById("roll").disabled = false; + switch (currentPlayer) { + case 0: + document.getElementById("nextPlayer").src = "img/blue.png"; + document.getElementById("nextPlayer").title = "Kék játékos"; + document.getElementById("nextPlayerColor").innerHTML = "Kék"; + break; + case 1: + document.getElementById("nextPlayer").src = "img/green.png"; + document.getElementById("nextPlayer").title = "Zöld játékos"; + document.getElementById("nextPlayerColor").innerHTML = "Zöld"; + break; + case 2: + document.getElementById("nextPlayer").src = "img/red.png"; + document.getElementById("nextPlayer").title = "Piros játékos"; + document.getElementById("nextPlayerColor").innerHTML = "Piros"; + break; + case 3: + document.getElementById("nextPlayer").src = "img/yellow.png"; + document.getElementById("nextPlayer").title = "Sárga játékos"; + document.getElementById("nextPlayerColor").innerHTML = "Sárga"; + break; + default: + document.getElementById("nextPlayer").src = "img/blue.png"; + document.getElementById("nextPlayer").title = "Kék játékos"; + document.getElementById("nextPlayerColor").innerHTML = "Kék"; + } + game.forEach((element, index, array) => { + if (element.igniteID == currentPlayer) { + var array1 = [6, 15, 22, 30]; + var array2 = [9, 16, 25]; + element.ignited = false; + element.color = "yellow"; + element.igniteID = -1; + if (array1.includes(index)) { + element.color = "aqua"; + } else if (array2.includes(index)) { + element.color = "magenta"; + } + } + }); + for (let i = 0; i < 3; i++) { + if (!players[currentPlayer].spells[i]) { + document.getElementById("ability" + (i + 1).toString()).style.backgroundColor = "red"; + document.getElementById("ability" + (i + 1).toString()).classList.remove("zoom"); + } else { + document.getElementById("ability" + (i + 1).toString()).style.backgroundColor = "green"; + document.getElementById("ability" + (i + 1).toString()).classList.add("zoom"); + } + } + inAnimation = false; + } +} + +function animateToNextField(amount) { + var currentField = game[players[currentPlayer].position]; + var nextField; + if (amount > 0) { + nextField = game[players[currentPlayer].position + 1]; + amount--; + } else if (amount < 0) { + nextField = game[players[currentPlayer].position - 1]; + amount++; + } else { + if (!nextplayer) { + endStep(); + } + return; + } + var direction = []; + direction[0] = nextField.x - currentField.x; + direction[1] = nextField.y - currentField.y; + direction[0] /= 60; + direction[1] /= 60; + var count = 0; + var timer = setInterval(function () { + players[currentPlayer].x += direction[0] * 2; + players[currentPlayer].y += direction[1] * 2; + redraw(); + if (++count == 30) { + clearInterval(timer); + players[currentPlayer].setField(nextField); + setTimeout(animateToNextField, 120, amount); + } + }, 16, direction, nextField); +} + +function dice() { + inAnimation = true; + random = Math.floor(Math.random() * 6 + 1); + document.getElementById("dice").src = "img/dice" + random + ".png"; + if (doubleBuff) { + random *= 2; + doubleBuff = false; + } + if (igniteBuff) { + igniteBuff = false; + var a = players[currentPlayer].position; + var b = players[currentPlayer].position + random; + for (var i = a + 1; i < b; i++) { + game[i].ignited = true; + game[i].color = "red"; + game[i].igniteID = currentPlayer; + } + redraw(); + } + if (frostBuff) { + frostBuff = false; + var a = 0; + players.forEach((element, index, array) => { + if (element.position > players[a].position) a = index; + }); + players[a].skipTurn = true; + } + for (var i = 0; i < 3; i++) { + if (players[currentPlayer].spellsTemporary[i]) + players[currentPlayer].spells[i] = false; + } + nextStep(random); +} + +function spell(x) { + players[currentPlayer].spell(x) +} + +function winner(x) { + document.getElementById("winnerColor").src = "img/" + x + ".png"; + switch (x) { + case "green": + document.getElementById("winnerText").innerHTML = "A zöld játékos nyert!"; + break; + case "red": + document.getElementById("winnerText").innerHTML = "A piros játékos nyert!"; + break; + case "blue": + document.getElementById("winnerText").innerHTML = "A kék játékos nyert!"; + break; + case "yellow": + document.getElementById("winnerText").innerHTML = "A sárga játékos nyert!"; + break; + default: + document.getElementById("winnerText").innerHTML = "A játékos nyert!"; + } + document.getElementById("winnerText"); + $('#exampleModalCenter').modal('show') + +} \ No newline at end of file diff --git a/kinevet/style.css b/kinevet/style.css new file mode 100644 index 0000000..221ca07 --- /dev/null +++ b/kinevet/style.css @@ -0,0 +1,137 @@ +#canvas { + display: block; + margin: auto; + background-color: lightgray; + +} +#gamemode{ + text-align: center; +} +#gamemode p{ + margin-top: 50px; + font-size: 25px; +} +#game{ + display: none; +} +h1{ + text-align: center; + font-weight: bold; + margin-top: 20px; + margin-bottom: 40px; +} + +h3{ + margin-top: 100px; + text-align: center; +} +.center{ + display: block; + margin-left: auto; + margin-right: auto; + width: 600px; +} +.inside{ + position: absolute; + width: 450px; + height: 150px; + top: 490px; + margin-left: 100px; +} +.dice img{ + margin-left: 30px; + margin-top: -45px; + width: 120px; + height: 120px; +} +.dice button{ + margin-top: -45px; + margin-left: 70px; +} + +.inside2{ + position: absolute; + width: 450px; + height: 150px; + top: 250px; + margin-left: 50px; +} +.inside2 img{ + margin-left: 36px; + height: 130px; +} +.circle { + margin-top: -60px; + height: 140px; + width: 140px; + background-color: orange; + border-radius: 50%; + border: 5px yellow solid; +} +.nextPlayer{ + margin-left: 130px; + margin-top: -120px; + text-align: center; + width: 300px; +} +.nextPlayer p{ + text-align: center; +} + +.gamemodes{ + display: block; + margin-left: auto; + margin-right: auto; + width: 50%; + } +.gamemodes:hover{ + -webkit-transform: scale(1.05); + -moz-transform: scale(1.05); + -o-transform: scale(1.05); + transform: scale(1.05); + -webkit-transform-origin: top right; + -moz-transform-origin: top right; + -o-transform-origin: top right; + transform-origin: top right; + cursor: pointer; +} +.gamemodes img{ + scale: 140%; + +} +.abilities{ + width: 250px; + margin-top: -10px; +} +.abilities img{ + height: 50px; +} +.zoom:hover{ + -webkit-transform: scale(1.05); + -moz-transform: scale(1.05); + -o-transform: scale(1.05); + transform: scale(1.05); + -webkit-transform-origin: top right; + -moz-transform-origin: top right; + -o-transform-origin: top right; + transform-origin: top right; + cursor: pointer; +} +.guide{ + margin-top: 20px; + margin-left: 20px; +} +.guide .row{ + margin-top: 5px; +} +.smallCircle{ + height: 50px; + width: 50px; + border-radius: 50%; + display: inline-block; +} +.guideText{ + margin-left: 10px; + margin-top: 10px; + display: inline-block; +} diff --git a/owheroes/damage.html b/owheroes/damage.html new file mode 100644 index 0000000..ee4e9fe --- /dev/null +++ b/owheroes/damage.html @@ -0,0 +1,68 @@ + + + + + + + + + + + OW Heroes - Damage + + + +
+
+

Overwatch Heroes

+ +
+
+
+

Soldier: 76

+

Armed with cutting-edge weaponry, including an experimental pulse rifle that’s capable of firing spirals of high-powered Helix Rockets, Soldier: 76 has the speed and support know-how of a highly trained warrior.

+ +
+
+

Genji

+

Genji flings precise and deadly Shuriken at his targets, and uses his technologically-advanced katana to deflect projectiles or deliver a Swift Strike that cuts down enemies.

+ +
+
+

Tracer

+

Toting twin pulse pistols, energy-based time bombs, and rapid-fire banter, Tracer is able to "blink" through space and rewind her personal timeline as she battles to right wrongs the world over.

+ +
+
+
+ + + \ No newline at end of file diff --git a/owheroes/fonts/FuturaNo2D.ttf b/owheroes/fonts/FuturaNo2D.ttf new file mode 100644 index 0000000..2588f2c Binary files /dev/null and b/owheroes/fonts/FuturaNo2D.ttf differ diff --git a/owheroes/fonts/bignoodletoo.ttf b/owheroes/fonts/bignoodletoo.ttf new file mode 100644 index 0000000..574278f Binary files /dev/null and b/owheroes/fonts/bignoodletoo.ttf differ diff --git a/owheroes/imgs/background.png b/owheroes/imgs/background.png new file mode 100644 index 0000000..415c17c Binary files /dev/null and b/owheroes/imgs/background.png differ diff --git a/owheroes/imgs/damage.png b/owheroes/imgs/damage.png new file mode 100644 index 0000000..f4f4108 Binary files /dev/null and b/owheroes/imgs/damage.png differ diff --git a/owheroes/imgs/heroes/dva.png b/owheroes/imgs/heroes/dva.png new file mode 100644 index 0000000..41020b7 Binary files /dev/null and b/owheroes/imgs/heroes/dva.png differ diff --git a/owheroes/imgs/heroes/genji.png b/owheroes/imgs/heroes/genji.png new file mode 100644 index 0000000..a2b2d29 Binary files /dev/null and b/owheroes/imgs/heroes/genji.png differ diff --git a/owheroes/imgs/heroes/lucio.png b/owheroes/imgs/heroes/lucio.png new file mode 100644 index 0000000..017953c Binary files /dev/null and b/owheroes/imgs/heroes/lucio.png differ diff --git a/owheroes/imgs/heroes/mercy.png b/owheroes/imgs/heroes/mercy.png new file mode 100644 index 0000000..edd6ba1 Binary files /dev/null and b/owheroes/imgs/heroes/mercy.png differ diff --git a/owheroes/imgs/heroes/reinhardt.png b/owheroes/imgs/heroes/reinhardt.png new file mode 100644 index 0000000..88f9702 Binary files /dev/null and b/owheroes/imgs/heroes/reinhardt.png differ diff --git a/owheroes/imgs/heroes/soldier76.png b/owheroes/imgs/heroes/soldier76.png new file mode 100644 index 0000000..1855293 Binary files /dev/null and b/owheroes/imgs/heroes/soldier76.png differ diff --git a/owheroes/imgs/heroes/tracer.png b/owheroes/imgs/heroes/tracer.png new file mode 100644 index 0000000..757a5ff Binary files /dev/null and b/owheroes/imgs/heroes/tracer.png differ diff --git a/owheroes/imgs/heroes/winston.png b/owheroes/imgs/heroes/winston.png new file mode 100644 index 0000000..4fa2fc9 Binary files /dev/null and b/owheroes/imgs/heroes/winston.png differ diff --git a/owheroes/imgs/heroes/zenyatta.png b/owheroes/imgs/heroes/zenyatta.png new file mode 100644 index 0000000..38ec8c4 Binary files /dev/null and b/owheroes/imgs/heroes/zenyatta.png differ diff --git a/owheroes/imgs/icons/Windows10Upgrade9252.exe b/owheroes/imgs/icons/Windows10Upgrade9252.exe new file mode 100644 index 0000000..c2ec68d Binary files /dev/null and b/owheroes/imgs/icons/Windows10Upgrade9252.exe differ diff --git a/owheroes/imgs/icons/dva.png b/owheroes/imgs/icons/dva.png new file mode 100644 index 0000000..141674d Binary files /dev/null and b/owheroes/imgs/icons/dva.png differ diff --git a/owheroes/imgs/icons/genji.png b/owheroes/imgs/icons/genji.png new file mode 100644 index 0000000..63978f7 Binary files /dev/null and b/owheroes/imgs/icons/genji.png differ diff --git a/owheroes/imgs/icons/lucio.png b/owheroes/imgs/icons/lucio.png new file mode 100644 index 0000000..1e7382a Binary files /dev/null and b/owheroes/imgs/icons/lucio.png differ diff --git a/owheroes/imgs/icons/mercy.png b/owheroes/imgs/icons/mercy.png new file mode 100644 index 0000000..2f512c4 Binary files /dev/null and b/owheroes/imgs/icons/mercy.png differ diff --git a/owheroes/imgs/icons/reinhardt.png b/owheroes/imgs/icons/reinhardt.png new file mode 100644 index 0000000..02c1bfb Binary files /dev/null and b/owheroes/imgs/icons/reinhardt.png differ diff --git a/owheroes/imgs/icons/soldier76.png b/owheroes/imgs/icons/soldier76.png new file mode 100644 index 0000000..8f1ad62 Binary files /dev/null and b/owheroes/imgs/icons/soldier76.png differ diff --git a/owheroes/imgs/icons/tracer.png b/owheroes/imgs/icons/tracer.png new file mode 100644 index 0000000..5ccaa12 Binary files /dev/null and b/owheroes/imgs/icons/tracer.png differ diff --git a/owheroes/imgs/icons/winston.png b/owheroes/imgs/icons/winston.png new file mode 100644 index 0000000..38429b8 Binary files /dev/null and b/owheroes/imgs/icons/winston.png differ diff --git a/owheroes/imgs/icons/zenyatta.png b/owheroes/imgs/icons/zenyatta.png new file mode 100644 index 0000000..4fe0f7a Binary files /dev/null and b/owheroes/imgs/icons/zenyatta.png differ diff --git a/owheroes/imgs/owicon.png b/owheroes/imgs/owicon.png new file mode 100644 index 0000000..c2574d1 Binary files /dev/null and b/owheroes/imgs/owicon.png differ diff --git a/owheroes/imgs/owlogo.png b/owheroes/imgs/owlogo.png new file mode 100644 index 0000000..84bd275 Binary files /dev/null and b/owheroes/imgs/owlogo.png differ diff --git a/owheroes/imgs/support.png b/owheroes/imgs/support.png new file mode 100644 index 0000000..da0c3a2 Binary files /dev/null and b/owheroes/imgs/support.png differ diff --git a/owheroes/imgs/tank.png b/owheroes/imgs/tank.png new file mode 100644 index 0000000..1b735b5 Binary files /dev/null and b/owheroes/imgs/tank.png differ diff --git a/owheroes/index.html b/owheroes/index.html new file mode 100644 index 0000000..1c741aa --- /dev/null +++ b/owheroes/index.html @@ -0,0 +1,132 @@ + + + + + + + + + + + + Tic Tact Toe + + + +
+
+

Overwatch Heroes

+
+
+

ROLES

+
+ +
+ +
+
+
+ + + + + + + + + +
+

Select your hero!

+
+

+
+
+ + + + + + + + + + + + + + +
+

Tic-Tac-Toe

+
+

+
+
+
+
+ + + + + + + + + +
+

Select your hero!

+
+

+
+
+
+ + + \ No newline at end of file diff --git a/owheroes/style.css b/owheroes/style.css new file mode 100644 index 0000000..ffb156b --- /dev/null +++ b/owheroes/style.css @@ -0,0 +1,250 @@ +@font-face { + font-family: BigNoodleToo; + src: url("fonts/bignoodletoo.ttf"); +} + +@font-face { + font-family: FuturaNo2D; + src: url("fonts/FuturaNo2D.ttf"); +} + +.nopadding { + padding: 0 !important; + margin: 0 !important; +} + +body { + background-image: url("imgs/background.png"); + background-repeat: no-repeat; + background-attachment: fixed; + background-position: center center; + background-size: cover; + background-color: white; +} + +#fejlec { + background-color: rgba(224, 224, 255, 0.5); + padding: 50px 0px 0px 0px; +} + +#torzs { + background-color: rgba(224, 224, 255, 0.5); + padding: 15px !important; +} + +.cim { + letter-spacing: 3px; + margin-bottom: 25px; +} + +.roles, +.play { + line-height: 75px; + display: block; + font-family: BigNoodleToo; + font-size: 60px; + color: white; + text-shadow: -1px 0 rgba(0, 0, 0, 0.5), 0 1px rgba(0, 0, 0, 0.5), 1px 0 rgba(0, 0, 0, 0.5), 0 -1px rgba(0, 0, 0, 0.5); + text-align: center; + background-color: rgba(43, 55, 83, 0.25); +} + +.roles { + border-right: solid 1px black; +} + +.play:hover { + font-size: 75px; + color: white; + text-decoration: none; +} + +.playing { + font-size: 75px; + background-image: radial-gradient(white 5%, white 18%, rgba(0, 0, 0, 0) 75%) +} + +.nav { + background-color: rgb(43, 55, 83); +} + +.imgroles { + position: relative; + height: 30px; + width: 30px; + vertical-align: text-bottom; +} + +.role { + line-height: 50px; + color: rgb(0, 191, 255); + display: block; + width: 100%; + height: 50px; + text-align: center; + font-family: FuturaNo2D; + font-size: 25px; + border-right: solid 1px black; +} + +.role:hover { + color: rgb(0, 191, 255); + text-decoration: none; + background-color: rgb(43, 55, 83); + border-bottom: solid 6px rgb(0, 191, 255); +} + +.active { + color: white !important; + background-color: rgba(0, 191, 255, 0.75) !important; + border-bottom: solid 6px rgb(0, 191, 255); +} + +.credit { + line-height: 20px; + color: rgb(0, 191, 255); + ; + font-family: FuturaNo2D; + text-align: right; + font-size: 15px; + margin: 0; + padding: 5px; +} + +.owlogo { + height: 50px; + width: 50px; + float: right; + border-left: solid 1px black; + margin: -5px -5px -5px 5px; +} + +article { + padding: 15px; +} + +.hero { + font-family: BigNoodleToo; + text-align: center; + font-weight: normal; +} + +.img-thumbnail { + width: 100%; + margin-bottom: 20px; + box-shadow: 1px 1px 0 3px gray; + background-color: white; +} + +/*Tic Tac Toe*/ + +#red { + padding: 15px; + background-color: rgb(255, 128, 128); +} + +#green { + padding: 15px; + background-color: rgb(128, 255, 128); +} + +#blue { + padding: 15px; + background-color: rgb(128, 128, 255); +} + +input { + background-size: 100%; +} + +input:focus { + outline: none; +} + +table { + margin: 50px auto; + width: 225px; +} + +td { + width: 100px; + height: 100px; + padding: 5px; +} + +.heroicon { + background-color: black; + border: solid white 1px; + height: 100%; + width: 100%; +} + +.board { + margin-top: 0 !important; + margin-bottom: 0 !important; + width: auto; +} + +.tictactoe { + height: 100%; + width: 100%; + background-color: white; + border: solid 2px black; +} + +#score { + text-shadow: 1px 1px 3px #000000; + display: block; + height: 100px; +} + +.controls { + background-color: black; + margin: 15px -15px -15px -15px; + height: 40px; +} + +.newgame { + position: relative; + font-size: 25px; + width: 100%; + height: 100%; + text-align: center; + font-family: FuturaNo2D; + background-color: rgb(255, 200, 0); + border: none; + color: white; +} + +.newgame:hover { + background-color: rgba(255, 200, 0, 0.8); + color: white; + border: none; + outline: 3px solid white; + text-decoration: none; + z-index: 1000; +} + +td.selecthero { + width: 75px; + height: 75px; + padding: 2px; +} + +#blueheroselect>thead>tr>th>p, +#redheroselect>thead>tr>th>p { + display: block; + height: 50px; + line-height: 50px; + font-size: 40px; +} + +#bluegameover, +#redgameover { + text-shadow: 1px 1px 3px #000000; + height: 530px; + line-height: 530px; + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} \ No newline at end of file diff --git a/owheroes/support.html b/owheroes/support.html new file mode 100644 index 0000000..a34f258 --- /dev/null +++ b/owheroes/support.html @@ -0,0 +1,68 @@ + + + + + + + + + + + OW Heroes - Support + + + +
+
+

Overwatch Heroes

+ +
+
+
+

Mercy

+

Mercy’s Valkyrie Suit helps keep her close to teammates like a guardian angel; healing, resurrecting or strengthening them with the beams emanating from her Caduceus Staff.

+ +
+
+

Zenyatta

+

Zenyatta calls upon orbs of harmony and discord to heal his teammates and weaken his opponents, all while pursuing a transcendent state of immunity to damage.

+ +
+
+

Lucio

+

On the battlefield, Lúcio’s cutting-edge Sonic Amplifier buffets enemies with projectiles and knocks foes back with blasts of sound. His songs can both heal his team or boost their movement speed, and he can switch between tracks on the fly.

+ +
+
+
+ + + \ No newline at end of file diff --git a/owheroes/tank.html b/owheroes/tank.html new file mode 100644 index 0000000..7c543e2 --- /dev/null +++ b/owheroes/tank.html @@ -0,0 +1,68 @@ + + + + + + + + + + + OW Heroes - Tank + + + +
+
+

Overwatch Heroes

+ +
+
+
+

Reinhardt

+

Clad in powered armor and swinging his hammer, Reinhardt leads a rocket-propelled charge across the battleground and defends his squadmates with a massive energy barrier.

+ +
+
+

D. VA

+

D.Va’s mech is nimble and powerful—its twin Fusion Cannons blast away with autofire at short range, and she can use its Boosters to barrel over enemies and obstacles, or deflect attacks with her projectile-dismantling Defense Matrix.

+ +
+
+

Winston

+

Winston wields impressive inventions—a jump pack, electricity-blasting Tesla Cannon, portable shield projector and more—with literal gorilla strength.

+ +
+
+
+ + + \ No newline at end of file diff --git a/owheroes/tictactoe.js b/owheroes/tictactoe.js new file mode 100644 index 0000000..00c858a --- /dev/null +++ b/owheroes/tictactoe.js @@ -0,0 +1,163 @@ +var round = [0, 0]; +var p = []; +var blue = ""; +var red = ""; +var g = false; +var bluescore = 0; +var redscore = 0; + +for (i=0;i<3;i++) +{ + p[i] = new Array(3); + for (j=0;j<3;j++) + { + p[i][j] = 0; + } +} + +function game(event) { + if (g) + { + var e = event.currentTarget.id; + var x = Number(e[1]); + var y = Number(e[2]); + if (p[x][y] == 0) + { + round[1]++; + if ((round[0] + round[1]) % 2 == 1) + { + event.currentTarget.style.background = 'url("imgs/icons/' + blue + '.png") blue no-repeat'; + event.currentTarget.style.backgroundSize = "86px 86px"; + p[x][y] = -1; + console.log("round: " + round[1] + " blue"); + } + else if ((round[0] + round[1]) % 2 == 0) + { + event.currentTarget.style.background = 'url("imgs/icons/' + red + '.png") red no-repeat'; + event.currentTarget.style.backgroundSize = "86px 86px"; + p[x][y] = 1; + console.log("round: " + round[1] + " red"); + } + console.log("step: " + x + " " + y); + check(); + } + } +} + +function check() { + var temp = 0; + for (i=0;i<3;i++) + { + temp = p[i][0]; + if (temp == p[i][1] && temp == p[i][2] && temp !=0) + { + gameover(temp); + } + temp = p[0][i]; + if (temp == p[1][i] && temp == p[2][i] && temp != 0) + { + gameover(temp); + } + } + temp = p[0][0]; + if (temp == p[1][1] && temp == p[2][2] && temp != 0) + { + gameover(temp); + } + temp = p[0][2]; + if (temp == p[1][1] && temp == p[2][0] && temp != 0) + { + gameover(temp); + } + if (round[1] == 9 && g == true) + { + gameover(0); + } +} + +function gameover(w) { + g = false; + console.log("victory: " + w); + if (w == -1) + { + document.getElementById("bluegameover").innerHTML = "Victory!"; + document.getElementById("bluegameover").style.color = "yellow"; + document.getElementById("redgameover").innerHTML = "Defeat!"; + document.getElementById("redgameover").style.color = "red"; + bluescore++; + document.getElementById("score").innerHTML = bluescore + " - " + redscore; + document.getElementById("score").style.color = "yellow"; + } + if (w == 1) + { + document.getElementById("redgameover").innerHTML = "Victory!"; + document.getElementById("redgameover").style.color = "yellow"; + document.getElementById("bluegameover").innerHTML = "Defeat!"; + document.getElementById("bluegameover").style.color = "red"; + redscore++; + document.getElementById("score").innerHTML = bluescore + " - " + redscore; + document.getElementById("score").style.color = "yellow"; + } + if (w == 0) + { + document.getElementById("score").innerHTML = "Draw!"; + document.getElementById("score").style.color = "orange"; + } +} + +function selectedblue(event) { + if (blue == "") + { + a = String(event.currentTarget.id).split("-"); + blue = a[1]; + console.log("blue: " + blue); + document.getElementById("blueheroselect").classList.remove("d-block"); + document.getElementById("blueheroselect").classList.add("d-none"); + document.getElementById("bluegameover").classList.remove("d-none"); + document.getElementById("bluegameover").classList.add("d-block"); + document.getElementById("bluegameover").style.backgroundImage = 'url("imgs/heroes/' + blue + '.png")'; + startgame(); + } +} + +function selectedred(event) { + if (red == "") + { + a = String(event.currentTarget.id).split("-"); + red = a[1]; + console.log("red: " + red); + document.getElementById("redheroselect").classList.remove("d-block"); + document.getElementById("redheroselect").classList.add("d-none"); + document.getElementById("redgameover").classList.remove("d-none"); + document.getElementById("redgameover").classList.add("d-block"); + document.getElementById("redgameover").style.backgroundImage = 'url("imgs/heroes/' + red + '.png")'; + startgame(); + } +} + +function startgame() { + if ((red != "") && (blue != "")) + { + g = true; + } +} + +function newgame() { + round[0]++; + console.log("match: " + round[0]); + round[1] = 0; + document.getElementById("bluegameover").innerHTML = ""; + document.getElementById("redgameover").innerHTML = ""; + document.getElementById("score").innerHTML = bluescore + " - " + redscore; + document.getElementById("score").style.color = "yellow"; + for (i=0;i<3;i++) + { + for(j=0;j<3;j++) + { + p[i][j] = 0; + document.getElementById("p" + String(i) + String(j)).style.backgroundImage = "none"; + document.getElementById("p" + String(i) + String(j)).style.backgroundColor = "white"; + } + } + g = true; +}