Lo primero, coloca tu código entre etiquetas de código GeSHi (puedes seleccionarlas en un desplegable que hay encima del cuadro de texto cuando escribes/modificas un mensaje). Es más difícil de ver y puede dar lugar a errores al no estar dentro de las etiquetas.
Aparte como el código es bastante largo, si puedes especificar en qué momento falla... Es decir, qué línea o bloque de instrucciones se está ejecutando justo en el momento que el programa entra en el bucle infinito
Me falla en cualquier parte donde hay que poner un numero osea practicamente en todo el programa, estoy super estresado con todo esto