var RELOJ; var NUMERO_LINEAS; var LINEA_ACTUAL; var ULTIMA_LINEA; var VELOCIDAD; var PGM_I; var PGM_J; var PGM_K; var PGM_L; /* ------------------------------------------------------- */ function changeLocation ( url ) { window.location = url; } /* ------------------------------------------------------- */ function mostrarCodigo () { var codigo = obtenerCodigo (); NUMERO_LINEAS = codigo.length; var content = document.getElementById ( "code-block" ); var i; var nLinea; var linea; var nombreLinea; content.innerHTML = ""; for ( i = 0; i < codigo.length; i++ ) { if ( i + 1 < 10 ) { nLinea = "00" + String ( i + 1 ); } else if ( i + 1 > 9 && i + 1 < 100 ) { nLinea = "0" + String ( i + 1 ); } else nLinea = String ( i + 1 ); nLinea = "
" + nLinea + "
"; nombreLinea = "codeline_" + String ( i + 1 ); linea = nLinea + "
" + codigo [ i ] + "
"; content.innerHTML += linea; } } /* ------------------------------------------------------------------- */ function validateNumber ( n ) { if ( n == "" ) return false; if ( !/^([0-9])*$/.test ( n ) ) return false; return true; } /* ------------------------------------------------------------------- */ function resaltarLinea ( id ) { var obj = document.getElementById ( "codeline_" + String ( id ) ); obj.className = "codeline_highlight"; } /* ------------------------------------------------------------------- */ function limpiarLinea ( id ) { var obj = document.getElementById ( "codeline_" + String ( id ) ); obj.className = "codeline"; } function limpiarLineas () { var obj; var i; for ( i = 0; i < NUMERO_LINEAS; i++ ) limpiarLinea ( i + 1 ); } /* ------------------------------------------------------------------- */ function limpiarVariables () { var codigo = obtenerCodigo (); NUMERO_LINEAS = codigo.length; LINEA_ACTUAL = 0; ULTIMA_LINEA = 0; PGM_I = 0; PGM_J = 0; PGM_K = 0; PGM_L = 0; VELOCIDAD = 2000; } /* ------------------------------------------------------------------- */ function iniciarPrograma () { var boton = document.getElementById ( "simulator-boton" ); limpiarLineas (); limpiarVariables (); boton.innerHTML = "Detener"; boton.className = "simulator-boton-rojo"; if ( NUMERO_LINEAS > 0 ) { inicializarDatosOperacion (); dibujarTorres (); LINEA_ACTUAL = 1; leerLinea (); } else { alert ( "No existe código para ejecutar" ); } } /* ------------------------------------------------------------------- */ function finalizarPrograma () { var boton = document.getElementById ( "simulator-boton" ); alert ( "El Algoritmo ha finalizado su ejecución" ); clearTimeout ( RELOJ ); boton.innerHTML = "Ejecutar Algoritmo"; boton.className = "simulator-boton-normal"; } /* ------------------------------------------------------------------- */ function procesarLinea () { var operacion; var respuesta; ULTIMA_LINEA = LINEA_ACTUAL; respuesta = procesarLineaOperacion ( LINEA_ACTUAL ); if ( respuesta == -1 ) { return false; } else { LINEA_ACTUAL = respuesta; if ( LINEA_ACTUAL >= NUMERO_LINEAS + 1 ) { finalizarPrograma (); return false; } } return true; } /* ------------------------------------------------------------------- */ function leerLinea () { var resultado; if ( ULTIMA_LINEA != 0 ) limpiarLinea ( ULTIMA_LINEA ); resaltarLinea ( LINEA_ACTUAL ); resultado = procesarLinea (); if ( resultado ) RELOJ = setTimeout ( "leerLinea()", VELOCIDAD ); } /* ------------------------------------------------------------------- */ function procesarBoton () { var boton = document.getElementById ( "simulator-boton" ); if ( boton.innerHTML == "Ejecutar Algoritmo" ) { iniciarPrograma (); } else finalizarPrograma (); }