Code-Bowling
Brunswick Bowling vous a embauché pour créer un programme simple permettant d'afficher le texte Code Bowling
sur ses moniteurs. Cette entreprise vaut un joli penny et vous sentez que vous pouvez les arnaquer pour un peu d'argent.
La description de poste indique clairement qu'ils paient sur une base de pointage et vous êtes persuadé que vous pouvez manipuler leur système de pointage à votre avantage et obtenir le plus gros chèque de paie possible de ces types. Pour ce faire, vous devrez insérer le plus de code possible dans votre programme / fonction, même si son système de notation est conçu pour vous empêcher de le faire.
Sortez vos tirelires, codons!
Défi
Le défi consiste simplement à sortir le texte Code Bowling
, exactement comme il est écrit ici, avec le score le plus élevé possible. (Voir la section: Système de notation ci-dessous)
Les nouvelles lignes (début et fin de ligne) sont acceptables.
Votre code peut être un programme entier ou juste une fonction exécutable.
Règles
Obligatoire: Ce défi utilise Code-Bowling: Common Rules, Revision 1.0.0 ; Voir Meta pour plus de détails.
Caractère: Ratio d'octets
Dans Code-Bowling, un nombre de caractères est préférable à un nombre d'octets. La raison en est évidente: les caractères unicode multi-octets (par exemple) peuvent être utilisés à la place des caractères unicode à un octet pour donner un nombre d'octets plus élevé et permettre au bowling de savoir qui renomme le plus de variables avec des caractères unicode à octets élevés que qui crée le plus stratégiquement un code complexe significatif.Noms de variable / fonction / objet
Tous les noms de variable (ou pointeurs d'objet, noms de fonction, etc.) doivent comporter 1 caractère. Le seul moment acceptable pour utiliser des noms de variables à 2 caractères est après utilisation de toutes les variables possibles à 1 caractère. Le seul moment acceptable pour utiliser des noms de variables à 3 caractères est une fois que toutes les variables à 2 caractères possibles ont été utilisées. Etc.Code non utilisé
Tout le code doit être utilisé. Cela signifie que le programme ne doit pas toujours terminer correctement la tâche si un caractère individuel (ou un ou plusieurs jeux de caractères) est / sont supprimés. Bien entendu, un sous-ensemble du programme ne devrait pas être en mesure de mener à bien la tâche sans le reste du programme.Commentaires Les
commentaires ne sont pas autorisés pour le décompte des caractères, à moins que ceux-ci ne soient utilisés par votre programme / fonction.
Système de notation:
Défi Pangram:
Un pangramme est une phrase qui utilise chaque lettre au moins une fois. (Le renard brun rapide saute par-dessus le chien paresseux).
Ce type de défi a un système de score conçu dans lequel un pangram parfait atteindrait le score maximum théorique (bien que vous ne soyez pas obligé d'utiliser chaque personnage au moins une fois.) De plus, l'utilisation de tout caractère plus d'une fois entraînera une pénalité. Ce défi ne concerne pas uniquement les caractères alphabétiques.
Mesure métrique:
- Chaque personnage utilisé augmente votre score de 1.
- L'utilisation répétée de tout caractère alphanumérique (az, AZ, 0-9) entraînera une déduction de 3 points par répétition (la première utilisation ne donne pas lieu à une déduction).
- L'utilisation répétée de la ponctuation de base
([!?.-,":';])
- y compris les crochets - donnera lieu à une déduction de 2 points par répétition.- L'utilisation répétée d'autres caractères ASCII
{`~@#$%^&*_+=|\/><}
- y compris les accolades - entraînera une déduction de 4 points par répétition.- L'utilisation d'espaces, de tabulations et de nouvelles lignes entraîne une déduction de 1 point par utilisation. C'est-à-dire qu'ils ne comptent pas dans le total des personnages.
- Les caractères non mentionnés ci-dessus (caractères exotiques) entraînent une déduction de 1 point par utilisation. C'est-à-dire qu'ils ne comptent pas dans le total des personnages.
Outil de notation:
Un widget de scoring automatisé a été créé et peut être trouvé ici .
Ceci est une variante code-bowling . Le programme avec le score le plus élevé gagne! (Puisqu'il y a un score maximum de 94
, celui qui l'atteint le premier (s'il peut être atteint) sera marqué comme la réponse acceptée, même si les autres sont libres de continuer à répondre pour le plaisir)