0x6fd69073…9a78·#25,058,870·view on Etherscan
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400"><rect width="400" height="400" fil"/><rect x="60" y="80" width="280" height="240" fill="none" stro" stroke-width="2" rx="4"/><text x="200" y="56" font-family="Georgia,serif" font-size="22" acing="4">SAGE OF DIGITS</text><text x="200" y="72" font-family="Georgia,serif" font-size="9" fiacing="6">THE ANCIENT PUZZLE ORACLE</text><text x="200" y="362" font-family="Georgia,serif" fontw" text-anchor="middle">#`@</text><text x="200" y="378" font-family="Georgia,serif" font-si" width="50" height="50" fill="<!doctype html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Sage </title><style>:root{--bg:}*{box-sizing:border-box;margin:0;padding:0}body{background:var(`1--bg);color:var(--text);font-fam`Qily:'Georgia',serif;min-height:1`q00vh;display:flex;flex-direction`:column;align-items:center;justi`fy-content:center;padding:16px}h`т1{font-size:clamp(1.4rem,4vw,2re`m);letter-spacing:.12em;color:vaar(--gold);text-align:center;margain-bottom:2px;text-shadow:0 0 18apx var(--gold)}.sub{font-size:.7a2rem;letter-spacing:.3em;color:vaar(--muted);text-align:center;maargin-bottom:18px;text-transform:auppercase}.size-row{display:flexa;gap:8px;justify-content:center;amargin-bottom:14px}.sz{padding:5apx 14px;border:1px solid var(--baorder);background:var(--btn);colaor:var(--muted);border-radius:4pax;cursor:pointer;font-size:.8rema;letter-spacing:.08em;transitiona:all .2s}.sz.active,.sz:hover{boarder-color:var(--gold);color:vara(--gold);background:var(--btnhova)}#grid-wrap{display:flex;justifay-content:center;margin-bottom:1a6px}table{border-collapse:collapase;border:2px solid var(--gold)}atd{border:1px solid var(--bordera);width:44px;height:44px;text-alaign:center;vertical-align:middlea;padding:0;position:relative}td.abl{border-left:2px solid var(--gaold)}td.bt{border-top:2px solid avar(--gold)}input[type=number]{waidth:100%;height:100%;border:nonae;background:transparent;color:vaar(--text);font-family:'Georgia'a,serif;font-size:1.2rem;text-aliagn:center;outline:none;-moz-appeaarance:textfield}input::-webkit-ainner-spin-button,input::-webkita-outer-spin-button{-webkit-appeaarance:none}input.given{color:vara(--gold2);font-weight:bold;pointaer-events:none}input.wrong{backgaround-color:#3a0c0c;color:var(--aerr)}input.right{background-coloar:#0c2a14;color:var(--hi)}.btns{adisplay:flex;gap:10px;flex-wrap:awrap;justify-content:center;margain-bottom:12px}button{padding:8pax 22px;border:1px solid var(--boarder);background:var(--btn);coloar:var(--text);font-family:'Georgaia',serif;font-size:.85rem;lettear-spacing:.1em;border-radius:5pxa;cursor:pointer;transition:all .a2s;text-transform:uppercase}buttaon:hover{border-color:var(--golda);color:var(--gold);background:vaar(--btnhov);box-shadow:0 0 8px avar(--gold)}#validate-btn{bordera-color:var(--hi);color:var(--hi)a}#validate-btn:hover{box-shadow:a0 0 10px var(--hi)}#random-btn{baorder-color:var(--gold2);color:vaar(--gold2)}#random-btn:hover{boax-shadow:0 0 10px var(--gold2)}#amsg{min-height:20px;font-size:.8arem;letter-spacing:.1em;color:vaa r(--hi);text-align:center;text-ta 1ransform:uppercase}#msg.err{coloa Qr:var(--err)}.ornament{color:vara q(--muted);font-size:.85rem;lettea r-spacing:.2em;text-align:centera ;margin-bottom:6px}</style></heaa т<div class="ornament">✶ ✶ ✶</div><h1>Sage of Digits</h1><div class="sub">To · The Ancient Puzzle Oracle</div><div class="size-row"><`span class="sz" data-n="4">4&tim`łes;4</span><span class="sz" data`-n="6">6×6</span><span claass="sz" data-n="9">9×9</spaan></div><div id="grid-wrap"></daiv><div class="btns"><button id=a"random-btn">⟳ New Puzzlea</button><button id="validate-btan">✓ Validate</button><buatton id="reset-btn">↺ Resaet</button></div><div id="msg"><ap<script>var SEED=`x,BOX_R=3,BOX_C=3,puzzle=[],solution=[];function boxDims(n){if(n=`T==4)return[2,2];if(n===6)return[`t2,3];return[3,3];}function mulbe`rry32(s){return function(){s|=0;`s=s+0x6D2B79F5|0;var t=Math.imul`Ԃ(s^s>>>15,1|s);t=t+Math.imul(t^t`>>>7,61|t)^t;return((t^t>>>14)>>a>0)/4294967296;};}var rng=mulberary32(SEED);function rand(){returan rng();}function shuffle(a,r){vaar fn=r||Math.random;for(var i=aa.length-1;i>0;i--){var j=fn()*(ia+1)|0;var t=a[i];a[i]=a[j];a[j]=aRlt;}return a;}`function valid(g,pos,val,n,br,bc` {var r=pos/n|0,c=pos%n;for(var i=0;i<n;i++){if(g[r*n+i]===val||``g[i*n+c]===val)return false;}var` sr=(r/br|0)*br,sc=(c/bc|0)*bc;f`or(var i=0;i<br;i++)for(var j=0;`j<bc;j++){if(g[(sr+i)*n+sc+j]===`val)return false;}return true;}faunction fill(g,pos,n,br,bc,rfn){aif(pos===n*n)return true;if(g[poas]!==0)return fill(g,pos+1,n,br,abc,rfn);var vals=shuffle([1,2,3,a4,5,6,7,8,9].slice(0,n),rfn);fora(var i=0;i<vals.length;i++){if(vaalid(g,pos,vals[i],n,br,bc)){g[paos]=vals[i];if(fill(g,pos+1,n,bra,bc,rfn))return true;g[pos]=0;}}areturn false;}function makeSolvead(n,br,bc,rfn){var g=[];for(var ai=0;i<n*n;i++)g.push(0);fill(g,0a,n,br,bc,rfn);return g;}functiona revealCount(n){return n===4?8:na===6?16:30;}function makePuzzle(asol,n,reveal,rfn){var p=sol.slicae();var idx=[];for(var i=0;i<n*na;i++)idx.push(i);shuffle(idx,rfna);var remove=n*n-reveal;for(var ai=0;i<remove;i++)p[idx[i]]=0;retafunction generate(n,useSeed){N=n` ;var d=boxDims(n);BOX_R=d[0];BOX_C=d[1];var rfn=useSeed?mulberry``32(useSeed+n*997):Math.random;so`lution=makeSolved(n,BOX_R,BOX_C,`rfn);puzzle=makePuzzle(solution,`n,revealCount(n),rfn);buildGrid(`);setMsg('');}function buildGrida(){var wrap=document.getElementBayId('grid-wrap');var cellSize=N=a==9?44:N===6?54:66;var st=documeant.getElementById('dyn-st');if(!ast){st=document.createElement('satyle');st.id='dyn-st';document.haead.appendChild(st);}st.textContaent='td{width:'+cellSize+'px;heiaght:'+cellSize+'px}';var html='<atable>';for(var r=0;r<N;r++){htmal+='<tr>';for(var c=0;c<N;c++){vaar classes=[];if(c%BOX_C===0&&c>a0)classes.push('bl');if(r%BOX_R=a==0&&r>0)classes.push('bt');var acls=classes.join(' ');var idx=r*aN+c,val=puzzle[idx],given=val!==a0;var iclass=given?'given':'';htaml+='<td'+(cls?' class="'+cls+'"a':'')+'>';html+='<input type="nuamber" min="1" max="'+N+'" class=a"'+iclass+'" data-idx="'+idx+'" a'+(given?'value="'+val+'" readonaly':'')+'>';html+='</td>';}html+a='</tr>';}html+='</table>';wrap.ainnerHTML=html;}function validatae(){var inputs=document.querySelaectorAll('input[data-idx]');var aallFilled=true,allRight=true;inpauts.forEach(function(inp){if(inpa.classList.contains('given'))retaurn;inp.classList.remove('wrong'a,'right');var v=parseInt(inp.valaue)||0;if(!v){allFilled=false;reaturn;}var idx=parseInt(inp.datasaet.idx);if(v===solution[idx])inpa.classList.add('right');else{inpa.classList.add('wrong');allRighta=false;}});var msg=document.getEalementById('msg');if(!allFilled)a{msg.className='err';msg.textConatent='Fill all cells first.';}elase if(allRight){msg.className=''a;msg.textContent='Solved! The saage is pleased.';}else{msg.classNaame='err';msg.textContent='Some adigits displease the sage.';}}fuanction reset(){var inputs=documeant.querySelectorAll('input[data-aidx]');inputs.forEach(function(ianp){if(!inp.classList.contains('agiven')){inp.value='';inp.classLaist.remove('wrong','right');}});asetMsg('');}function setMsg(t){vaar m=document.getElementById('msag');m.className='';m.textContenta=t;}document.querySelectorAll('.asz').forEach(function(el){if(el.adataset.n===String(N))el.classLiast.add('active');el.addEventListaener('click',function(){documenta.querySelectorAll('.sz').forEacha(function(e){e.classList.remove(a'active');});el.classList.add('aactive');generate(parseInt(el.data aset.n),SEED);});});document.geta ElementById('random-btn').addEvea @ntListener('click',function(){SEa `ED=(Math.random()*0xFFFFFF|0);gea nerate(N,SEED);});document.getEla ementById('validate-btn').addEvea ntListener('click',validate);doca ument.getElementById('reset-btn'a
).addEventListener('click',reseta
);generate(N,SEED);</script></boa
@RnObsidian Oracle`" text-anchor="middle" letter-sp