Skip to content

Instantly share code, notes, and snippets.

@DJStompZone
Created August 15, 2025 08:38
Show Gist options
  • Select an option

  • Save DJStompZone/d5ae438fb98a85f444a80d1a9012aa58 to your computer and use it in GitHub Desktop.

Select an option

Save DJStompZone/d5ae438fb98a85f444a80d1a9012aa58 to your computer and use it in GitHub Desktop.
Cursed Animation
W,T,F,N,I,D,D,A=[b'eJzFWF1zojAU/UH7gh3HwYd9oGBp+BAttIpvLd1iQMGttZT++g1KIQlJDLYz+3CmJSQnNycnl1x1aMBNHkhiHgPPXqxloWvxcPc4kQXQjXYeNBZg49t3cnHqB3uRohjSP/JIvP8zJmnXOke4q+FSzzJw8XVD9Dc+h9O8GgVQ8wH6HfDk+aHXXW/iYWvGdWD0lebXXuFmh/yxu0V7XzTeaWF03+MxMft9cv4v8H1yef83c+PzEHEmcuftR+InYm5jpPcF0110rpm6y0IQ/1n9qDFkf87a5eOygcx5wdfPjZuxX1Q/eszxbPH7dM4hC0DLCd9LxdXTRzJraYDikcz9oE+c0v68cG0VLvp+yOgu7cdv637WL41vsLMW4zrlsqDHts8E/wk27dMObtS3p9LdWnAXh6aWza7mo9nWipalYEy1Z5DHN353Siu2ygg9R5mjF/FqMjC9+8E0QPDN8YuA12a1O1t1C458dZupwWBhgaDmrAGeyiGbl6EB4oQAahne9rwdp4GfpxZckdyBepDToMgY/RDn6v3par5/gc+xrYcJUL6415GEBu9MTSZfHEoSJmoSbsew5qza3c4YSgOLsX8zhdCzwbRq9+98O12/CjUw1NSheY0dk7OCoxxjVUN9R8eLaXCtstb/MmFzVgjTAbAq/97M93wN7gD4pH1xHdupgBdOxxVvaKhcDZaVx3W360EI/gIYIc/lSYfbP3nb8bkanPotLP7Zuf0gOR8ab4+4GkzWTX/fVNm85jXOe9++G3I1wH10z4vX2LS8S6X1NVcD7a3lVdicyCu4BrPyI635yHNJnoVR4yWfw4tp8KBrh2BZHPOBR3mdygeHY8572HNirbCq580zlNMylq6gmw9GFe+jID+H1Xp8F+LadfoxcqKVDsb8WBEv+Xyg9oqlQT0uZOZPBnj9mN8FtC+/HLZmZJw8rYTfxmHM/wYOu3qe0QBDFurKm7NR9ytznoByWkSGgvJCJBpz0qB756zr9a82o61jev520LfmF+0PXVsz2l1GP6ma+7L7HVWnEjrSd1TBfb1HvRw3dzTWHS7B6lLqbiena/c+Kog10Tu8zP0Qnw+yThDsJf0MZOoS3jxnz5d0nVrE3/XOd/TqoZ9c/flDeolrtPPcEj7jergTP3fuPr/f/ERM7Bx2Wb66LCa6xiP3vWe9SHwfON8XLf/9D6PQewE=','\x1b[2J\x1b[H',' ',print,range,max,max,len]
C,U,R,S,E,D_=['','Animation stopped.',True,KeyboardInterrupt,'\n',10]
import sys as B,time as G,math
from itertools import zip_longest as O
from base64 import b64decode as P
from zlib import decompress as V
J,K,L=E.join([A for A in P(V(P(W))).decode().splitlines()if A]).split(C.join([E,F,E]))
Q,H,X=[A.splitlines()for A in[J,K,L]]
def Z():A=[];A.extend(Q[:3]);A.extend(M(A or C,B or C)for(A,B)in O(Q[4:],H[:D_],fillvalue=F));A.extend(H[D_:-13]);A.extend(M(A or C,B or C)for(A,B)in O(X,H[-12:-1],fillvalue=F));A.append(H[-1]);N(E.join(A))
def a(j=J,k=K,l=L,f=D_<<R^D_,step=1,c=D_,gp=R<<R<<R^~R^~R<<R):
L=j.splitlines();C=k.splitlines();M=l.splitlines();F=A(C)
if F==0:return
K=1./D(1,f)
def H():B.stdout.write(T);B.stdout.flush()
J=0
try:
while True:
for O in I(F):H();P=R(C,L,M,J,gp=gp);B.stdout.write(E.join(P));B.stdout.flush();G.sleep(K);J=(J+step)%F
for O in I(c):H();B.stdout.write(E.join(C));B.stdout.flush();G.sleep(K)
except S:H();N(U)
def M(a,b,fixedlength=None):
G=fixedlength;a=a or C;b=b or C;H=D(A(a),A(b))if not G or G<=0 else G;E=[]
for B in I(H):
if B<A(a)and a[B]!=F:E.append(a[B])
elif B<A(b)and b[B]!=F:E.append(b[B])
else:E.append(F)
return C.join(E)
def R(gl,tl,bl,ty,gp=1):
"""Self-explanatory :D"""
H=ty;G=bl;E=tl;B=gl;I=A(B)
if I==0:return[]
J=D(D((A(B)for B in B),default=0),D((A(B)for B in E),default=0),D((A(B)for B in G),default=0));K=lambda s:(s or C).ljust(J);F=[K(A)for A in B]
def L(lines,start_y):
for(B,C)in enumerate(lines):
A=start_y+B
if 0<=A<I:F[A]=M(K(C),F[A],fixedlength=J)
L(E,H);L(G,H+A(E)+gp);return F
def Y(j=J,k=K,l=L,f=60,step=.33,gp=3,c=D_):
J=j.splitlines();C=k.splitlines();K=l.splitlines();L=A(C)
if L==0:return
M=1./D(1,f)
def F():B.stdout.write(T);B.stdout.flush()
O=-(A(J)+gp+A(K));P=L
try:
while R:
H=float(O)
while H<=P:F();Q=R(C,J,K,math.floor(H),gp=gp);B.stdout.write(E.join(Q));B.stdout.flush();G.sleep(M);H+=step
for V in I(c):F();B.stdout.write(E.join(C));B.stdout.flush();G.sleep(M)
except S:F();N(U)
Y() # It's quite simple really
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment