Questo puzzle di programmazione è ispirato a un'altra domanda che è stata posta qui ieri ma che è stata eliminata dall'autore ...
La sfida:
Crea un file binario eseguibile (binario Windows .EXE o Linux) usando Visual C # (o il tuo IDE C # preferito) che stampa il seguente testo sull'output standard:
Main() is the main method of C# programs!
... senza usare le 4 lettere consecutive MAIN che appaiono in nessun file sorgente!
Appunti:
- Se il tuo codice sorgente contiene il testo
remainder
(ad esempio) contiene le 4 lettere consecutive MAIN, tuttavia se contienemxain
le 4 lettere non sarebbe più consecutivo, quindimxain
sarebbe consentito. Non è consentito eseguire alcun programma tranne l'IDE C # né modificare le impostazioni dell'IDE C # per eseguire altri programmi (ma quelli che verrebbe normalmente eseguito come il compilatore C #).
Altrimenti potresti semplicemente dire: "Scrivo un programma Pascal usando l'IDE C # e invoco il compilatore Pascal nei passaggi 'pre-build' del mio progetto C #".
Questo sarebbe troppo semplice.
Gli utenti di un IDE che possono estendersi utilizzando "plug-in" (o simili) o che hanno editor di file binari (hex-editor) integrati avrebbero un vantaggio troppo grande rispetto agli utenti di altri IDE C #.
Pertanto, anche questi caratteri non devono essere utilizzati.
- L'uso degli altri editor non ASCII (come l'editor della finestra di dialogo) è esplicitamente consentito!
- L'utente che pone la domanda originale proposta utilizzando la barra rovesciata nei nomi delle funzioni in questo modo:
static void M\u0061in()
poiché questa risposta è già stata letta da altri utenti, non verrà più accettata! - Un utente ha chiesto se fosse consentito digitare semplicemente un file .EXE nell'editor del codice sorgente e salvare il file come ".exe" anziché ".cs". Risposta: Non dubito che ciò sia possibile perché entrambi i binari validi di Windows e Linux contengono byte NUL. Tuttavia, se trovi un file binario valido che può essere creato in questo modo, hai una soluzione valida.
Il nome di questo sito è "Puzzle di programmazione e Code Golf" - questo è un "Puzzle di programmazione", non "Code Golf": la sfida è trovare una soluzione funzionante prima di tutti gli altri utenti, non trovare una soluzione più breve di tutte le altre soluzioni.
Pertanto vince il primo post che descrive una soluzione funzionante !
In bocca al lupo!
A proposito: ho una soluzione che funziona con Visual C # Express 2010.