1: lot ->Size(1^, 50 * rand(0.7, 1.3), 1^) {new_lot} 2: new_lot ->Subdiv(Y, 1^, 1^, 1^) {bot | mid | top} 3: mid ->Comp("sidefaces") {new_mid} 4: new_mid ->Subdiv(X, 1^, 1^, 1^, 1^, 1^) {middiv | middiv | middiv | middiv | middiv} 5: middiv ->Subdiv(Y, 1^, 1^, 1^, 1^, 1^) {middivb | middivb | middivb | middivb | middivb} 6: middivb ->Subdiv(X, 1^, 5^, 1^) {terminal | win_t | terminal} 7: win_t ->Subdiv(Y, 1^, 5^, 1^) {terminal | win_f | terminal} 8: bot ->Subdiv(X, 1^, 4^, 1^) {side | door | side} 9: top ->Subdiv(Y, 1^, 1^, 1^) {floor | floor | floor} 10: floor ->Comp("sidefaces") {floor_faces} 11: floor_faces ->Subdiv(X, 1^, 1^, 1^, 1^, 1^) {topdiv | topdiv | topdiv | topdiv | topdiv} 12: topdiv ->Subdiv(Y, 1^, 1^) {topdivb | topdivb} 13: topdivb ->Size(1^, 1^, rand(0.7, 1.3)) {topf} 14: topf ->Subdiv(X, 1^, 1^, 1^, 1^, 1^) {terminal | terminal | terminal | terminal | terminal} : 0.5 ->Subdiv(Y, 1^, 1^, 1^, 1^, 1^) {terminal | terminal | terminal | terminal | terminal} : 0.5 15: side ->Comp("sidefaces") {side_faces} 16: side_faces ->Replace(new_mid) end