Deuxième boîte à outils de MacGyver


16

Dans cette question, chaque réponse obtiendra une "boîte à outils" qui peut être utilisée pour construire un programme / une fonction. La boîte à outils comprendra deux éléments:

  • une liste de langages de programmation

  • une liste de caractères valides

Vous devez écrire un programme / une fonction valide dans l'une des langues fournies en utilisant uniquement les caractères de la boîte à outils. Votre programme / fonction doit afficher le nombre de réponses déjà présentes sur cette question.

Une fois que vous avez écrit et publié une réponse, la langue et les caractères que vous avez utilisés seront supprimés de la boîte à outils et 1 nouvelle langue et 8 nouveaux caractères seront ajoutés au hasard pour être utilisés comme boîte à outils pour la réponse suivante.

Règles

  • Chaque réponse:

    • Afficher le nombre de réponses valides devant lui
    • Contient un sous-ensemble des caractères fournis dans la boîte à outils pour cette réponse. (les répétitions sont autorisées)
    • Soyez dans l'une des langues de la boîte à outils fournie
  • La prochaine boîte à outils sera déterminée par ce programme python. Pour générer la boîte à outils suivante, insérez les langues et caractères restants avec l' ID de publication de la dernière réponse.

  • La liste des langues ici est toutes les langues disponibles sur l'essayer en ligne au moment de cet article. Les caractères ont les codes de caractères 0-127.

  • Vous pouvez écrire un programme complet ou une fonction comme réponse. Les REPL étant des langues différentes, elles ne seront pas autorisées. (utilisez la version TIO de chaque langue)

  • Si une langue utilise un codage spécial, les caractères doivent être interprétés comme des octets (décodés en ASCII et remplis d'un zéro).

  • La boîte à outils de départ sera randomisée à partir de cette question post id ( 128464 ), il y aura 7 langues pour commencer et j'ajouterai les caractères echoprint0et ascii 0-31 gratuitement pour démarrer les gens.

  • Vous ne pouvez pas répondre deux fois de suite

Notation

Chaque fois qu'une personne répond, elle obtiendra un certain nombre de points pour sa réponse. Le but est d'obtenir autant de points que possible. Pour une réponse dans la langue X, vous obtiendrez autant de tours que la langue X n'est pas utilisée dans la boîte à outils. Par exemple, la première personne à répondre recevra 1 point car la langue vient d'être ajoutée à la boîte à outils. Il n'y aura pas nécessairement de fin et je n'accepterai aucune réponse.

Sportif

Il s'agit d'une compétition, mais je vous encourage à mettre le plaisir au-dessus de la victoire tout en restant compétitif (si je pouvais faire des critères de gain "le plaisir s'est" je le ferais). Certaines choses qui ne sont pas amusantes:

  • En utilisant intentionnellement des caractères, vous n'avez pas besoin de retarder les réponses futures.
  • Tenter de jouer au système post-id pour rendre les futures boîtes à outils plus difficiles à utiliser.
  • Tenter de jouer au système de post-id pour faciliter l'utilisation des futures boîtes à outils.

Je ne peux empêcher personne de faire ces choses, mais je voterai contre toutes les réponses que je soupçonne de faire cela.

Sur une note plus positive, voici quelques éléments qui sont bons sur le plan sportif et encouragés:

  • Coordination avec d'autres utilisateurs dans le chat.
  • Enregistrement de caractères pour des langues plus dures ou plus restrictives

Il s'agit d'une deuxième itération d'un défi trouvé ici . Il améliore un certain nombre de problèmes avec le premier. Voici une méta discutant de ces questions.


Quelle est la première boîte à outils?
CalculatorFeline

@CalculatorFeline Son lié dans la question, il est semé avec l'id de la question.
Post Rock Garf Hunter

1
@tuskiomi la question plus ancienne et la question plus récente sont créées par la même personne, et il convient de fermer les questions plus anciennes en tant que doublons de questions plus récentes et meilleures.
Stephen

2
@tuskiomi La plus grande différence est le nombre de caractères ajoutés à chaque fois au bac à sable. Auparavant, il était de 12, ce qui a rapidement échappé à tout contrôle, ce qui signifie que pratiquement toutes les réponses disposaient de tous les ASCII. Je l'ai réduit à 8, ce qui correspond au nombre moyen de caractères utilisés par toutes les réponses de la dernière version. Je conviens que la différence de graine et de score sont des changements mineurs, mais la diminution des caractères est la raison pour laquelle j'ai fait une deuxième itération.
Post Rock Garf Hunter

1
Je suis presque sûr que c'est impossible. Les programmes Str nécessitent un ;(pas dans la boîte à outils) pour faire quoi que ce soit lorsqu'ils ne reçoivent aucune entrée. Les programmes Condit et Tcl nécessitent un espace (pas dans la toobox) dans le cadre de la syntaxe. Besoins du régime (. Brain-Flak ne peut pas fonctionner pour des raisons évidentes (seul le personnage de la boîte à outils le comprend )). Java 8 a besoin d'un {(pas dans la boîte à outils) pour déclarer une fonction. Cela ne laisse que des maxima, qui je ne pense pas peuvent imprimer des choses sans "imprimer" ou déclarer une fonction sans utiliser de parenthèses.
pppery

Réponses:


8

C'est impossible

En parcourant toutes les langues de la langbox:

  1. Le langage de programmation tcl est composé de mots séparés par des espaces. Le caractère espace n'est pas dans la boîte à outils, donc aucun programme valide ne peut être écrit.
  2. Les programmes Str par défaut transforment l'entrée. Pour qu'ils puissent faire quoi que ce soit lorsqu'ils ne reçoivent aucune entrée, le ;caractère est requis, qui n'est pas dans la boîte à outils.
  3. Le seul moyen pour un programme en schéma-chez de faire quoi que ce soit est d'appeler une fonction à l'aide de parenthèses. Tous les programmes Schéma-chez ont donc besoin du (caractère, qui n'est pas dans la boîte à outils
  4. Les programmes Brain-Flak nécessitent des supports équilibrés. Le seul caractère de parenthèse dans la boîte à outils est ), donc aucun programme contenant des parenthèses équilibrées n'est possible.
  5. Semblable au schéma, les programmes maxima nécessitent des parenthèses pour tout faire.
  6. Les programmes Java nécessitent la séquence de caractères {ou ->pour déclarer une fonction (et tous les programmes complets nécessitent au moins une fonction), dont aucun ne se trouve dans la boîte à outils.
  7. Les programmes Condit nécessitent le mot when, qui contient le caractère "e", qui n'est pas dans la boîte à outils.

Les preuves d'impossibilité sont autorisées comme réponses



En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.