Ihr Ziel ist es, ein Alphabet-Lied als Text in der folgenden Form (in der Reihenfolge) zu erstellen:
A is for <word starting with A>
B is for <word starting with B>
C is for <word starting with C>
...
Z is for <word starting with Z>
Beispielausgabe:
A is for Apple
B is for Banana
C is for Carrot
D is for Door
E is for Elephant
F is for Frog
G is for Goat
H is for Hat
I is for Icicle
J is for Jelly
K is for Kangaroo
L is for Lovely
M is for Mom
N is for Never
O is for Open
P is for Paste
Q is for Queen
R is for Rice
S is for Star
T is for Test
U is for Underneath
V is for Very
W is for Water
X is for X-ray
Y is for Yellow
Z is for Zipper
Regeln:
Jeder "Buchstabe" des Songs hat eine eigene Zeile, es gibt also 26 Zeilen und einen möglichen Zeilenvorschub am Ende.
Die Ausgabe unterscheidet zwischen Groß- und Kleinschreibung:
- Der Buchstabe am Anfang jeder Zeile muss in Großbuchstaben geschrieben werden.
is for
ist klein geschrieben.- Das gewählte Wort muss nicht groß geschrieben werden, kann aber sein. Alle Zeilen sollten konsistent sein.
Das gewählte Wort für jede Zeile liegt bei Ihnen, muss jedoch ein gültiges englisches Wort mit mindestens 3 Buchstaben sein und darf keine Konjunktion (wie
and
oderbut
), Interjektion / Ausrufezeichen (wiehey
oderyay
), Abkürzung (wieXLS
) oder a sein Name (wieJon
).Obwohl ich bezweifle, dass es jemand kürzer finden würde, würde ich es für akzeptabel halten, eine Phrase anstelle eines einzelnen Wortes zu verwenden. Also, wenn aus irgendeinem Grund
S is for Something smells fishy...
kürzer ist, probieren Sie es aus.Fügen Sie die Ausgabe Ihres Programms in Ihre Antwort oder zumindest die Liste der von Ihnen verwendeten Wörter ein (wenn es einen Link gibt, über den Sie Ihren Code online ausführen können, müssen wir nicht die gesamte Ausgabe anzeigen).
Kürzester Code gewinnt
Diese Herausforderung wurde von diesem Video inspiriert .
quelle
Antworten:
SOGL 0.8.1 ,
6032 BytesErläuterung:
Dies ist so ziemlich die Antwort von Jonathan Allan , wurde aber auf diese Sprache portiert.
Alte Version: (SOGL 0.8.2)
Ausgabe:
Dies ist nicht die kürzeste Zeit, die diese Sprache leisten kann, sollte aber die beste sein, wenn die Wörter hart codiert sind.
quelle
Bash (+ Coreutils),
81,87,8278 BytesVerwendet die Manpage für X als Quelle für Wörter.
Golf gespielt
EDITS
|&
, um 5 Bytes zu sparen;Prüfung
quelle
|&
, so dass es grepped werden kann.Python 2 ,
8877 Bytes-11 Bytes dank xnor (Vermeiden Sie den Reißverschluss, indem Sie den String durchlaufen und
c
von 65 aufwärts zählen )Probieren Sie es online!
(Ein Port meiner Jelly-Antwort, als es 56 Bytes waren.)
quelle
x
verkürzt werden .Unt
? Kann das nirgendwo findenUnt
es ein Wort ist, aberUt
so können Sie dasn
in Ihrem Literal durch ersetzen\0
, um dies gültig zu machen und nur ein weiteres Byte hinzuzufügen. Nach den Regeln von Nevermind muss es 3 Buchstaben lang sein ... hmmmBash,
7869 BytesErdferkel, Babuschkas und Kamikazes!
Golf gespielt
EDITS
Prüfung
Verwendet / usr / share / dict / words :
quelle
PowerShell ,
15014111775 ByteProbieren Sie es online!
Schleifen von
65
bis90
(dh ASCIIA
bisZ
). Bei jeder Iteration wandeln wir die Ganzzahl in die entsprechendechar
(dh ASCII65
fürA
) um, speichern sie$i
für die spätere Verwendung, verknüpfen sie diese mit einer Zeichenfolgeis for $i
und markieren dann die Mitte des entsprechenden Wortes. Dies geschieht durch Indizieren in eine lange Zeichenfolge (aus der Antwort von Jonathan Allan entlehnt ). Beendet mit dem Buchstabent
, um das Wort mit drei Buchstaben zu bilden.Die resultierenden Zeichenfolgen
Write-Output
verbleiben alle in der Pipeline und werden am Ende implizit mit Zeilenumbrüchen gedruckt.Dank Rod Borrowed Wordlist aus Jonathan Allans Antwort wurde eine Menge Bytes gespeichert
quelle
[char]$
BeispielJelly , 39 Bytes
TryItOnline!
Basierend auf die 56 - Byte - Version (zwei unten), aber geändert Worte alle mittleren Buchstaben entfernen
"u"
s so kann es Index in das Wörterbuch Wort"anisole"
*, das die Bequemlichkeit hat den Buchstaben, die wir alle Indizes benötigen weniger als sechs:1:a, 2:n 3:i, 4:s, 5:o (6:l), 0:e
(beachten Sie die"e"
auf der rechten Seite ist bei Index Null [auch 7 und -7 und jede andere Zahl, die zu 0 mod 7 kongruent ist]). Es ist auch früh im Wörterbuch, hat also nur eine Zwei anstelle des weitaus gebräuchlicheren Drei-Byte-Nachschlageindex ("anisogamete"
würde auch für 2 funktionieren).* Der altbekannte Name für den aromatischen Ether Methoxybenzol, der häufig in Parfums verwendet wird.
Wie?
Zurück, 46
Alle Wörter haben den zweiten Buchstaben "s" oder "a" und den letzten Buchstaben "p" oder "t" unter Verwendung einer Basis-Vier-Suche in einem kartesischen Produkt aus "sa" und "pt". Außer dem "U" -Wort, das der Code in "Use" ändert (mit dem relativ sperrigen
F”e272¦
Ende) - wenn ich eine Wortliste wie diese finden könnte, die keine solche Ausnahme hat, würden wir uns 39 Bytes ansehen .Wortliste:
Probier diese
Vorherige 56 Bytes
Wortliste:
Es ist formatiert, probieren Sie es aus
Vorher 83 Bytes
... lass uns spielen "Finde heraus, welcher Buchstabe kein Tier hat!" es
gibt einen und nur einen - achte auf den roten Hering(eine Lüge, der rote Hering war Xenon, was ein Element ist, offensichtlich kein Tier) , zwei fünf Buchstaben sind hier keine Tiere (Xenon ist eins) :(Natürlich ist dies korrekt formatiert, probieren Sie es aus - ich dachte nur, ich würde Platz sparen)
quelle
Xenon
ist kein Tier. Ich war mir sicher, dass Sie einen Witz gemacht habenH is for Herring
, aber ich denke nicht.Uut
?Retina ,
8987 Bytes2 Bytes gespart dank Martin Ender
Probieren Sie es online!
Ich habe ein Wort für jeden Buchstaben ausgewählt, der auf "" endet
t
(einige sind ziemlich dunkel).Erläuterung
Ersetzen Sie die nicht vorhandene (leere) Eingabe durch den obigen Text.
Ersetzen Sie jeden Großbuchstaben durch
(newline)(itself) is for (itself)
. Dies führt dazu, dass der obige Text wie in separate Zeilen aufgeteilt wird... und so weiter
Da der Zeilenumbruch jedoch vor jedem Großbuchstaben platziert wurde, muss ein führender Zeilenumbruch entfernt werden. Es wird in dieser Phase entfernt.
Setzen Sie ein
t
an das Ende jeder Zeile, da jedes im Lied verwendete Wort auf endett
.quelle
$&
oder$0
anstelle von$1
. Eigentlich könnte das auch Bytes über meine Split-Phase sparen.$&
genau macht das? Ich habe es nicht im GitHub-Wiki gesehen.$0
(und es ist nur ein Teil der .NET-Variante sowie der meisten anderen Varianten).Netzhaut ,
9288 Bytes4 Bytes gespart, indem eine Idee aus der Antwort von Business Cat ausgeliehen wurde .
Die Anzahl der Bytes setzt die Kodierung nach ISO 8859-1 voraus.
Probieren Sie es online!
Basierend auf der Wortliste von AdmBorkBork , aber ich habe noch ein paar Wörter in solche geändert, die dazu führen, dass
ad
mehr Bytes im gemeinsamen Suffix gespart werden.Erläuterung
Verwandeln Sie die leere (nicht vorhandene) Eingabe in diese Zeichenfolge. Es enthält alle Buchstaben sowie den Rest der Wörter, die nicht auf enden
ad
.Fügen Sie vor jedem Großbuchstaben einen Zeilenumbruch ein und verwandeln Sie ihn in
X is for X
.Ordnen Sie die Buchstaben zu, die jetzt für sich sind, und fügen Sie sie hinzu
ad
, um die verkürzten Wörter zu vervollständigen.Verwerfen Sie die leere Zeile, die durch Einfügen eines Zeilenvorschubs erstellt wurde
A
.quelle
PHP,
122124127120115101 BytesFolgt der "Standard"
<letter><filler>t
-Struktur.Ich habe versucht, Wörter zu finden, die vorher von niemandem benutzt wurden.
Wenn Sie ein Wort sehen, das ich ersetzen soll, sagen Sie es mir.
Die Newline wird dargestellt,
\n
aber als 1 Byte gezählt.Ausgabe:
Merkwürdige Wörter:
quelle
vprintf
undzend_version
sind mit Sicherheit keine englischen Wörter. Sehr wenige dieser Entitäten sind tatsächlich Wörter.zit
zumindest kein komisches Wort nennen , ich denke, jeder sollte bereits wissen, was es bedeutet.Pyke,
555148 BytesProbieren Sie es hier aus!
Link ist für 3 Länge und nicht geeignet, da Wörter Konjunktiven enthalten.
Ausgänge:
Sie können dies außerhalb von Pyke mit demselben Algorithmus testen. Benötigt dictionary.json .
quelle
Timeout running code. BAD EVAL
Stellen Sie sicher, dass Sie Ihren Link "Online testen" aktualisieren.Z is for zoofilia
Ich würde ernsthaft darüber nachdenken, bevor ich meine Kinder dies singen lasse.Japt ,
5250 BytesZusammenarbeit mit @ETHproductions
Enthält viele nicht druckbare Elemente. Online testen!
Die Wortliste ist:
Japt verwendet die Shoco-String-Komprimierungsbibliothek , mit der häufige Kleinbuchstaben in Bytes umgewandelt werden. Hier ist eine vollständige Liste aller aus zwei Buchstaben bestehenden Läufe, die in einem Byte zusammengefasst sind:
Daher besteht die Idee darin, für jeden Buchstaben des Alphabets ein Wort mit einem dieser Paare zu bilden.
Eine interessante Sache ist, dass Japt zwar implizit einen mit Backticks umwickelten String dekomprimieren kann, dies hier jedoch um ein Byte länger ist, da Sie zwei Zeichen in dem dekomprimierten String anstelle eines Zeichens benötigen .
quelle
05AB1E ,
454239383736 BytesProbieren Sie es online!
Erläuterung
Au
drückt das Großbuchstaben.'Æå
drückt das Wortscenario
.•à¡P°€kš¦zᮕ
drückt die Basis-10-Nummer36774474076746444766322426
.Sè
verwendet diese Ziffern, um sie zu indizierenscenario
.)ø
Zippt diese Zeichenfolgen zusammen in die Liste[An, Bi, Co, ..., Zi]
Verwendete Wörter:
['Ant', 'Bit', 'Cot', 'Dot', 'Eat', 'Fat', 'Got', 'Hat', 'Ist', 'Jot', 'Kit', 'Lot', 'Mat', 'Nit', 'Oat', 'Pat', 'Qat', 'Rot', 'Sit', 'Tit', 'Unt', 'Vet', 'Wet', 'Xat', 'Yet', 'Zit']
33-Byte-Version mit einigen Worten, bei denen ich mir nicht sicher bin
Wörter:
['Ant', 'Bat', 'Cat', 'Dat', 'Eat', 'Fat', 'Gat', 'Hat', 'Ist', 'Jat', 'Kat', 'Lat', 'Mat', 'Nat', 'Oat', 'Pat', 'Qat', 'Rat', 'Sat', 'Tat', 'Ust', 'Vat', 'Wat', 'Xat', 'Yat', 'Zat']
quelle
Ruby,
93 84 69 63 5862 BytesAusgabe:
Alle 3-Buchstaben-Wörter, die mit 't' enden, die meisten mit 'at'.
Mit kontroversen Wörtern (iat, dat, amp. Ump) - 55 Bytes:
Ich versuche immer noch, ein Muster zu finden, aber ich denke, es ist möglich, nur zwei verschiedene Endungen zu verwenden und alles zu vereinfachen.
Vielen Dank an @Value Ink und @Business cat für Ihre Hilfe.
quelle
/#{l}../
kit
./// 163 Bytes
Probieren Sie es online aus
Hm, heute etwas gelernt ...
quelle
05AB1E ,
7268 BytesCode:
Verwendet die CP-1252- Codierung. Probieren Sie es online!
Erläuterung
Der folgende Code:
schiebt dieses Array:
Und wird mit folgendem Code verarbeitet:
quelle
”–³”=Apple
undint(–³,214)=23891
trotzdem sehe ich hier keine Korrelation.Clojure,
159232 BytesNun, jetzt ist es sicherlich keine konkurrierende Lösung, da es viel einfacher wäre, die verwendeten Wörter fest zu codieren. Stellen Sie es nur heraus, um die richtige Antwort zu haben (und nicht die Wörterliste anderer zu verwenden).
Grundsätzlich werden immer noch alle im
clojure.core
Namespace definierten Funktionen abgerufen, danach aber ausgewertetdoc <function name>
und in Strings eingefügt. Danach verkettet es sich zu einer riesigen Zeichenkette (mit dem Wortxyst
) und findet von dort die passenden Wörter. Sollte in Clojure REPL ausgeführt werden.Ausgabe:
Alte Lösung:
quelle
or
nichtorb
für 1 Byte.JavaScript (ES6), 82 Byte
Eine anonyme Funktion, die eine Zeichenfolge zurückgibt. Enthält nicht druckbare Elemente. Hier ist eine Version, die dies nicht tut:
Hierbei wird die @ JonathanAllen-Technik verwendet, wobei nur Wörter mit drei Buchstaben verwendet werden, die auf enden
t
. Die Zeichenfolge wird auf dekomprimiertAnBiCoDoEaFaGOHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi
.Ich habe versucht, zwei Buchstabenpaare wie folgt zu verketten:
Ich habe es jetzt bis zum Ende geschafft, bin
X
aber festgefahrenY
. Soweit ich das beurteilen kann, ist das einzige erreichbareX
Wort mit drei BuchstabenXis
, und es gibt kein Wort mit drei Buchstaben, das mit beginntYs
.Für die Aufzeichnung war die volle Zeichenfolge
ceeeweeereueaebiueeiziais
...quelle
uzi
undtiz
...sei
,ski
odersri
, was lässt Sie mitree
,roe
,rue
,rye
, was lässt Sie mit ... der nur drei Buchstabenq
-words finde ich sindqat
,qis
undqua
. Gibt es eine Wiktionary-Seite mit mehr Wörtern aus drei Buchstaben?p
u
piu
, das ist also überhaupt kein Problem: P Danke!piu
scheint ziemlich grenzwertig zu sein - wiktionary hat es nicht als Englisch und dictionary.com hat es alspiù
(keine Ahnung, wie wir Akzente für diese Herausforderung in Betracht ziehen). Aber ja,ys_
wäre ein Problem.Mathematica, 97 Bytes
Sucht in Mathematica
WordList
nach dem dritten Wort, das mit jedem Buchstaben beginnt. dies vermeidet einbuchstabige Wörter und Interjektionen. Hat einen Trailng Newline.quelle
Groovy,
7673 Bytes(bearbeitet von 76 bis 73 Bytes, danke Katze)
Inspiriert von der Rubinlösung:
Wir verwenden
any
anstelle von each, da es kürzer ist und alle println-Anweisungen false zurückgeben. Für die Sonderfälle in der Zeichenfolge verwenden wir String.find, das in groovy die Übereinstimmung oder Null zurückgibt. Bei null verwenden wir den elvis-Operator?:
, umat
stattdessen ein Wort zurückzugeben, das auf endet .Druckt aus:
Groovy, Rekursion, 74 Bytes
druckt den Text aus der ersten Antwort aus und löst dann eine PatternFormatException aus. Wir rufen den Abschluss rekursiv auf, beginnend mit 'A' und inkrementierend,
++char
bis das Zeichen nachZ
dem Fehler wirft.Groovy, durch Betrug, 77 Bytes
Mit der Gefahr gelyncht zu werden:
dh lesen Sie die Daten auf dieser Seite und drucken Sie zu Beginn die Definition einer gültigen Antwort aus. Zu meiner Verteidigung ... druckt es die angeforderte Antwort aus ... jetzt bearbeitet niemand die Seite ...
Groovy, mit "Zeiten", 81 Bytes
Aufbauend auf der Python-Antwort mit dem Wortmuster aus drei Buchstaben:
druckt:
Groovy, indem auf main (...), 83 Bytes rekursiv
Angenommen, wir zählen Zeilenumbrüche als ein Zeichen.
druckt den Text aus der ersten Antwort aus und löst dann eine PatternSyntaxException aus.
Groovy, using eachWithIndex, 88 Bytes
Groovig, transponiert, 102 Bytes
quelle
kit
.05AB1E , 77 Bytes
Probieren Sie es online!
Verwendet die folgende Zeichenfolge komprimiert:
ASSBINCATDOTEATFATGOTHATILLJOTKITLOTMETNOTOATPATQUEROTSETTITUSEVATWETXISYIPZAP
Umgerechnet auf Base-214:
Verwendete eine Liste von Scrabble-Wörtern mit drei Buchstaben: http://wordfinder.yourdictionary.com/letter-words/3
Die Ausgabe ist wie folgt:
Hatte eine 70-Byte-Version, aber 2-Buchstaben-Wörter sind nicht erlaubt.
Erklärt:
quelle
qui
ist kein englisches Wort. Wenn Sie dies nachschlagen, sehen Sie nur ein lateinisches Wort.Que
ich wusste, dass es ein erlaubtes Scrabble-Wort mit 3 Buchstaben gab, das falsch geschrieben wurde.}»
könnten durch ersetzt werden,
.SmileBASIC,
1311138281 BytesJetzt mit Worten, die in
t
quelle
Lithp ,
136125117 Bytes(Split für die Lesbarkeit)
Probieren Sie es online!
Dies ist so ziemlich ein Port der Python-Antwort
each
dem Index von 11 Byte gespeichert(scope #)
Ausgabe:
quelle
Batch, 250 Bytes
Da ich nie eine anständige Punktzahl bekommen würde, habe ich mich für die kürzesten humorvollen Worte entschieden, die ich finden konnte:
quelle
gestapelt , 72 Bytes
Es gibt zwei für 72 Bytes!
Probieren Sie es online! Mit diesem tollen Muster. (Bevor Sie fragen,
++
wäre ein einzelnes Token, also+ +
wird stattdessen verwendet.)Beide arbeiten, indem sie von
65
bis iterieren90
und die richtige Zeichenfolge erhalten. Anmerkungen:#:
ist ein Alias fürchr
#
ist ein Alias fürget
{!...}
ist das gleiche wie{ n : ... }
(Lambda mitn
als Parameter)Für 73 Bytes:
quelle
Mathematica 93 Bytes
Ausbeuten
quelle
Groovy, 72 Bytes
Ausgabe
quelle
Python 3,
145137135 BytesIch habe einige Bytes geopfert, um die Ausgabe bei jedem Lauf pseudozufällig zu machen. Die Idee ist, nach Wörtern in Kleinbuchstaben mit mindestens 3 Zeichen zu suchen
/usr/share/dict/words
und dann eines aus dieser Liste mit auszuwählenid([x])%99
.Bearbeitungen
title()
da Wörter nicht groß geschrieben werden müssen."\n(%c.{3,})"
(+ 3 Byte) geändert , um das Entfernen von,re.M
(- 5 Byte) zu ermöglichen.Beispielausgabe:
quelle
Qohele
, obwohl eine Suche ergibt, dass es sich um ein Buch oder einen heiligen Text handelt.GNU sed, 81 + 1 (r Flag) = 82 Bytes
Dies ist eine sed Implementierung der Wortliste aus Jonathan Allans Antwort .
Die Wörter mit Ausnahme des gemeinsamen
t
Endbuchstabens werden in Zeile 1 in verketteter Form angegeben und dann in Zeile 2 im angeforderten Format gedruckt. Eine nachfolgende neue Zeile ist vorhanden.Ausführen :
quelle
Java 7,
124121 BytesBasierend auf der Antwort von @JonathanAllen , da Java kein ausgefallenes integriertes Wörterbuch hat. ;) Ich habe versucht, einen anderen Endbuchstaben für das gesamte Alphabet (wie
s
odern
odery
) oder einen mittleren Buchstaben (wiea
odere
) zu finden, aber den meisten fehlten nur ein oder zwei Wörtert
. Wörter werden manuell von wordhippo.com ausgewählt .Ungolfed:
Probieren Sie es hier aus.
Ausgabe:
quelle
+a+++
. Ich schreibe gerne: PPHP,
91878676 Bytesbasierend auf Jonathan Allans Wortliste :
ältere Versionen, 86 Bytes:
oder
Laufen Sie mit
-nr
.Ausgabe
Für die seltsamen Worte siehe Ismaels Antwort
quelle