Golf me a polygonal loader
+2
−0
CGCC Sandbox, Codidact Sandbox
Given three positive integers as input, animate an ascii-art polygonal loading symbol on the screen.
Intro
Using the first input $n$, Take one the following regular polygons:
* * *
* *
* * * * *
* * * *
* * * * * * * *
* * * * * * * *
* * * * * * * * * * * *
And draw it with the correct side length $l$.
Given load length $d$ lesser than it's perimeter, create it's loading animation as follows:
- Start at any one of the topmost corners, and draw the bounding line till it's length is $d$.
- Then, shift the position by 1 clockwise and do the next step.
For example, $n=3,l=3,d=4$ would result in the following steps:
* * * *
* → * → * → * → * * → * * → . . .
* * * * * * * * * * * *
Further details(important):
- You are guaranteed that $n∊(3,4,6,8)$
- You are guaranteed that $l≥3.$
- You are guaranteed that $d<l×n.$
- There must be a delay of at least 0.1 s between each step. You can have a delay of up to 10 seconds.
- Your language is allowed to output a list of steps infinitely if and only if it cannot clear the screen or do something similar.
- If so, there must be at least 2 newlines between each step.
- This is not graphical-output.
Scoring
This is code-golf. Shortest answer in each language wins.
1 answer
+3
−0
JavaScript (Browser), 670 bytes
for(_="=1,w=):=0,w(=f(||(.join`w?q-w?q=-w(a,b=>A(L*5,a),g.innerText=N=L=D=T,I=,c,d)a-d?I,b(d,cd+1c,A=)I(a,(x,y)[...y,b(x)],[](U=_(Kf=({value:a})a==[a|]+[]&&aKQnFlZdOtQ-N|F-L|Z-D|O-T&&(B=Q,e=F,H=Z,V=O,K&=(V>0&V<61&[3,4,6,8].includes(B)&e>1&e<101&H>0&H<=B*(e-1)K&&(N=Q,L=F,D=Z,T=O,X=N-4&&L,Y,WE=N==3,M=1)R=requestAnimationFrame,N?(s=' ')x=X,y=Y,q=W,E,m=M,I(D,i(s[y][x]='*',m++-Lm=2,N<4?w<0?1:w?(q=-1q-1N<6?w?(q,qN<8?w::q:q?q+ww:q:qx+=q*(?2:1y+=w,iX=x,Y=y,W=q,E=w,M=m))s.map(aa`)\\n`(''T-60?setTimeout(_R(U1e3/T-16R(U)))()";G=/[-]/.exec(_);)with(_.split(G))_=join(shift());eval(_)
0 comment threads