Initial commit

This commit is contained in:
Buduf 2021-11-02 07:56:51 +01:00
commit 4bdaa9ba8d
84 changed files with 4914 additions and 0 deletions

119
aranyjanos/ballada.js Normal file
View File

@ -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("<br>");
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;
}

103
aranyjanos/balladak.html Normal file
View File

@ -0,0 +1,103 @@
<!DOCTYPE html>
<html lang="hu" dir="ltr">
<head>
<meta charset="utf-8">
<title>Balladák</title>
<link rel="stylesheet" href="style.css">
<link rel="icon" href="/AranyJanos/favicon.ico">
<script src="ballada.js" charset="utf-8"></script>
</head>
<body onload="init()">
<header class="header">
<h1>Arany János</h1>
</header>
<nav>
<a href="index.html">Főoldal</a>
<a class="active" href="balladak.html">Balladák</a>
<a href="game.html">Ballada kitaláló</a>
</nav>
<main>
<div id="left">
<select id="ballada" onchange="loadBallada()">
<option value="">Ballada kiválasztása...</option>
</select>
<p id="vers"></p>
</div>
<div id="right">
<h2>Ballada adatok</h2>
<table>
<thead>
<tr>
<th colspan="2">A vers szempontjai</th>
</tr>
</thead>
<tbody>
<tr>
<th>Korszak</th>
<td id="k"></td>
</tr>
<tr>
<th>Téma</th>
<td id="t"></td>
</tr>
<tr>
<th>Szerkezet</th>
<td id="s"></td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th colspan="2">Statisztikák</th>
</tr>
</thead>
<tbody>
<tr>
<th>Versszakok száma</th>
<td id="vsz"></td>
</tr>
<tr>
<th>Verssorok száma</th>
<td id="vs"></td>
</tr>
<tr>
<th>Karakterek száma (kivéve szóköz)</th>
<td id="kar"></td>
</tr>
<tr>
<th>Szavak száma sorokban átlag</th>
<td id="vsa"></td>
</tr>
<tr>
<th>Szavak száma versszakokban átlag</th>
<td id="sza"></td>
</tr>
</tbody>
</table>
<table id="vszStat">
<thead>
<tr>
<th colspan="10">Versszakok statisztikái</th>
</tr>
</thead>
<tbody>
<tr id="vszNumber">
<th colspan="4">Versszakok</th>
</tr>
<tr id="vszWords">
<th colspan="4">Szavak száma</th>
</tr>
<tr id="vszChaars">
<th colspan="4">Karakterek száma</th>
</tr>
<tr id="vszLine">
<th colspan="4">Átlag szó/sor</th>
</tr>
</tbody>
</table>
</div>
<br class="clear" />
</main>
</body>
</html>

View File

@ -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.)

View File

@ -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)

View File

@ -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)

View File

@ -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.)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

BIN
aranyjanos/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

52
aranyjanos/game.html Normal file
View File

@ -0,0 +1,52 @@
<!DOCTYPE html>
<html lang="hu" dir="ltr">
<head>
<meta charset="utf-8">
<title>Arany János</title>
<link rel="stylesheet" href="style.css">
<link rel="icon" href="/AranyJanos/favicon.ico">
<script src="game.js" charset="utf-8"></script>
</head>
<body onload="init()">
<header class="header">
<h1>Arany János</h1>
</header>
<nav>
<a href="index.html">Főoldal</a>
<a href="balladak.html">Balladák</a>
<a class="active" href="game.html">Ballada kitaláló</a>
</nav>
<main>
<div id="mainmenu">
<h2>Ballada kitaláló</h2>
<p>A weboldal fog mutatni 2 random sort 9 balladából (
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
) és 4 lehetőség közül ki kell választani, melyik balladába tartozik. Helyes válasz: +1 pont</p>
<p>10 kérdés lesz, de van végtelen mód is. Ha nem vagyunk biztosak benne, melyik balladába van a 2 sor van segítség, ami további sorokat mutat meg a balladából, de akkor csak fél pontot kapunk helyes válasz esetén.</p>
<input type="button" onclick="start()" value="Játék Indítása">
</div>
<div id="game" hidden>
<div id="topbar">
<h2 id="pont">Pontok: 0</h2>
<h2 id="feladat">0. kör</h2>
<input id="help" type="button" value="Segítség">
<input id="newgame" onclick="start()" type="button" value="Új játék" hidden="true">
</div>
<div id="idezet">
<p id="resz"></p>
</div>
<div id="answers">
<!--buttons-->
</div>
</div>
</main>
</body>
</html>

139
aranyjanos/game.js Normal file
View File

@ -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] + "<br>" + 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("<br>");
document.getElementById("help").disabled = true;
}

22
aranyjanos/index.html Normal file
View File

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="hu" dir="ltr">
<head>
<meta charset="utf-8">
<title>Arany János</title>
<link rel="stylesheet" href="style.css">
<link rel="icon" href="/AranyJanos/favicon.ico">
</head>
<body>
<header class="header">
<h1>Arany János</h1>
</header>
<nav>
<a class="active" href="index.html">Főoldal</a>
<a href="balladak.html">Balladák</a>
<a href="game.html">Ballada kitaláló</a>
</nav>
<main>
</main>
</body>
</html>

244
aranyjanos/style.css Normal file
View File

@ -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;
}

73
erzekelo/index.html Normal file
View File

@ -0,0 +1,73 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1 shrink-to-fit=no">
<meta name="description" content="Bitfaragó - HoBITek" />
<meta name="keywords" content="Bitfaragó, HobBITek, 3.forduló," />
<meta name="author" content="Baldauf Márton, Nyikon zoltán, Sárközi Balázs" />
<meta property="og:title" content="Bitfaragó - verseny" />
<meta property="og:type" content="website" />
<meta property="og:image" content="" />
<meta property="og:description" content="Bitfaragó - HobBITek, 3.forduló" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="300" />
<meta property="og:image:height" content="300" />
<meta name="revisit-after" content="7 days" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta name="robots" content="index, follow" />
<meta name="googlebot" content="index, follow" />
<meta name="google" content="notranslate" />
<meta name="theme-color" content="#ffffff">
<title>Bitfaragó - 3. forduló</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<script type="text/javascript" src="javascript.js"></script>
</head>
<body onload="getSensor()">
<header>
<div class="menu">
<div class="text">
Szenzorok látómezőinek megjelenítése
</div>
<label class="switch">
<input id="fovswitch" type="checkbox" checked="true" onchange="fovonoff()">
<span class="slider round"></span>
</label>
<div class="">
<p>A mozgatás módjáról és lehetőségeiről használd a <a href="#" id="myBtn">segédletet</a>.</p>
</div>
<div class="text">
Version 1 - Version 2
</div>
<label class="switch">
<input id="versionswitch" type="checkbox" onchange="versionPicker()">
<span class="slider round"></span>
</label>
<div id="myModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<span class="close">&times;</span>
<h2>Segédlet</h2>
</div>
<div class="modal-body">
<p>A pont mozgatásához használd a nyilakat. A nyilak segítségével jobbra-balra, le-fel tudsz mozogni.</p>
</div>
<!-- <div class="modal-footer">
<h3>Modal Footer</h3>
</div> -->
</div>
</div>
</header>
<article class="">
<canvas id="myCanvas" width="500" height="500"></canvas>
</article>
<footer>
HoBITek &copy; | 2019 okt. 21
</footer>
</body>
</html>

371
erzekelo/javascript.js Normal file
View File

@ -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; si<sensors.length; si++){
var anglerad=sensors[si].angle*Math.PI/180;
ctx.beginPath();
ctx.arc(sensors[si].posx, sensors[si].posy, 10, 0, 2 * Math.PI);
ctx.fill();
var jsAngleStart=anglerad-Math.PI/4;
var jsAngleEnd=anglerad+Math.PI/4;
if (jsAngleStart<0) jsAngleStart+=Math.PI*2;
else if (jsAngleStart>Math.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];
}

176
erzekelo/style.css Normal file
View File

@ -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;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

BIN
futoszalag/img/arrowUp.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

552
futoszalag/index.html Normal file
View File

@ -0,0 +1,552 @@
<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1. feladat</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
<style type="text/css" media="screen,projection,print">
body {
margin: auto;
}
header {
margin-top: 50px;
margin-bottom: 80px;
}
section {
min-width: 400px;
padding: 20px;
margin: 10px auto 10px auto;
}
h1,
p {
text-align: center;
}
p {
font-family: Arial, Helvetica, sans-serif;
}
img {
margin-top: -25px;
display: block;
position: absolute;
}
#table {
cursor: crosshair;
background: orange;
font-size: 2em;
text-align: center;
margin: auto;
border-color: orange;
box-shadow: 10px 10px 5px #d0d0d0;
}
.button {
background-color: #4CAF50;
/* Green */
border: none;
color: white;
padding: 16px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
transition-duration: 0.4s;
cursor: pointer;
}
.button1 {
background-color: white;
color: black;
border: 2px solid #4CAF50;
}
.button1:hover {
background-color: #4CAF50;
color: white;
}
.buttonred {
background-color: white;
color: black;
border: 2px solid #f44336;
}
.buttonred:hover {
background-color: #f44336;
color: white;
}
.red {
background-color: red;
}
.buttonblue {
background-color: white;
color: black;
border: 2px solid #008CBA;
}
.buttonblue:hover {
background-color: #008CBA;
color: white;
}
.blue {
background-color: #008CBA;
}
.buttonorange {
background-color: white;
color: black;
border: 2px solid orange;
}
.buttonorange:hover {
background-color: orange;
color: white;
}
.orange {
background-color: orange;
}
input[type=number],
select {
max-width: 50px;
margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.vertical-center {
margin: 0;
position: absolute;
top: 35%;
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
.cell {
width: 50px;
padding: 0;
height: 50px;
color: #fcfcfc;
background-color: #999999;
}
.cellrowclicked {
background-color: #ff0000;
}
.conveyorbelt {
background-color: #444;
}
.cellclicked {
background-color: #000000;
}
</style>
<script>
var tt;
var nrow;
var ncell;
var belt;
var activeCell;
var index = 0;
var levels = 0;
var package;
var packages;
var simulationStopped = true;
class ConveyorBelt {
constructor(x, y) {
this.x = x;
this.y = y;
this.image = new Image();
this.image.width = 50;
this.image.height = 50;
tt[y][x].appendChild(this.image)
this.changeDirection(Direction.RIGHT)
}
changeDirection(d) {
switch (d) {
case Direction.LEFT:
this.image.src = 'img/arrowLeft.gif'
break;
case Direction.RIGHT:
this.image.src = 'img/arrowRight.gif'
break;
case Direction.UP:
this.image.src = 'img/arrowUp.gif'
break;
case Direction.DOWN:
this.image.src = 'img/arrowDown.gif'
break;
default:
break;
}
this.direction = d;
}
}
class Package {
constructor() {
this.image = new Image();
this.image.src = "package.png";
this.image.style.zIndex = 2;
this.image.width = 50;
this.image.height = 50;
this.position = -1;
this.moving = false;
}
next() {
if (this.moving) {
this.position++;
if (this.position == index) {
this.position--;
this.image.remove();
this.moving = false;
this.position = -1;
} else {
tt[belt[this.position].y][belt[this.position].x].appendChild(this.image);
}
}
}
}
var Direction = {
DOWN: [1, 0],
RIGHT: [0, 1],
LEFT: [0, -1],
UP: [-1, 0]
}
function init() {
nrow = parseInt(document.getElementById("row").value);
ncell = parseInt(document.getElementById("column").value);
tt = new Array(nrow);
belt = new Array(nrow * ncell);
if (nrow < 5 || nrow > 15 || ncell < 5 || ncell > 15) {
alert("Tábla méret túl kicsi vagy túl nagy!");
return;
}
activeCell = undefined;
index = 0;
document.getElementById("table").innerHTML = "";
for (var i = 0; i < nrow; i++) {
var newrow = document.getElementById("table").insertRow(i);
tt[i] = new Array(ncell);
for (var j = 0; j < ncell; j++) {
tt[i][j] = newrow.insertCell(j);
tt[i][j].id = i * ncell + j;
tt[i][j].onclick = function () {
cellClicked(this);
};
tt[i][j].classList.add("cell");
tt[i][j].innerHTML = "";
}
}
levels=0;
}
function clearBackground() {
for (var i = 0; i < nrow; i++) {
for (var j = 0; j < ncell; j++) {
tt[i][j].classList.remove("cellrowclicked");
tt[i][j].classList.remove("cellclicked");
}
}
}
function cellClicked(obj) {
clearBackground();
simulationStopped = true;
document.getElementById("folytonos").classList.remove("blue");
document.getElementById("folytonos").innerHTML = "Folytonos működés";
var row = parseInt(obj.id / ncell);
var column = obj.id % ncell;
var yes;
tt[row][column].classList.add("cellclicked");
for (var j = 0; j < ncell; j++) {
if (j != column) {
tt[row][j].classList.add("cellrowclicked");
}
}
if (activeCell == undefined) {
if (column == 0 || row == 0 || column == nrow - 1 || row == ncell - 1) {
activeCell = new ConveyorBelt(column, row);
tt[row][column].classList.add('conveyorbelt')
belt[index] = activeCell;
index++;
} else {
alert("A futószalagnak a pálya szélén kell kezdődnie!")
}
} else {
if ((activeCell.x == column && activeCell.y - row <= 1 && activeCell.y - row >= -1) ||
(activeCell.y == row && activeCell.x - column <= 1 && activeCell.x - column >= -1)) {
if ((activeCell.x != column || activeCell.y != row) && !tt[row][column].classList.contains('conveyorbelt')) {
tt[row][column].classList.add('conveyorbelt');
if (activeCell.x == column) {
if (activeCell.y - row == 1) {
yes = Direction.UP;
} else {
yes = Direction.DOWN;
}
} else {
if (activeCell.x - column == 1) {
yes = Direction.LEFT;
} else {
yes = Direction.RIGHT;
}
}
belt[index - 1].changeDirection(yes);
activeCell = new ConveyorBelt(column, row);
belt[index] = activeCell;
belt[index].changeDirection(belt[index - 1].direction);
index++;
} else {
alert("A futoszalag nem mehet magába!")
}
} else {
alert("Csak szomszédos cellába folytatódhat a futószalag!");
}
}
}
function undo() {
if(index>0){
index--;
activeCell = belt[index - 1];
tt[belt[index].y][belt[index].x].classList.remove("conveyorbelt");
tt[belt[index].y][belt[index].x].innerHTML = '';
belt[index] = null;
clearBackground();
}
}
function checkBelt(nonstop) {
clearBackground();
if (index == 0) {
alert("Nincsen futószalag!");
} else if (index == 1) {
alert("A futószalag túl rövid!");
} else {
if (activeCell.x == 0 || activeCell.y == 0 || activeCell.x == ncell - 1 || activeCell.y == nrow - 1) {
if (nonstop) {
simulationStopped = !simulationStopped;
if (simulationStopped) {
document.getElementById("folytonos").classList.remove("blue");
document.getElementById("folytonos").innerHTML = "Folytonos működés";
} else {
var dist = parseInt(prompt("Milyen időközönként jöjjenek a csomagok?")) - 1;
if (!(dist >= 0)) {
alert("A számnak nagyobbnak kell lennie 0-nál!");
simulationStopped = true;
return;
}
document.getElementById("folytonos").classList.add("blue");
document.getElementById("folytonos").innerHTML = "Folytonosság leállítása";
simulate(dist);
}
} else {
document.getElementById("inditas").classList.add("red");
document.getElementById("inditas").classList.remove("buttonred");
document.getElementById("inditas").disabled = true;
startBelt();
}
} else {
alert("A futószalagnak a pálya szélétől a szélére kell mennie!");
}
}
}
function startBelt() {
var speed = 1 / document.getElementById("speed").value * 1000;
package = new Package();
package.moving = true;
var timer = setInterval(function () {
package.next();
if (!package.moving) {
document.getElementById("inditas").classList.remove("red");
document.getElementById("inditas").classList.add("buttonred");
document.getElementById("inditas").disabled = false;
document.getElementById("folytonos").classList.remove("blue");
document.getElementById("folytonos").classList.add("buttonblue");
clearInterval(timer);
}
}, speed);
}
function simulate(dist) {
var x = 0;
var speed = 1 / document.getElementById("speed").value * 1000;
packages = new Array(index + 1);
for (let i = 0; i < packages.length; i++) {
packages[i] = new Package();
}
packages[0].moving = true;
var timer = setInterval(function () {
if (simulationStopped) {
for (var i = 0; i < packages.length; i++) {
packages[i].next();
}
if (!packages[x].moving) {
clearInterval(timer);
}
} else {
if (packages[x].position == dist) {
if (++x == packages.length) {
x = 0;
}
packages[x].moving = true;
}
for (var i = 0; i < packages.length; i++) {
packages[i].next();
}
}
}, speed);
}
function level(x) {
for (i = index; i >= 0; i--) {
undo();
}
document.getElementById("levelmemory").value = x;
if(x!=0){
document.getElementById("column").value = 6;
document.getElementById("row").value = 6;
}
init();
switch (x) {
case 1:
buttonEnabler();
document.getElementById("level1").classList.remove("button1");
for (let i = 0; i < 3; i++) {
cellClicked(tt[0][i]);
}
levels = 1;
break;
case 2:
buttonEnabler();
document.getElementById("level2").classList.remove("button1");
for (let i = 0; i < 6; i++) {
cellClicked(tt[0][i]);
}
levels = 2;
break;
case 3:
buttonEnabler();
document.getElementById("level3").classList.remove("button1");
for (let i = 2; i < 5; i++) {
cellClicked(tt[0][i]);
}
for (let i = 1; i < 6; i++) {
cellClicked(tt[i][4]);
}
levels = 3;
break;
case 4:
buttonEnabler();
document.getElementById("level4").classList.remove("button1");
var yy = 0;
var xx = 0;
var ctrctr = 0;
while(xx < 5 || 5 > yy)
{
cellClicked(tt[xx][yy])
if(ctrctr%2==0){xx++;}
else{yy++;}
ctrctr++;
}
levels = 4;
break;
case 0:
buttonEnabler();
document.getElementById("level0").classList.remove("button1");
levels = 0;
break;
default:
buttonEnabler();
document.getElementById("level0").classList.remove("button1");
levels = 0;
}
}
function buttonEnabler() {
for (i = 0; i < 5; i++) {
document.getElementById("level" + i).classList.add("button1");
}
levels = 0;
}
</script>
</head>
<body class="container" onload="init()">
<header>
<h1 class="display-4">Futószalag szimulátor</h1>
</header>
<div class="row">
<div class="col-md-1"></div>
<div class="col-sm-2"><button class="button" onclick="level(0)" id="level0">Custom</button></div>
<div class="col-sm-2"><button class="button button1" onclick="level(1)" id="level1">1.Pálya</button></div>
<div class="col-sm-2"><button class="button button1" onclick="level(2)" id="level2">2.Pálya</button></div>
<div class="col-sm-2"><button class="button button1" onclick="level(3)" id="level3">3.Pálya</button></div>
<div class="col-sm-2"><button class="button button1" onclick="level(4)" id="level4">4.Pálya</button></div>
<div class="col-md-1"></div>
</div>
<section>
<table id="table" align="center"></table>
</section>
<button class="button buttonorange" onclick="undo()">Visszavonás</button>
</div>
<div class="row">
<div class="col-sm-3" style="padding-top: 10px;">
<div class="row">
<div class="col-sm-5">
<label for="row">Sor:</label>
<input type="number" onchange="if(document.getElementById('levelmemory').value==0){init()}else{this.value = 6}" min="5" max="15" id="row" value="6">
</div>
<div class="col-sm-7">
<label for="column">Oszlop:</label>
<input type="number" onchange="if(document.getElementById('levelmemory').value==0){init()}else{this.value = 6}" min="5" max="15" id="column" value="6">
</div>
</div>
</div>
<div class="col-sm-3">
<span>1</span><input type="range" min="1" max="10" value="1" id="speed" class="vertical-center" style="width: 80%;"><span style="float: right;">10</span><br>
<p style="margin-top: 10px;">Sebesség</p>
</div>
<div class="col-sm-3"><button class="button buttonblue" id="folytonos" onclick="checkBelt(true)">Folytonos működés</button></div>
<div class="col-sm-3"><button class="button buttonred" id="inditas" onclick="checkBelt(false)">Futószalag indítása</button></div>
</div>
<input type="hidden" id="levelmemory" value="0">
<script>
init();
</script>
</body>
</html>

BIN
futoszalag/package.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

61
huszar/index.html Normal file
View File

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1 shrink-to-fit=no">
<meta name="description" content="Bitfaragó - HoBITek" />
<meta name="keywords" content="Bitfaragó, HobBITek" />
<meta name="author" content="Baldauf Márton, Nyikon zoltán, Sárközi Balázs" />
<meta property="og:title" content="Bitfaragó - verseny" />
<meta property="og:type" content="website" />
<meta property="og:image" content="" />
<meta property="og:description" content="Bitfaragó - HobBITek" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="300" />
<meta property="og:image:height" content="300" />
<meta name="revisit-after" content="7 days" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta name="robots" content="index, follow" />
<meta name="googlebot" content="index, follow" />
<meta name="google" content="notranslate" />
<meta name="theme-color" content="#ffffff">
<title>Bitfaragó - Huszárvándorlás</title>
<link rel="stylesheet" type="text/css" media="screen" href="main.css">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<header>
<div class="inline">
<input type="text" class="input" name="" value="" id="width"><br>
<input type="text" class="input" name="" value="" id="height"><br>
<label class="container">Könnyű
<input type="radio" checked="checked" name="radio" id="easy">
<span class="checkmark"></span>
</label>
<label class="container">Nehéz
<input type="radio" name="radio" id="hard">
<span class="checkmark"></span>
</label>
<input type="button" name="" value="Kezdés" class="button" onclick="start()" >
</div>
<div class="time" id="counter">
0
</div>
<div class="time hard" id="timer">
</div>
</header>
<article class="">
<div class="">
<table id="table"></table>
</div>
</article>
<footer>
HoBITek &copy; | 2019 okt. 9
</footer>
</body>
</html>

163
huszar/main.css Normal file
View File

@ -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;
}

368
huszar/main.js Normal file
View File

@ -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 = "";
}

67
index.html Normal file
View File

@ -0,0 +1,67 @@
<!DOCTYPE html>
<html lang="hu">
<head>
<title>Buduf Weboldal</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</head>
<body>
<div class="jumbotron text-center" style="margin-bottom:0">
<h1>Buduf Weboldal</h1>
<p>Üdvözöllek a weboldalamon!</p>
</div>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<a class="navbar-brand" href="#">Főoldal</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#projects">Projektek</a>
</li>
</ul>
</div>
</nav>
<div class="container" style="margin-top:30px">
<div class="row">
<div class="col-sm-4">
<h2>About Me</h2>
<p>Some text about me</p>
<h3>Some Links</h3>
<p>...</p>
</div>
<div class="col-sm-8">
<h2 id="projects">WEBES PROJEKTEK</h2>
<h4><a href="owheroes">Overwatch Heroes</a></h4>
<p>Az első saját nagyobb weblap, amit csináltam.</p>
<h4><a href="aranyjanos">Arany János</a></h4>
<p>Egy irodalom projektre csináltam, nem sikerült teljesen befejezni.</p>
<h4><a href="huszar">Huszárvándorlás</a></h4>
<p>Bitfaragó 2019 versenyre készítettük. A csapat: Balázs, Nyikus és Én</p>
<h4><a href="erzekelo">Mozgásérzékelők</a></h4>
<p>Szintén a Bitfaragó 2019 versenyre készítettük. A csapat: Balázs, Nyikus és Én</p>
<h4><a href="futoszalag">Futószalag szimulátor</a></h4>
<p>Ezt a Bitfaragó 2020 versenyre készítettük. A csapat: Balázs, Ricsi és Én</p>
<h4><a href="kinevet">Ki nevet a végén?</a></h4>
<p>Ezt is a Bitfaragó 2020 versenyre készítettük. A csapat: Balázs, Ricsi és Én</p>
<hr class="d-sm-none">
</div>
</div>
</div>
<div class="jumbotron text-center" style="margin-bottom:0">
<p>...</p>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

BIN
kinevet/img/blue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
kinevet/img/crown.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
kinevet/img/dice1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
kinevet/img/dice2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
kinevet/img/dice3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
kinevet/img/dice4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
kinevet/img/dice5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
kinevet/img/dice6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
kinevet/img/freeze.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
kinevet/img/ghost.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
kinevet/img/green.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
kinevet/img/ignite.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
kinevet/img/info_icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
kinevet/img/level2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
kinevet/img/level3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
kinevet/img/level4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
kinevet/img/red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
kinevet/img/yellow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

143
kinevet/index.html Normal file
View File

@ -0,0 +1,143 @@
<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ki nevet a végén</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>
<!--Húsvétra jó lesz 🐰🥚-->
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<div class="container">
<header>
<h1 class="display-3">Ki nevet a végén?</h1>
</header>
<div id="gamemode">
<h3 class="display-4">Játékmód kiválasztása</h3>
<br>
<br>
<br>
<div class="row">
<div class="col-4">
<div class="gamemodes" onclick="init(2)">
<img class="img-thumbnail img-fluid" src="img/level2.png" width="300px" alt="2 játékos mód" title="2 játékos mód">
<p class="lead">2 játékos mód</p>
</div>
</div>
<div class="col-4">
<div class="gamemodes" onclick="init(3)">
<img class="img-thumbnail img-fluid" src="img/level3.png" alt="3 játékos mód" title="3 játékos mód">
<p class="lead">3 játékos mód</p>
</div>
</div>
<div class="col-4" onclick="init(4)">
<div class="gamemodes">
<img class="img-thumbnail img-fluid" src="img/level4.png" alt="4 játékos mód" title="4 játékos mód">
<p class="lead">4 játékos mód</p>
</div>
</div>
</div>
</div>
</div>
<div class="game" id="game">
<div class="center">
<div class="jumbotron inside dice">
<img src="img/dice1.png" class="rounded" alt="dobókocka" id="dice" title="dobókocka">
<button id="roll" type="button" class="btn btn-outline-secondary" onclick="dice()">DOBÁS</button>
</div>
<div class="jumbotron inside2">
<img src="img/info_icon.png" style="width: 30px; height: 30px; position: absolute; right: 0px; top: 0px;" data-toggle="modal" data-target="#guideModalLong" alt="Guide" title="Segítség">
<div class="circle">
<img src="img/blue.png" class="rounded" alt="Játékos" id="nextPlayer" title="Kék játékos">
</div>
<div class="nextPlayer">
<h5>A soron következő játékos</h5>
<p id="nextPlayerColor">Kék</p>
<div class="abilities row">
<div class="col-4"><img id="ability1" style="background-color: green;" src="img/ignite.png" onclick="spell(1)" class="img-thumbnail img-fluid zoom" title="A dobás után felégeti az áthaladott mezőket a játékos következő köréig." alt="Felégetés"></div>
<div class="col-4"><img id="ability2" style="background-color: green;" src="img/ghost.png" onclick="spell(2)" class="img-thumbnail img-fluid zoom" title="A dobott érték kétszeresével lép előre a játékos." alt="Gyorsaság"></div>
<div class="col-4"><img id="ability3" style="background-color: green;" src="img/freeze.png" onclick="spell(3)" class="img-thumbnail img-fluid zoom" title="A legelső játékos kimarad egy körből." alt="Fagyasztás"></div>
</div>
</div>
</div>
</div>
<canvas id="canvas" width="600" height="600"></canvas>
<div>
<!-- Modal -->
<div class="modal fade" id="guideModalLong" tabindex="-1" role="dialog" aria-labelledby="guideModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="guideModalLongTitle">Segítség</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="guide">
<div class="row">
<div class="smallCircle" style="background-color: darkblue;"></div>
<div class="display-5 guideText">Újratölti a játékos összes képességet</div>
</div>
<div class="row">
<div class="smallCircle" style="background-color: magenta;"></div>
<div class="display-5 guideText">A játékos még egyszer dobhat</div>
</div>
<div class="row">
<div class="smallCircle" style="background-color: aqua;"></div>
<div class="display-5 guideText">A játékos kimarad a körből</div>
</div>
<div class="row">
<div class="display-5 guideText">A képességek bővebb leírásához vidd fölé az egeret!</div>
</div>
<br>
<br>
<br>
<div class="display-5" style="text-align: right; font-weight: lighter;">Note: A képességek a kocka eldobásával sülnek el</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="winner container" id="winner">
<!-- Modal -->
<div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle" style="font-size: 30px;">Győztes</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<img src="img/crown.png" width="350px" style="position: absolute; top: -65px; left: 80px;">
<br>
<br>
<img src="" id="winnerColor" class="center" style="width: 100px;" alt="">
<br>
<h4 class="text-center" id="winnerText"></h4>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Bezárás</button>
<button type="button" class="btn btn-success" onclick="location.reload();">Új játék</button>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

386
kinevet/script.js Normal file
View File

@ -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')
}

137
kinevet/style.css Normal file
View File

@ -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;
}

68
owheroes/damage.html Normal file
View File

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="icon" href="imgs/owicon.png" type="image/x-icon">
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>OW Heroes - Damage</title>
</head>
<body>
<div class="container">
<div class="jumbotron" id="fejlec">
<h1 class="display-3 text-center cim">Overwatch Heroes</h1>
<div class="menu">
<div class="row nopadding">
<div class="col-md-8 d-none d-md-block nopadding">
<p class="roles nopadding">ROLES</p>
</div>
<div class="col-md-4 nopadding"><a class="play nopadding" href="index.html">TIC TAC TOE</a></div>
</div>
<div class="row nav nopadding">
<div class="col-md-8 nopadding">
<div class="row nopadding">
<div class="col-4 nopadding">
<a class="d-sm-block d-none role active" href="damage.html"><img class="d-inline imgroles" src="imgs/damage.png" alt=""> DAMAGE</a>
<a class="d-sm-none d-block role active" href="damage.html"><img class="d-inline imgroles" src="imgs/damage.png" alt=""></a>
</div>
<div class="col-4 nopadding">
<a class="d-sm-block d-none role" href="tank.html"><img class="imgroles" src="imgs/tank.png" alt=""> TANK</a>
<a class="d-sm-none d-block role" href="tank.html"><img class="imgroles" src="imgs/tank.png" alt=""></a>
</div>
<div class="col-4 nopadding">
<a class="d-sm-block d-none role" href="support.html"><img class="imgroles" src="imgs/support.png" alt=""> SUPPORT</a>
<a class="d-sm-none d-block role" href="support.html"><img class="imgroles" src="imgs/support.png" alt=""></a>
</div>
</div>
</div>
<div class="col-md-4 nopadding">
<p class="credit">CREATAED BY:<img class="owlogo" src="imgs/owlogo.png" alt=""><br> BALDAUF MÁRTON</p>
</div>
</div>
</div>
</div>
<div class="row nopadding jumbotron" id="torzs">
<article class="col-md-4">
<h1 class="hero">Soldier: 76</h1>
<p class="text-justify">Armed with cutting-edge weaponry, including an experimental pulse rifle thats capable of firing spirals of high-powered Helix Rockets, Soldier: 76 has the speed and support know-how of a highly trained warrior.</p>
<img class="img-thumbnail" src="imgs/heroes/soldier76.png" alt="">
</article>
<article class="col-md-4">
<h1 class="hero">Genji</h1>
<p class="text-justify">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. </p>
<img class="img-thumbnail" src="imgs/heroes/genji.png" alt="">
</article>
<article class="col-md-4">
<h1 class="hero">Tracer</h1>
<p class="text-justify">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. </p>
<img class="img-thumbnail" src="imgs/heroes/tracer.png" alt="">
</article>
</div>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 MiB

BIN
owheroes/imgs/damage.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

BIN
owheroes/imgs/icons/dva.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
owheroes/imgs/owicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 KiB

BIN
owheroes/imgs/owlogo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
owheroes/imgs/support.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

BIN
owheroes/imgs/tank.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

132
owheroes/index.html Normal file
View File

@ -0,0 +1,132 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="icon" href="imgs/owlogo.png" type="image/x-icon">
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="tictactoe.js"></script>
<title>Tic Tact Toe</title>
</head>
<body>
<div class="container">
<div class="jumbotron" id="fejlec">
<h1 class="display-3 text-center cim">Overwatch Heroes</h1>
<div class="row nopadding">
<div class="col-md-8 d-none d-md-block nopadding">
<p class="roles nopadding">ROLES</p>
</div>
<div class="col-md-4 nopadding"><a class="play playing nopadding" href="index.html">TIC TAC TOE</a></div>
</div>
<div class="row nav nopadding">
<div class="col-md-8 nopadding">
<div class="row nopadding">
<div class="col-4 nopadding">
<a class="d-sm-block d-none role" href="damage.html"><img class="d-inline imgroles" src="imgs/damage.png" alt=""> DAMAGE</a>
<a class="d-sm-none d-block role" href="damage.html"><img class="d-inline imgroles" src="imgs/damage.png" alt=""></a>
</div>
<div class="col-4 nopadding">
<a class="d-sm-block d-none role" href="tank.html"><img class="imgroles" src="imgs/tank.png" alt=""> TANK</a>
<a class="d-sm-none d-block role" href="tank.html"><img class="imgroles" src="imgs/tank.png" alt=""></a>
</div>
<div class="col-4 nopadding">
<a class="d-sm-block d-none role" href="support.html"><img class="imgroles" src="imgs/support.png" alt=""> SUPPORT</a>
<a class="d-sm-none d-block role" href="support.html"><img class="imgroles" src="imgs/support.png" alt=""></a>
</div>
</div>
</div>
<div class="col-md-4 nopadding">
<p class="credit">CREATAED BY:<img class="owlogo" src="imgs/owlogo.png" alt=""><br> BALDAUF MÁRTON</p>
</div>
</div>
</div>
<div class="row nopadding jumbotron" id="torzs">
<div id="blue" class="col-xl-3">
<table id="blueheroselect" class="d-block">
<thead>
<tr>
<th colspan="3">
<p class="hero nopadding">Select your hero!</p>
</th>
</tr>
</thead>
<tbody>
<script>
var heroes = ["soldier76", "genji", "tracer", "reinhardt", "dva", "winston", "mercy", "zenyatta", "lucio"];
for (i = 0; i < 3; i++) {
document.write('<tr>');
for (j = 0; j < 3; j++) {
document.write('<td class="selecthero"><input type="button" class="heroicon" id="blue-' + heroes[i * 3 + j] + '" onclick="selectedblue(event)"></td>');
document.getElementById("blue-" + heroes[i * 3 + j]).style.backgroundImage = 'url("imgs/icons/' + heroes[i * 3 + j] + '.png")';
}
document.write('</tr>');
}
</script>
</tbody>
</table>
<p id="bluegameover" class="hero display-3 nopadding d-none"></p>
</div>
<div id="green" class="col-xl-6">
<table class="board">
<thead>
<tr>
<th colspan="3">
<p class="display-3 text-center hero nopadding">Tic-Tac-Toe</p>
</th>
</tr>
</thead>
<tbody>
<script>
for (i = 0; i < 3; i++) {
document.write('<tr>');
for (j = 0; j < 3; j++) {
document.write('<td><input class="tictactoe nopadding" type="button" id="p' + j + i + '" onclick="game(event)"></td>');
}
document.write('</tr>');
}
</script>
</tbody>
<tfoot>
<tr>
<th colspan="3">
<p id="score" class="hero display-3 nopadding"></p>
</th>
</tr>
</tfoot>
</table>
<div class="controls"><input class="newgame nopadding" type="button" value="NEW GAME" onclick="newgame()"></div>
</div>
<div id="red" class="col-xl-3">
<table id="redheroselect" class="d-block">
<thead>
<tr>
<th colspan="3">
<p class="hero nopadding">Select your hero!</p>
</th>
</tr>
</thead>
<tbody>
<script>
var heroes = ["soldier76", "genji", "tracer", "reinhardt", "dva", "winston", "mercy", "zenyatta", "lucio"];
for (i = 0; i < 3; i++) {
document.write('<tr>');
for (j = 0; j < 3; j++) {
document.write('<td class="selecthero"><input type="button" class="heroicon" id="red-' + heroes[i * 3 + j] + '" onclick="selectedred(event)"></td>')
document.getElementById("red-" + heroes[i * 3 + j]).style.backgroundImage = 'url("imgs/icons/' + heroes[i * 3 + j] + '.png")';
}
document.write('</tr>');
}
</script>
</tbody>
</table>
<p id="redgameover" class="hero display-3 nopadding d-none"></p>
</div>
</div>
</div>
</body>
</html>

250
owheroes/style.css Normal file
View File

@ -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;
}

68
owheroes/support.html Normal file
View File

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="icon" href="imgs/owlogo.png" type="image/x-icon">
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>OW Heroes - Support</title>
</head>
<body>
<div class="container">
<div class="jumbotron" id="fejlec">
<h1 class="display-3 text-center cim">Overwatch Heroes</h1>
<div class="menu">
<div class="row nopadding">
<div class="col-md-8 d-none d-md-block nopadding">
<p class="roles nopadding">ROLES</p>
</div>
<div class="col-md-4 nopadding"><a class="play nopadding" href="index.html">TIC TAC TOE</a></div>
</div>
<div class="row nav nopadding">
<div class="col-md-8 nopadding">
<div class="row nopadding">
<div class="col-4 nopadding">
<a class="d-sm-block d-none role" href="damage.html"><img class="d-inline imgroles" src="imgs/damage.png" alt=""> DAMAGE</a>
<a class="d-sm-none d-block role" href="damage.html"><img class="d-inline imgroles" src="imgs/damage.png" alt=""></a>
</div>
<div class="col-4 nopadding">
<a class="d-sm-block d-none role" href="tank.html"><img class="imgroles" src="imgs/tank.png" alt=""> TANK</a>
<a class="d-sm-none d-block role" href="tank.html"><img class="imgroles" src="imgs/tank.png" alt=""></a>
</div>
<div class="col-4 nopadding">
<a class="d-sm-block d-none role active" href="support.html"><img class="imgroles" src="imgs/support.png" alt=""> SUPPORT</a>
<a class="d-sm-none d-block role active" href="support.html"><img class="imgroles" src="imgs/support.png" alt=""></a>
</div>
</div>
</div>
<div class="col-md-4 nopadding">
<p class="credit">CREATAED BY:<img class="owlogo" src="imgs/owlogo.png" alt=""><br> BALDAUF MÁRTON</p>
</div>
</div>
</div>
</div>
<div class="row nopadding jumbotron" id="torzs">
<article class="col-md-4">
<h1 class="hero">Mercy</h1>
<p class="text-justify">Mercys 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.</p>
<img class="img-thumbnail" src="imgs/heroes/mercy.png" alt="">
</article>
<article class="col-md-4">
<h1 class="hero">Zenyatta</h1>
<p class="text-justify">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.</p>
<img class="img-thumbnail" src="imgs/heroes/zenyatta.png" alt="">
</article>
<article class="col-md-4">
<h1 class="hero">Lucio</h1>
<p class="text-justify">On the battlefield, Lúcios 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.</p>
<img class="img-thumbnail" src="imgs/heroes/lucio.png" alt="">
</article>
</div>
</div>
</body>
</html>

68
owheroes/tank.html Normal file
View File

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="icon" href="imgs/owlogo.png" type="image/x-icon">
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>OW Heroes - Tank</title>
</head>
<body>
<div class="container">
<div class="jumbotron" id="fejlec">
<h1 class="display-3 text-center cim">Overwatch Heroes</h1>
<div class="menu">
<div class="row nopadding">
<div class="col-md-8 d-none d-md-block nopadding">
<p class="roles nopadding">ROLES</p>
</div>
<div class="col-md-4 nopadding"><a class="play nopadding" href="index.html">TIC TAC TOE</a></div>
</div>
<div class="row nav nopadding">
<div class="col-md-8 nopadding">
<div class="row nopadding">
<div class="col-4 nopadding">
<a class="d-sm-block d-none role" href="damage.html"><img class="d-inline imgroles" src="imgs/damage.png" alt=""> DAMAGE</a>
<a class="d-sm-none d-block role" href="damage.html"><img class="d-inline imgroles" src="imgs/damage.png" alt=""></a>
</div>
<div class="col-4 nopadding">
<a class="d-sm-block d-none role active" href="tank.html"><img class="imgroles" src="imgs/tank.png" alt=""> TANK</a>
<a class="d-sm-none d-block role active" href="tank.html"><img class="imgroles" src="imgs/tank.png" alt=""></a>
</div>
<div class="col-4 nopadding">
<a class="d-sm-block d-none role" href="support.html"><img class="imgroles" src="imgs/support.png" alt=""> SUPPORT</a>
<a class="d-sm-none d-block role" href="support.html"><img class="imgroles" src="imgs/support.png" alt=""></a>
</div>
</div>
</div>
<div class="col-md-4 nopadding">
<p class="credit">CREATAED BY:<img class="owlogo" src="imgs/owlogo.png" alt=""><br> BALDAUF MÁRTON</p>
</div>
</div>
</div>
</div>
<div class="row nopadding jumbotron" id="torzs">
<article class="col-md-4">
<h1 class="hero">Reinhardt</h1>
<p class="text-justify">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.</p>
<img class="img-thumbnail" src="imgs/heroes/reinhardt.png" alt="">
</article>
<article class="col-md-4">
<h1 class="hero">D. VA</h1>
<p class="text-justify">D.Vas 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.</p>
<img class="img-thumbnail" src="imgs/heroes/dva.png" alt="">
</article>
<article class="col-md-4">
<h1 class="hero">Winston</h1>
<p class="text-justify">Winston wields impressive inventions—a jump pack, electricity-blasting Tesla Cannon, portable shield projector and more—with literal gorilla strength.</p>
<img class="img-thumbnail" src="imgs/heroes/winston.png" alt="">
</article>
</div>
</div>
</body>
</html>

163
owheroes/tictactoe.js Normal file
View File

@ -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;
}