3

C, 328 238 bytes:
B;M(w,j,X,R){j=w;if(j<=B){char b[(j*2)-1],k[j*2+1];b[(j*2)-2]=k[j*2]=0;memset(b,'_',(j*2)-2);memset(k,'_',j*2);R=((B+1-j)%2==0);printf("%*s\n%*s/,%s,\\%s\n",(j*2)+(B+1)-j,k,B-j,R ? "o":"",b,R ? "":"o");j++;M(j);}}main(){scanf("%d",&B);M(1);}
A recursive implementation using a...