object Mandel { val xmin : Double = -2; val xmax : Double = 1; val ymin : Double = -1; val ymax : Double = 1; def escapes( cr:Double, ci:Double, it:Int ) : Char = { var zr, zi, zrtmp : Double = 0; for( i <- 1 to it ) { zrtmp = zr*zr - zi*zi + cr zi = 2*zr*zi + ci zr = zrtmp if (zr*zr + zi*zi > 4) { return ' ' } } return 'X' } def main(args: Array[String]): Unit = { val xstep = args(0).toInt val ystep = args(1).toInt val iters = args(2).toInt var xc, yc : Int = 0 var x, y : Double = 0 for( yc <- 0 to ystep-1) { y = yc*(ymax-ymin)/ystep + ymin for( xc <- 0 to xstep-1) { x = xc*(xmax-xmin)/xstep + xmin print(escapes(x, y, iters)) } println() } } }