Code-Bowling
Sie wurden von Brunswick Bowling beauftragt, ein einfaches Programm zu erstellen, um den Text Code Bowling
auf ihren Monitoren auszugeben . Dieses Unternehmen lohnt sich ein hübsches Sümmchen und Sie denken , Sie können sie für ganz die beschwindeln Bit Geld .
Aus der Stellenbeschreibung geht eindeutig hervor, dass sie auf der Grundlage von Bewertungen zahlen, und Sie sind ziemlich sicher, dass Sie ihr Bewertungssystem zu Ihrem Vorteil manipulieren und von diesen Mitarbeitern den größtmöglichen Gehaltsscheck erhalten können. Dazu müssen Sie so viel Code packen wie möglich in Ihr Programm / Ihre Funktion , auch wenn das Bewertungssystem so konzipiert ist, dass Sie dies nicht tun können.
Holen Sie Ihre Sparschweine raus, lassen Sie uns Code!
Herausforderung
Die Herausforderung besteht darin, den Text einfach so auszugeben Code Bowling
, wie er hier geschrieben ist, mit der höchstmöglichen Punktzahl. (Siehe Abschnitt: Punktesystem unten)
Führende und nachfolgende neue Zeilen (Zeilenumbrüche) sind zulässig.
Ihr Code kann ein gesamtes Programm oder nur eine ausführbare Funktion sein.
Regeln
Obligatorisch: Bei dieser Herausforderung wird Code-Bowling verwendet: Common Rules, Revision 1.0.0 ; Siehe Meta für Details.
Zeichen: Byte-Verhältnis
Beim Code-Bowling wird die Anzahl der Zeichen der Anzahl der Bytes vorgezogen. Der offensichtliche Grund dafür ist, dass Mehrbyte-Unicode-Zeichen (z. B. 🁴) anstelle von Einzelbyte-Unicode-Zeichen verwendet werden können, um die Byteanzahl zu erhöhen, und um zu klären, wer die meisten Variablen mit Hochbyte-Unicode-Zeichen umbenennt als wer am strategischsten sinnvollen komplexen Code erstellt.Variablen- / Funktions- / Objektnamen
Alle Variablennamen (oder Objektzeiger, Funktionsnamen usw.) sollten 1 Zeichen lang sein. Die einzige akzeptable Zeit, um zweistellige Variablennamen zu verwenden, ist, nachdem alle möglichen zweistelligen Variablen verwendet wurden. Die einzige akzeptable Zeit für die Verwendung von 3-stelligen Variablennamen ist, nachdem alle möglichen 2-stelligen Variablen verwendet wurden. Usw.Nicht verwendeter Code Der
gesamte Code muss verwendet werden. Dies bedeutet, dass das Programm die Aufgabe nicht immer ordnungsgemäß ausführen kann, wenn einzelne Zeichen (oder unterschiedliche Zeichensätze) entfernt werden. Natürlich sollte eine Teilmenge des Programms die Aufgabe nicht alleine ohne den Rest des Programms erledigen können.Kommentare
Kommentare sind für die Anzahl der Zeichen nicht zulässig, es sei denn, sie werden von Ihrem Programm / Ihrer Funktion auf irgendeine Weise verwendet.
Punktesystem:
Pangram Challenge:
Ein Pangram ist ein Satz, der jeden Buchstaben mindestens einmal verwendet. (Der schnelle braune Fuchs springt über den faulen Hund).
Diese Herausforderung Typ wurde entwickelt ein Scoring - Systeme , bei denen eine perfekte pangram die theoretische maximale Punktzahl erreichen würde (auch wenn Sie nicht benötigt jedes Zeichen mindestens einmal zu verwenden.) Zusätzlich mit einem beliebigen Zeichen mehr als einmal wird beginnt eine Vertragsstrafe zahlen. Diese Herausforderung erstreckt sich auch auf mehr als nur die alphabetischen Zeichen.
Bewertungsmetrik:
- Jeder benutzte Charakter erhöht deine Punktzahl um 1.
- Die wiederholte Verwendung eines beliebigen alphanumerischen Zeichens (az, AZ, 0-9) führt zu einem Abzug von 3 Punkten pro Wiederholung (die erste Verwendung führt nicht zu einem Abzug).
- Die wiederholte Verwendung der grundlegenden Interpunktion
([!?.-,":';])
- einschließlich der Klammern - führt zu einem Abzug von 2 Punkten pro Wiederholung.- Die wiederholte Verwendung anderer ASCII-Zeichen
{`~@#$%^&*_+=|\/><}
- einschließlich der geschweiften Klammern - führt zu einem Abzug von 4 Punkten pro Wiederholung.- Die Verwendung von Leerzeichen, Tabulatoren und Zeilenumbrüchen führt zu einem Abzug von 1 Punkt pro Verwendung. Das heißt, sie zählen nicht zur Charaktersumme.
- Charaktere, die oben nicht erwähnt wurden (exotische Charaktere), werden mit 1 Punkt abgezogen. Das heißt, sie zählen nicht zur Charaktersumme.
Bewertungswerkzeug:
Ein automatisiertes Bewertungs-Widget wurde erstellt und kann hier gefunden werden .
Dies ist eine Code-Bowling- Variante. Das Programm mit der höchsten Punktzahl gewinnt! (Da es eine maximale Punktzahl von gibt 94
, wird derjenige als die akzeptierte Antwort markiert, der sie zuerst erreicht (wenn sie erreicht werden kann), obwohl es anderen freisteht, zum Spaß weiter zu antworten.)