Ce puzzle de programmation est inspiré d'une autre question qui a été posée ici hier mais qui a été supprimée par l'auteur ...
Le défi:
Créez un binaire exécutable (binaire Windows .EXE ou Linux) en utilisant Visual C # (ou votre IDE C # préféré) qui imprime le texte suivant sur la sortie standard:
Main() is the main method of C# programs!
... sans utiliser les 4 lettres consécutives MAIN apparaissant dans n'importe quel fichier source!
Remarques:
- Si votre code source contient le texte
remainder
(par exemple) il contient les 4 lettres consécutives MAIN, mais s'il contientmxain
les 4 lettres ne seraient plus consécutives doncmxain
serait donc autorisé. Vous n'êtes pas autorisé à exécuter des programmes sauf l'IDE C # ni à modifier les paramètres de l'IDE C # pour exécuter d'autres programmes (mais ceux qu'il exécuterait normalement, comme le compilateur C #).
Sinon, vous pourriez simplement dire: «J'écris un programme Pascal en utilisant l'IDE C # et j'invoque le compilateur Pascal dans les étapes de« pré-construction »de mon projet C #».
Ce serait trop simple.
Les utilisateurs d'un IDE qui peut s'étendre à l'aide de "plug-ins" (ou similaires) ou qui ont des éditeurs de fichiers binaires intégrés (hex-éditeurs) auraient un avantage trop important sur les utilisateurs d'autres IDE C #.
Par conséquent, ces valeurs ne doivent pas non plus être utilisées.
- L'utilisation des autres éditeurs non ASCII (tels que l'éditeur de fenêtre de dialogue) est explicitement autorisée!
- L'utilisateur posant la question d'origine a proposé d'utiliser la barre oblique inverse dans les noms de fonction comme ceci:
static void M\u0061in()
Parce que cette réponse a déjà été lue par d'autres utilisateurs, elle ne sera plus acceptée! - Un utilisateur a demandé s'il serait autorisé à taper simplement un fichier .EXE dans l'éditeur de code source et à enregistrer le fichier en tant que ".exe" au lieu de ".cs". Réponse: Je doute que cela soit possible car les binaires Windows et Linux valides contiennent des octets NUL. Cependant, si vous trouvez un binaire valide qui peut être créé de cette façon, vous avez une solution valide.
Le nom de ce site est "Programming Puzzles & Code Golf" - c'est un "Programming Puzzle", pas "Code Golf": Le défi est de trouver une solution de travail avant tous les autres utilisateurs, pas de trouver une solution plus courte que toutes les autres solutions.
Par conséquent, le premier article décrivant une solution de travail gagne !
Bonne chance!
Au fait: j'ai une solution fonctionnant sous Visual C # Express 2010.