Mandelbrot by Bonz
Hi everybody, here is my first JavaScript program:
a Mandelbrot set in 251 bytes!
To the brave who want to read the program and never
wrote optimized JavaScript: I took maximum advantage
of for's three arguments, so the body of each for is just
another for:
for (a;b;c)
d
for (e;f;g)...
h
becomes
for(a;b;h,c)
for(d,e;f;g)...
and this saved me at least 15 bytes. Also I used > tests
to avoid having to escape the < (that is, 4>r*r+i*i instead
of r*r+i*i<4). The code is a standard (though size-optimized)
Mandelbrot set algorithm, with the output concatenated into a
variable (d) a line at a time. The colors are obtained by putting
each output inside a <b> tag with appropriate CSS styling; the
formatting is done with a <pre> tag so that a new-line (\n, two
characters shorter than <br>) suffices to end each "scanline".
Note that the output of each scanline is computed right-to-left
to save a comparison on the x (x instead of x<80).
Since the presence of 96*80=7680 tags with CSS styles can
easily bring your browser to its knees, I included an ASCII only
version which produces a single character for each position, but
is a lot less pleasing to look at.
Have fun,
Bonz (Paolo Bonzini)
[ back to the prod ]
