Hi,
here is my solution. The fractal-part is straight forward, the ascii-art
was harder. 

thanks,
Philip

--------------------------------

#!/usr/bin/ruby -w

class Fractal
	
	def initialize n
		@steps={:up =>[:up, :left, :up, :right, :up],
			:down=>[:down, :right, :down, :left, :down],
			:left=>[:left, :down, :left, :up, :left],
			:right=>[:right, :up, :right, :down, :right] }
		@n=n
		@moves=(0..n).to_a.inject([]) {|result, ignore| one_step(result) }
	end
	
	def to_s
		x=0
		y=0
		
		width = 3 ** @n
		height= (1+width)/2
		screen= (1.. height).collect { " " *(2* width-1) } 
		
		@moves.each {|item| 
			case item 
				when :up
					y+=1
					(screen[y-1])[x-1]="|"
				when :down
					y-=1
					(screen[y])[x-1]="|"
				when :left
					x-=2
					(screen[y])[x]="_"
				when :right
					x+=2
					(screen[y])[x-2]="_"
			end
		}
		screen.reverse.join("\n")
	end

	private
	
	def one_step x
		x.empty? ? [:right] : (x.collect {|item| @steps[item] }).flatten
	end
	
end

n=ARGV[0].to_i

if (ARGV.length < 1 || n<0) 
	puts "Usage: quizz_125.rb level"
	puts "-> level: non-negative integer"
else
	puts Fractal.new(n)
end