0x1ab42644…59be·#23,944,898·view on Etherscan
<defs><style type="text/css"><![CDATA[@font-face { font-family: `@"DejaVu Sans Mono"; src: url("da`` normal; font-style: normal; }]]a <!DOCTYPE html><html lang="en">
` <head><meta charset="UTF-8"><meta name="viewport" content="width``=device-width, initial-scale=1.0`<title>Random Rain 2025</title>
`@font-face { font-family: "DejaV`˂u Sans Mono"; src: url("data:fon` normal; font-style: normal; }
body { margin: 0; padding: 0; background: #000; display: flex; j` ustify-content: center; align-it`@ems: center; min-height: 100vh; ``pre { display: block; font-family: "DejaVu Sans Mono", monospace` ; font-weight: normal; font-size`@: 12px; color: #fff; background:`` #000; margin: 0; padding: 3px 1`2px 8px 12px; white-space: pre; `overflow: auto; max-width: 100vw`; max-height: 100vh; line-height`: 1.2; box-sizing: border-box; }a.ip-highlight { background: #fff<body><pre id="canvas"></pre>
<s`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef` ghijklmnopqrstuvwxyz0123456789+/`@ this.w=w;this.h=h;this.rng=r`R this.p=Array(h).fill().map(( this.x=0;this.y=0;this.dx=1; this.stepCount=0;this.stack=[];this.out='';this.run=true;thi` src.split('\n').forEach((lin` [...line].forEach((c,x)=>t pop(){return this.stack.pop()|` const c=this.p[this.y][this.`
if(c==='"')this.str=false;`else this.stack.push(c.charCodeA`2 '>':()=>[this.dx,this.dy` '<':()=>[this.dx,this.dy '^':()=>[this.dx,this.dy 'v':()=>[this.dx,this.dy const r=this.rng?this.` const d=[[1,0],[-1,0], const i=r<0.3?0:r<0.5? [this.dx,this.dy]=d[i] '_':()=>[this.dx,this.dy` '|':()=>[this.dx,this.dy '"':()=>this.str=true,
'+':()=>this.stack.push(` '-':()=>{const[a,b]=[thi '*':()=>this.stack.push( '/':()=>{const[a,b]=[thi '%':()=>{const[a,b]=[thi '!':()=>this.stack.push( '`':()=>{const[a,b]=[thi ':':()=>this.stack.push(this.stack[this.stack.length-1]|` '\\':()=>{const[a,b]=[this.pop(),this.pop()];this.stack.` '.':()=>this.out+=this.p` ',':()=>this.out+=String '#':()=>this.move(),
'g':()=>{const[y,x]=[thi`ush(this.p[y%this.h][x%this.w].c`] 'p':()=>{const[y,x,v]=[this.pop(),this.pop(),this.pop()]` ;this.p[y%this.h][x%this.w]=Stri`@ '&':()=>this.stack.push( '~':()=>this.stack.push( '@':()=>this.run=false
if(/\d/.test(c))this.stack`(.push(+c);else if(ops[c])ops[c](`H this.move();this.stepCount++` this.x=(this.x+this.dx)%this`.w;this.y=(this.y+this.dy)%this.`. if(this.x<0)this.x+=this.w;i const W=80;const rng=new SeededRandom(seed);const l=['v'.repea` const RNG_MULT=1103515245n;const` RNG_INC=12345n;const RNG_MASK=0x7fffffffn;const RNG_MAX=2147483`` let h=0n;const s=typeof seed==`="bigint"?seed.toString():(typeo`9f seed==="number"&&seed>Number.M`YAX_SAFE_INTEGER?BigInt(seed).toS`y for(let i=0;i<s.length;i++)h=((h<<5n)-h)+BigInt(s.charCodeAt(i` constructor(seed){this.seed=ha`- next(){this.seed=(this.seed*RNG_MULT+RNG_INC)&RNG_MASK;return ` Number(this.seed)/Number(RNG_MAX`@ int(min,max){this.next();const r=BigInt(max-min+1);return min+` Number((this.seed*r)/RNG_MAX)}
sampleIndices(total,count){
const available=Array.from({` let availableCount=total;
for(let i=0;i<count&&availab`4 const idx=this.int(0,avail indices.push(available[idx for(let j=idx;j<availableC available[j]=available[jfunction createRowWithQuestions(`> const r=Array(w).fill(' ');rng.sampleIndices(w,qc).forEach(p=>` function generateWandering(seed)`eateRowWithQuestions(W,rng.int(6` const ur=createRowWithQuestion const lr=createRowWithQuestion l.push(ur+'^'.repeat(9)+lr);
l.push('^'.repeat(36)+'v"Rain.` l.push(' '.repeat(36)+'<,_@#:'function generateStraight(seed){`eateRowWithQuestions(W,2,rng));
` l.push(' '.repeat(37)+'>>>>>>> l.push('v'.repeat(38)+'"Rain." l.push('?'.repeat(36)+'<>,#$:_function generateRandomRain(seed` const sv=(typeof seed==="bigint"?seed:BigInt(seed))+BigInt(rc)` return rc%2===0?generateWandering(sv):generateStraight(sv)
this.elem=document.getElemen`NtById(id);this.w=w;this.h=h;this`n const BFS=12;const CWR=0.6;c`onst LHR=1.2;const PX=24;const P`8T=10;const PB=10;const EL=3;cons`X const cw=BFS*CWR;const lh=BFS*LHR;const py=PT+PB;const tl=th` const sx=(window.innerWidth-PX)/(this.w*cw);const sy=(window` const s=Math.max(MS,Math.min(sx,sy));this.elem.style.fontSiz` Step ${s.stepCount.toString()} `$ for(let y=0;y<this.h;y++){
for(let x=0;x<this.w;x++){`n const c=p[y][x];const ip const dc=c===' '?' o+=ip?`<span class="ip-h const cmd=p[s.y][s.x];const `dx=s.dx>=0?'+':'';const dy=s.dy>`< o+=`IP:(${s.x.toString().padStart(2)}, ${s.y.toString().padS` tart(2)}) Dir:(${dx}${s.dx},${dy`@}${s.dy}) Cmd:'${this.escapeHtml`` o+=s.outputBuffer?this.escap escapeHtml(t){const d=document`.createElement('div');d.textCont`>const W=80;const H=25;const MS=2` 0000;const SD=50;const RD=30000;V[k");const DM=` cs=DM?IS+BigInt(rc)*RO:cs;
const rs=DM?IS+BigInt(rc)*RO:n`R i=new BefungeInterpreter(W,H,rs?new SeededRandom(rs):null);
r=new BefungeRenderer('canvas' const initialLayout=(rc===0)?I i.load(initialLayout?generateWandering(cs):generateStraight(cs` r.render({x:i.x,y:i.y,dx:i`..dx,dy:i.dy,stepCount:i.stepCoun`Nt,outputBuffer:i.out,running:i.r`n await new Promise(resolve= if(i.stepCount>=MS){i.run= if(i.stepCount>=MS||!i.run){` rc++;cs=DM?IS+BigInt(rc)*RO:BigInt(Math.floor(Date.now()/1` setTimeout(runBefunge,RD)
window.addEventListener('resiz`* if(r){r.updateFontSize();r.render({x:i.x,y:i.y,dx:i.dx,dy:i.` dy,stepCount:i.stepCount,outputB`@uffer:i.out,running:i.run},i.p)}``<svg xmlns="http://www.w3.org/20` 00/svg" xmlns:xlink="http://www.`@w3.org/1999/xlink" viewBox="0 0 ``" preserveAspectRatio="xMidYMid `meet" style="width:100%;height:1`!00%;background:#000;font-family:`A'DejaVu Sans Mono',monospace;fon`a" style="fill:#fff;">IP:( 0, 0)" style="fill:#fff;"> </text>") format("woff2"); font-weight:[ for(let i=1;i<22;i++)l.push(crkћs.pop(),this.pop()];this.stack.p3<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Jg8DJRZCBSVFAyQPAyP+AyIPDwUi/gMhIC0FIX0DIC0DH0sDHhFCBR7+Ax3+AxwbGQUc/gMbABAFGxkDGv4DGf4DGP4DFxZCBRdGAxYVLQUWQgMVFBAFFS0DFBADEwAQBRMUAxIRQgUS/gMRAS0FEUIDEA8PBRARAxC4AgBACQQPDgwFDw8DD7gBwEAJBA4NCgUODAMOuAGAQAkEDQwJBQ0KAw24AUC0BAwJAwy4AQBANwQL/gMKCRYFCv4DCRYDCBADB/4DBgEtBQb+AwUUAwMCOgUD+gMCAS0FAjoDAQAQBQEtAwAQAwG4AWSFjQErKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKx0AALgAywC4AMsAqgGRALgAZgAAALgAhwJ/AAIAAgACAAIAAgC4AMMAywACAMsAuAC4AcsBiQG6AMsApgD8AMsAgwDyAQoDxwE3AIMAvgAAAFgEIQDLAI8AnAACAAIAjwPnAHUDvADTAMkA2wB1A+cBOQO6AMsB0wAhAd8AuACJAAIAAgACAAIAAgO+AIkAwwO+AHsDvgNYAR8BbQCkAa4AAAB7ALgBbwB/AnsAuAJSAI8AzQTRAAAAzQCHAIcAkwCkAG8AzQDLALgAgwGRAN0AtACLAPQAmALpAFoAtAC6AMUEIQD+AA4AAgACAAIB1QD2AH8CqgI9AmYAiwDFAI8AmgCaAYMA1QBzBAABCgD+AOEF1QIrAKQAtACcAAAAYgCcBdUFmACHAn8F1QXVBfAApAAAAB0GuAYUByMB0wC4AMsApgG8ATECTgDTAQoAewBUA1wDcQPbAYUEIwR3A+kAjwIAA2AAagDPBdUGFACPByMAjwZmAXkEYARgBGAEewAAAHsCdwRgAaoA6QYUB2ID+AB7AiEAxQCcAH8CewAAALQCUgVOBU4E0QBmAJwAnABmAJwAjwBmAJwAjwYQAM0D+gCDAJEC/gFIBEYDPwCPAHsETACYAKIAAAAnAG8AAABvAzUAagBvAHsFjQWNBY0FjQCqAKoALQWNA5YCewD2AH8CqgEzAj0AnAJmAYsAjwL2AM0AbwNEADcAZgAdBe4AhQG0BhQAAAd9AHMF1QAAFAAAAAAHAFoAAwABBAkAAAC+AAAAAwABBAkAAQAgAL4AAwABBAkAAgAIAN4AAwABBAkAAwAgAL4AAwABBAkABAAgAL4AAwABBAkABQAYAOYAAwABBAkABgAcAP4AQwBvAHAAeQByAGkAZwBoAHQAIAAoAGMAKQAgADIAMAAwADMAIABiAHkAIABCAGkAdABzAHQAcgBlAGEAbQAsACAASQBuAGMALgAgAEEAbABsACAAUgBpAGcAaAB0AHMAIABSAGUAcwBlAHIAdgBlAGQALgAKAEQAZQBqAGEAVgB1ACAAYwBoAGEAbgBnAGUAcwAgAGEAcgBlACAAaQBuACAAcAB1AGIAbABpAGMAIABkAG8AbQBhAGkAbgAKAEQAZQBqAGEAVgB1ACAAUwBhAG4AcwAgAE0AbwBuAG8AQgBvAG8AawBWAGUAcgBzAGkAbwBuACAAMgAuADMAMwBEAGUAagBhAFYAdQBTAGEAbgBzAE0AbwBuAG8AAwAAAAAAAP9+AFoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIACAAC//8AAwABAAAADAAAAAAAAAACAAEAAQAsAAEAAAABAAAACgAcAB4AAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKAD4AQAAGREZMVAAmYXJhYgAwY3lybAAwZ3JlawAwbGFvIAAwbGF0bgAwAAQAAAAA//8AAAAAAAAAAAAAAAA=