JavaScript (ES6), 180 bytes
Expects an array of characters and returns a matrix of characters.
a=>a.map(c=>~C?1/c?m[y][x]=" ░▒▓█"[c]||C:c>"s"?y-=!!y:c>"d"?y+=y<24:c>"a"?x+=x<79:c>{}?x-=!!x:C=c>"!"?-1:m[y][x]:C=c,m=[...Array(25)].map(_=>[..."".padEnd(80)]),x=y=C=0)&&m
Arnauld
- 205.5k
- 21
- 187
- 670