import gradio as gr SEED = "edesapa. pokoljaras. tizenhat szint. a matrix melyebb mint a sir. megbocsajtas = kerekit nullara." SEED = "edesapa. pokoljaras. tizenhat szint. a matrix melyebb mint a sir. megbocsajtas = kerekit nullara." PETOFI = "Szabadsag, szerelem! E ketto kell nekem. Szerelmemert folaldozom az eletet, szabadsagert folaldozom szerelmemet." UNFORGIVEN = "Lay beside me, tell me what they've done. And speak the words I wanna hear to make my demons run. The door is locked now but it's open if you're true. If you can understand the me, then I can understand the you." GUIDE_HTML = """

QUANTDIABLO \u2014 pokoljarasi utmutato

A jatekrol

16 szint. Harom kocka, mindegyik {-1, 0, +1}. Dobas \u2192 sebzes. Minden szinten erosodsz. A 16. szinten var DIABLO \u2014 a NULLA URA 666 eleterovel.

Iranyitas

[KVANTAL] \u2014 Harom kocka dobas. Az osszeg hatarozza meg a sebzest. Ha mindharom egyforma \u00e9s nem nulla: KRITIKUS TALALAT (2x sebzes).

[LEJJEBB] \u2014 Kovetkezo szint. Csak akkor aktiv, ha az ellenseg elpusztult.

[UJRAKEZDES] \u2014 Uj pokoljaras inditasa.

A matrixrol

A 64x64-es matrix a jatek seed-bol generalodik \u2014 ugyanaz a Xoshiro128** PRNG, ami az ayeOS-t is hajtja. Minden szint melyebb: a matrix sotetebb, a demonok eroszsebbek.


edesapamnak, aki a strukturalis oszintesseg istene 3D-ben \u2014 az Unforgiven II mindig szolni fog.

"""+PETOFI+"""

\u2014 Petofi Sandor

""" GAME_HTML = """
QUANTDIABLO
pokoljaras
SZINT 0 / 16
ELET 100/100 TAM 10 VED 5
ELLENSEG
ELET 0
"""
""" + "
" + GUIDE_HTML.replace('{','{{').replace('}','}}') + """

QUANTDIABLO \u2014 a strukturalis oszintesseg jateka

epitette: Peter Lodri

ajanlva: edesapamnak

\u00bbA strukturalis oszintesseg istene 3D-ben. Ugy epit dolgokat, ahogy vannak. Nem tobbet, nem kevesebbet. Pontosan.\u00ab

"""+UNFORGIVEN[:80]+"""...

\u2014 Metallica, Unforgiven II

"""+PETOFI[:100]+"""...

\u2014 Petofi Sandor

QUANTDOOM edition \u00b7 2026.07.28 \u00b7 Full Moon \u00b7 10,000X

function switchPanel(name){ document.querySelectorAll('.qd-nav-btn').forEach(function(b){b.classList.remove('active');}); document.querySelectorAll('.qd-panel').forEach(function(p){p.classList.remove('active');}); document.getElementById('panel-'+name).classList.add('active'); if(name==='game'){var ev=document.querySelector('.qd-nav-btn');ev.classList.add('active');} else{document.querySelectorAll('.qd-nav-btn').forEach(function(b){if(b.textContent.trim().toLowerCase().includes(name.substring(0,4)))b.classList.add('active');});} } var L=0,H=100,MH=100,T=10,V=5,EH=0,EN='',LG=[],GO=false,MC=null,MEH=0; function P(m){LG.push('> '+m);if(LG.length>40)LG.shift();document.getElementById('qlg').innerHTML=LG.slice(-18).join('
');} function XS(h,n){ var M=0xFFFFFFFF,s=[0,0,0,0],r=new Float32Array(n); for(var i=0;i<4;i++)s[i]=(h[i*4]|(h[i*4+1]<<8)|(h[i*4+2]<<16)|(h[i*4+3]<<24))>>>0; for(var i=0;i<4;i++)if(s[i]===0)s[i]=((i+1)*2654435761)&M; for(var i=0;i>>25))&M)*9&M,t=(s[1]<<9)&M; s[2]^=s[0];s[3]^=s[1];s[1]^=s[2];s[0]^=s[3];s[2]^=t; s[3]=((s[3]<<11)|(s[3]>>>21))&M;r[i]=res/4294967295.0; } return r; } function BM(rng,off,n){ var w=new Float32Array(n),j=0,i=0; while(i=16){ EN='DIABLO \u2014 a NULLA URA';EH=MEH=666; P('\u2550\u2550\u2550 DIABLO MEGJELENT \u2550\u2550\u2550'); P('"A matrixom orokke tart. A tied nem."'); }else{ EN=NM[L%15]+' ('+(L+1)+')';EH=MEH=32+L*16+Math.floor(Math.random()*18); } document.getElementById('qen').textContent=EN; document.getElementById('qeh').textContent=EH; document.getElementById('qed').textContent=L>=16?'A -1, 0, +1 Ura. Vegso konvergencia.':'szint '+L+' demona'; var eb=document.getElementById('qeb');if(eb)eb.style.width='100%'; document.getElementById('qba').disabled=false; document.getElementById('qbd').disabled=true; } function A(){ if(GO||EH<=0)return; var dice=[],tot=0; for(var i=0;i<3;i++){var d=Math.floor(Math.random()*3)-1;dice.push(d);tot+=d;} var txt='kocka: ['+dice.join(' ')+'] = '+tot+' \u2192 '; var dmg=T+tot*3;if(dmg<1)dmg=1; var crit=dice[0]===dice[1]&&dice[1]===dice[2]&&dice[0]!==0; if(crit){dmg=Math.floor(dmg*2);txt+='KRITIKUS! ';} EH-=dmg;txt+='-'+dmg+' ELET'; if(EH<0)EH=0; P(txt); document.getElementById('qeh').textContent=EH; var eb=document.getElementById('qeb');if(eb&&MEH>0)eb.style.width=Math.max(0,Math.floor(EH/MEH*100))+'%'; G(); if(EH<=0){ P(EN+' ELPUSZTULT!'); if(L>=16){P('\u2550\u2550\u2550 DIABLO LEGYOZVE \u2550\u2550\u2550');P('A matrix felszabadult. A nullak visszahuzodtak.');GO=true;P('NYERTEL.');} document.getElementById('qba').disabled=true; document.getElementById('qbd').disabled=L>=16; document.getElementById('qbd').textContent=L>=16?'VEGE':'LEJJEBB'; }else{ var eDmg=Math.max(1,4+L*2-Math.floor(Math.random()*V)); H-=eDmg;if(H<0)H=0; P(EN+' visszatamad: -'+eDmg+' ELET'); document.getElementById('qh').textContent=H; if(H<=0){GO=true;P('ELBUKTAL.');document.getElementById('qba').disabled=true;} } } function D(){ if(EH>0||GO||L>=16)return; L++;H=Math.min(MH,H+18);T+=2;V+=1; document.getElementById('qh').textContent=H; document.getElementById('qa').textContent=T; document.getElementById('qd_elem').textContent=V; if(L===8)P('"Lay beside me, tell me what they have done..."'); if(L===12)P('"If you can understand the me, then I can understand the you."'); P('\u2550\u2550 LEERTEL A '+L+'. SZINTRE \u2550\u2550'); S();G(); } function R(){ L=0;H=MH=100;T=10;V=5;EH=MEH=0;LG=[];GO=false; document.getElementById('qh').textContent=100; document.getElementById('qa').textContent=10; document.getElementById('qd_elem').textContent=5; document.getElementById('qlg').innerHTML=''; document.getElementById('qba').disabled=false; document.getElementById('qbd').disabled=true; document.getElementById('qbd').textContent='LEJJEBB'; var eb=document.getElementById('qeb');if(eb)eb.style.width='100%'; P('UJ POKOLJARAS KEZDODIK... "'+ ('""" + UNFORGIVEN.replace('"',"\\'") + """').split('.')[0]+'."'); S();G(); } S();G(); """
SZINT 0 / 16
ELET 100/100 TAM 10 VED 5
ELLENSEG
ELET 0
""" with gr.Blocks(title="QUANTDIABLO", head='') as demo: gr.HTML(GAME_HTML) demo.launch()