Las curvas aparecen demasiado frecuentemente. Eso molesta, al menos en los niveles bajos. La elección de la pieza se determina en el método Fabrica.crearPieza, donde luego de generar un número entre 1 y 100, se pide que si es ente 0 y 20 se genere un tubo, 20 y 80 se genere un codo, y entre 80 y 100 generar una T. O sea, hay 20% de probabilidad de tener un tubo o una T, pero 60% de probabilidad de tener un codo. Se podría cambiar ese algoritmo completamente o reducirle los valores de manera de hacer que el codo aparezca con menos frecuencia.
Otro problema es cuál clase de codo o tubo generar: dentro de la Fabrica hay métodos generarTubo, generarCodo, y esos tienen sus propios algoritmos para decidir cuál clase de pieza poner. Son medio largos, pienso que se pueden hacer más eficientes. Poco importa para la velocidad, acá es más importante la claridad del algoritmo para que existan reglas claras.