La seconda cassetta degli attrezzi di MacGyver


16

In questa domanda ogni risposta otterrà un "toolbox" che può essere usato per costruire un programma / funzione. La cassetta degli attrezzi sarà composta da due cose:

  • un elenco di linguaggi di programmazione

  • un elenco di caratteri validi

È necessario scrivere un programma / una funzione validi in una delle lingue fornite utilizzando solo i caratteri nella casella degli strumenti. Il tuo programma / funzione dovrebbe generare il numero di risposte già presenti su questa domanda.

Dopo aver scritto e pubblicato una risposta, la lingua e i caratteri utilizzati verranno rimossi dalla casella degli strumenti e 1 nuova lingua e 8 nuovi caratteri verranno aggiunti casualmente per essere utilizzati come casella degli strumenti per la risposta successiva.

Regole

  • Ogni risposta sarà:

    • Emette il numero di risposte valide che precedono
    • Contiene un sottoinsieme dei caratteri forniti nella casella degli strumenti per quella risposta. (le ripetizioni sono consentite)
    • Essere in una delle lingue dalla casella degli strumenti fornita
  • Il prossimo toolbox sarà determinato da questo programma Python. Per generare la casella degli strumenti successiva, inserisci le lingue e i caratteri rimanenti insieme al post ID dell'ultima risposta.

  • L'elenco delle lingue qui è tutte le lingue disponibili per provarlo online al momento di questo post. I caratteri hanno codici char 0-127.

  • Puoi scrivere un programma completo o una funzione come risposta. Poiché i REPL sono lingue diverse, non saranno ammessi. (usa la versione TIO di ogni lingua)

  • Se una lingua utilizza una codifica speciale, i caratteri devono essere interpretati come byte (decodificati da ASCII e riempiti con uno zero).

  • La cassetta degli attrezzi di partenza sarà randomizzata da questo post id domande ( 128464 ), ci saranno 7 lingue per iniziare e aggiungerò i caratteri echoprint0e ascii 0-31 gratuitamente per iniziare le persone.

  • Non puoi rispondere due volte di seguito

punteggio

Ogni volta che una persona risponde otterrà un numero di punti per la sua risposta. L'obiettivo è ottenere il maggior numero di punti possibile. Per una risposta in lingua X, riceverai tutte le svolte che la lingua X non è stata utilizzata nella casella degli strumenti. Ad esempio, la prima persona a cui risponderà otterrà 1 punto perché la lingua è stata appena aggiunta alla casella degli strumenti. Non ci sarà necessariamente una fine e non accetterò alcuna risposta.

Sportivo

Questa è una competizione, ma ti incoraggio a divertirti al di sopra delle vittorie rimanendo comunque competitivo (se potessi rendere i criteri di vincita "divertiti" lo farei). Alcune cose che non sono divertenti:

  • Usando intenzionalmente i personaggi non è necessario arrestare le risposte future.
  • Tentativo di giocare al sistema Post ID per rendere più difficile l'utilizzo di cassette degli attrezzi future.
  • Tentativo di giocare al sistema Post ID per rendere più semplici da usare le cassette degli attrezzi future.

Non posso impedire a nessuno di fare queste cose, ma declasserò tutte le risposte che sospetto stiano facendo.

Su una nota più positiva, ecco alcune cose che sono buone sportive e incoraggiate:

  • Coordinamento con altri utenti in chat.
  • Salvataggio di caratteri per lingue più difficili o più restrittive

Questa è una seconda ripetizione di una sfida trovata qui . Migliora una serie di problemi con il primo. Ecco una meta che discute queste domande.


Qual è la prima cassetta degli attrezzi?
Calcolatrice

@CalculatorFeline È collegato nella domanda, viene seminato con l'id domanda.
Post Rock Garf Hunter,

1
@tuskiomi la domanda più vecchia e la domanda più recente vengono create dalla stessa persona ed è opportuno chiudere le domande più vecchie come duplicati di domande più recenti e migliori.
Stephen,

2
@tuskiomi La differenza più grande è il numero di caratteri aggiunti alla sandbox ogni volta. In precedenza erano 12, che rapidamente sfuggirono al controllo, il che significa che praticamente ogni risposta aveva tutte le ASCII disponibili. L'ho abbassato a 8, che era il numero medio di caratteri utilizzati da tutte le risposte nell'ultima versione. Concordo sul fatto che la differenza nel seme e nel punteggio sono cambiamenti minori, ma la diminuzione dei personaggi è l'intero motivo per cui ho fatto una seconda iterazione.
Post Rock Garf Hunter,

1
Sono abbastanza sicuro che sia impossibile. I programmi di Str richiedono un ;(non nella casella degli strumenti) per fare qualcosa quando non viene dato alcun input. I programmi Condit e Tcl richiedono uno spazio (non in toobox) come parte della sintassi. Il regime ha bisogno (. Brain-Flak non può funzionare per ovvi motivi (solo il personaggio nella cassetta degli attrezzi che capisce è )). Java 8 ha bisogno di un {(non nella casella degli strumenti) per dichiarare una funzione. Ciò lascia solo i massimi, che non credo possano stampare cose senza "stampare" o dichiarare una funzione senza l'uso di parentesi.
pppery

Risposte:


8

Questo è impossibile

Scorrendo tutte le lingue nella langbox:

  1. Il linguaggio di programmazione tcl è composto da parole separate da spazi. Il carattere spazio non si trova nella casella degli strumenti, quindi non è possibile scrivere programmi validi.
  2. I programmi Str di default trasformano l'input. Affinché possano fare qualsiasi cosa senza input, ;è necessario il personaggio, che non si trova nella casella degli strumenti.
  3. L'unico modo per un programma in schema-chez di fare qualsiasi cosa è chiamare una funzione usando le parentesi. Tutti i programmi schema-chez necessitano quindi del (personaggio, che non si trova nella casella degli strumenti
  4. I programmi Brain-Flak richiedono parentesi bilanciate. L'unico carattere parentesi nella casella degli strumenti è ), quindi non sono possibili programmi contenenti parentesi bilanciate.
  5. Simile allo schema, i programmi maxima richiedono che le parentesi facciano qualsiasi cosa.
  6. I programmi Java richiedono le sequenze di caratteri {o ->per dichiarare una funzione (e tutti i programmi completi richiedono almeno una funzione), nessuno dei quali si trova nella casella degli strumenti.
  7. I programmi Condit richiedono la parola when, che contiene il carattere "e", che non si trova nella casella degli strumenti.

Le prove di impossibilità sono consentite come risposte



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.