Este rompecabezas de programación está inspirado en otra pregunta que se hizo ayer aquí pero que fue eliminada por el autor ...
El reto:
Cree un binario ejecutable (binario de Windows .EXE o Linux) usando Visual C # (o su IDE favorito de C #) que imprime el siguiente texto en la salida estándar:
Main() is the main method of C# programs!
... sin usar las 4 letras consecutivas PRINCIPALES que aparecen en cualquier archivo fuente!
Notas:
- Si su código fuente contiene el texto
remainder
(por ejemplo), contiene las 4 letras consecutivas PRINCIPALES, sin embargo, si contienemxain
las 4 letras ya no serían consecutivas, pormxain
lo que estaría permitido. No está permitido ejecutar ningún programa que no sea el IDE de C # ni cambiar la configuración del IDE de C # para ejecutar otros programas (pero los que normalmente se ejecutarían, como el compilador de C #).
De lo contrario, simplemente podría decir: "Escribo un programa Pascal usando el IDE de C # e invoco el compilador Pascal en los pasos 'precompilación' de mi proyecto C #".
Esto sería muy simple.
Los usuarios de un IDE que se puede ampliar utilizando "complementos" (o similares) o que tienen editores de archivos binarios incorporados (editores hexadecimales) tendrían una ventaja demasiado grande sobre los usuarios de otros IDE de C #.
Por lo tanto, estas características tampoco deben usarse.
- ¡El uso de otros editores no ASCII (como el editor de la ventana de diálogo) está explícitamente permitido!
- El usuario que formuló la pregunta original propuso utilizar la barra diagonal inversa en los nombres de las funciones de la siguiente manera: como
static void M\u0061in()
esta respuesta ya ha sido leída por otros usuarios, ¡ya no será aceptada! - Un usuario preguntó si se le permitiría simplemente escribir un archivo .EXE en el editor de código fuente y guardar el archivo como ".exe" en lugar de ".cs". Respuesta: Dudo que esto sea posible porque los binarios válidos de Windows y Linux contienen bytes NUL. Sin embargo, si encuentra un binario válido que se puede crear de esta manera, tiene una solución válida.
El nombre de este sitio es "Rompecabezas de programación y código de golf" - este es un "rompecabezas de programación", no "código de golf": el desafío es encontrar una solución que funcione antes que todos los demás usuarios, no encontrar una solución más corta que todos los demás soluciones
¡Por lo tanto, la primera publicación que describe una solución de trabajo gana !
¡Buena suerte!
Por cierto: tengo una solución que funciona bajo Visual C # Express 2010.