package main import ( "fmt" ) func mandelbrot(x0, y0 float64) int { var x, y, x2, y2 float64 for i := 0; i < 1000; i++ { if x2+y2 > 4 { return (i-1)%6 + 1 } y = (x+x)*y + y0 x = x2 - y2 + x0 x2 = x * x y2 = y * y } return 0 } func main() { const ( xMin = -2. xRange = 2.47 yMin = -1.12 yRange = 2.24 width = 80 height = 25 xStep = xRange / float64(width) yStep = yRange / float64(height) ) y := yMin for i := 0; i < height; i++ { x := xMin for j := 0; j < width; j++ { fmt.Printf("\033[4%dm ", mandelbrot(x, y)) x += xStep } fmt.Println("\033[49m") y += yStep } }