Golfscript - 154
Newlines are significant. If you fail to strip the trailing newline you will get an extra number printed at the bottom! There is a TAB between -
and 0
" "4*:s%{~}%0+: $):
;0=:g;{2,{:r;s {[
- 0
-]$(:b\(:t\;=!t!0t<1b>*2*+*[{s}[{"__ "}{-2<"/__ /|"}]r={-3<["| | |""|___|/"["| "b!=]+]r=}]\=~+}%n}%
(:
g
Golfscript - 163
0`+" ":s%{~}%:A$):y;0=1-:g;{2,{:r;3s*A{[y- 0y-]$(:b\(:t\;=!:j;[{4s*}[{"__ "}{-2<"/__ /|"}]r={-3<["| | |""|___|/"["| "b!=]+]r=}]0t=0t<1b>*2*+j*=~+}%n}%y(:y g>}do
Golfscript - 165
0`+" ":s%{~}%:A$):y;0=1-:g;{2,{:r;3s*A{[y- 0y-]$(:b\(:t\;=!:j;[
{4s*}.{"__ "
}{-2<"/__ /|"}
{-3<"| | |"}
{-3<"|___|/"["| "b!=]+}]0t=2*0t<1b>*4*+r+j*=~+}%n}%y(:y g>}do