Drucken Sie eine Alphabetwelle

37

Diesen genauen Text drucken Sie aus:

ABABABABABABABABABABABABAB
BCBCBCBCBCBCBCBCBCBCBCBCBC
CDCDCDCDCDCDCDCDCDCDCDCDCD
DEDEDEDEDEDEDEDEDEDEDEDEDE
EFEFEFEFEFEFEFEFEFEFEFEFEF
FGFGFGFGFGFGFGFGFGFGFGFGFG
GHGHGHGHGHGHGHGHGHGHGHGHGH
HIHIHIHIHIHIHIHIHIHIHIHIHI
IJIJIJIJIJIJIJIJIJIJIJIJIJ
JKJKJKJKJKJKJKJKJKJKJKJKJK
KLKLKLKLKLKLKLKLKLKLKLKLKL
LMLMLMLMLMLMLMLMLMLMLMLMLM
MNMNMNMNMNMNMNMNMNMNMNMNMN
NONONONONONONONONONONONONO
OPOPOPOPOPOPOPOPOPOPOPOPOP
PQPQPQPQPQPQPQPQPQPQPQPQPQ
QRQRQRQRQRQRQRQRQRQRQRQRQR
RSRSRSRSRSRSRSRSRSRSRSRSRS
STSTSTSTSTSTSTSTSTSTSTSTST
TUTUTUTUTUTUTUTUTUTUTUTUTU
UVUVUVUVUVUVUVUVUVUVUVUVUV
VWVWVWVWVWVWVWVWVWVWVWVWVW
WXWXWXWXWXWXWXWXWXWXWXWXWX
XYXYXYXYXYXYXYXYXYXYXYXYXY
YZYZYZYZYZYZYZYZYZYZYZYZYZ
ZAZAZAZAZAZAZAZAZAZAZAZAZA

Technische Daten

  • Sie können alle Kleinbuchstaben anstelle von Großbuchstaben drucken. Case muss jedoch in der gesamten Ausgabe konsistent sein.
  • Sie können einen zusätzlichen Zeilenumbruch drucken.

Wertung

Da dies eine Alphabetwelle ist, die in geringem Maße schwankt, sollte Ihr Code auch in Bezug auf die Bytezahl klein sein. Tatsächlich gewinnt der kleinste Code in Bezug auf die Anzahl der Bytes.

Undichte Nonne
quelle
39
Ernsthaft eine andere Alphabetherausforderung?
Nathan Merrill
6
@ NathanMerrill So zahlreich sie auch sind, ich glaube nicht, dass sie Abstimmungen wert sind. (Ich impliziere nicht, dass Sie herabgestimmt haben, ich sage nur.)
Conor O'Brien
14
Solange die Muster ausreichend unterschiedlich sind, denke ich nicht, dass es wichtig ist, das Alphabet, Dezimalstellen, Sternchen und Unterstriche usw. zu verwenden.
Dennis
9
@Dennis unabhängig von den verwendeten Zeichen, es ist diese Art von "Muster" Herausforderungen, die überbeansprucht werden, IMO. Ich denke nicht, dass es offtopic ist, aber ich würde etwas frische Luft genießen.
Nathan Merrill
13
Es ist klar, dass es keine Nachfrage mehr nach Alphabetherausforderungen gibt - nur 39 Personen haben in den ersten 15 Stunden geantwortet ...
trichoplax

Antworten:

37

C 60 Bytes

main(i){for(;i<703;)putchar(i++%27?65+(i/27+i%27%2)%26:10);}
orlp
quelle
10
Das ist Genie.
Undichte Nonne
Schön, C in einer Code Golf Challenge zu sehen.
Micheal Johnson
@MichealJohnson " sehe C ", IC was du da gemacht hast. ;) Und ich stimme mit Leaky Nun überein . Manchmal frage ich mich, wie die Leute auf einige dieser genialen Antworten gekommen sind.
Kevin Cruijssen
@ KevinCruijssen Das war ungewollt lol.
Micheal Johnson
17

Brainfuck, 104 Bytes

>+[+[<]>>+<+]><<+++++[>+++++>>++<<<-]>[-<+++++++++++++[->>.+.-<<]>>>.<+<]<----[>+<----]>++>>+++[-<.<.>>]
orlp
quelle
1
Praktisch die gleiche Größe wie Hello World. Beeindruckend!
Phyrfox
3
@phyrfox Eigentlich ...
Sp3000
14

Konvex, 10 Bytes

U_(+]D*zN*

Probieren Sie es online!

U               Predefined Variable: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 _(+            Push a copy with the 'A at the end.
    ]           Add both strings to an array.
     D*         Repeat array 13 times. D defaults to 13.
       z        Transpose.
        N*      Join by newlines. N defaults to "\n"
GamrCorps
quelle
9

Pyth, 11 10 Bytes

jC*13.<BG1

Probieren Sie es hier aus.

        G   the alphabet
       B    bifurcate over
     .<  1  left shift by 1
  *13       repeat 13 times
 C          transpose
j           join on newlines
Türknauf
quelle
8

Vim, 85 83 Bytes

:h<_<cr><cr><cr>YZZP:s/./\0\r/g<cr><c+v>ggy25Pqqlxj:let @a='xkPjj'<cr>25@akia<esc>25klq11@qh<ctrl+v>25jylpl<c+v>25jdGdd

Ich weiß, dass man mehr Golf spielen kann, aber mein Kopf tut weh, also muss ich erstmal aufhören.

<cr>ist die Eingabetaste, <c+v>ist Strg + V und <esc>ist die Escape-Taste. Diese wurden alle als ein Byte gezählt.

Ich habe ein GIF davon aufgenommen, aber es wurde vermasselt. Das Video ist jedoch in Ordnung: http://recordit.co/ldLKvho9Gi

addison
quelle
8

Ruby, 42 39 38 37 Bytes

-3 Bytes dank @ user81655
-1 Bytes dank @manatwork
-1 Bytes dank @NotthatCharles

?A.upto(?Z){|a|puts (a+a.next[0])*13}

Siehe es auf repl.it: https://repl.it/CmOJ

Jordan
quelle
7

Cheddar, 48 Bytes

print(65|>90).map(l->@"[l,l>89?65:l+1]*13).vfuse

Cheddar ist gut mit Streichern: D

Probieren Sie es online!

Erläuterung

print
  (65|>90)            // Range from 65 (A) to 90 (Z)
  .map(l->            // Map through range
    @"                // Convert following array of char codes to string
      [l,             // The character 
       l>89?65:l+1]   // See below for explanation
      *13             // Repeat 13 times
  ).vfuse             // Vertically fuse

Was macht l>89?65:l+1das? Nun 89ist der Zeichencode für Y. Grundsätzlich l>89ist zu prüfen, ob der Brief ist Z, das heißt, wir sollten zurückkehren A. Wenn l>89ist falsch. Ich werde zurückkehren l+1, der nächste Char

Downgoat
quelle
Ich dachte, Sie können @"zwischen ihnen einfügen .
Undichte Nonne
Verwendet dies nicht eine Funktionsrückgabe?
Conor O'Brien
@ ConorO'Brien ja?
Downgoat
@ ConorO'Brien oh, nicht in Challenge Spec gesehen. wird reparieren
Downgoat
7

Gelee , 10 Bytes

26ḶḂØAṙZj⁷

Probieren Sie es online!

Wie es funktioniert

26ḶḂØAṙZj⁷  Main link. No arguments.

26Ḷ         Yield [0, ..., 25].
   Ḃ        Bit; compute the parity of each intger.
    ØAṙ     Rotate the alphabet by these amounts.
       Z    Zip; transpose rows and columns.
        j⁷  Join, separating by linefeeds.
Dennis
quelle
Gab Yes damals noch keine ? Herzlichen Glückwunsch auch für 100k rep !!
Erik der Outgolfer
Vielen Dank! Ich habe nachgeprüft und wurde leider Yzwei Tage nach dem Absenden der Challenge hinzugefügt.
Dennis
Weil du es weiter runter bis Golf spielen hättest können 26ḶḂØAṙZY. Aber so wie es jetzt ist, ist es immer noch gut.
Erik der Outgolfer
7

Haskell, 60 58 Bytes

mapM putStrLn[[0..12]>>[a,b]|a:b:_<-scanr(:)"A"['A'..'Z']]

Wenn Sie mit "A" beginnen, wird scanr(:)eine Liste aus den Zeichen von ['A'..'Z']rechts erstellt. (-> ["ABCDE...A", "BCDEF..A", ..., "XYZA", "YZA", "ZA", "A"]). (a:b:_)Stimmt mit den ersten beiden Zeichen jeder Unterliste überein (mit mindestens zwei Zeichen) und erstellt 13 Kopien davon.

nimi
quelle
In Anbetracht einiger Cheats, die von anderen Sprachen regelmäßig verwendet werden, halte ich es für nur angemessen, den tatsächlichen Druck nicht einzuschließen. In diesem Fall können Sie es durch "(++" \ n ") = <<" ersetzen und 2 Bytes speichern. Möglicherweise mehr.
MarLinn
@MarLinn: Nein, das glaube ich nicht. Golf-Sprachen wurden unter Berücksichtigung des impliziten Drucks entwickelt und die meisten anderen Antworten haben einen Druckbefehl. Übrigens unlinesist noch kürzer als (++"\n")=<<.
nimi
7

PowerShell, 49 43 Byte

TimmyDs Remix:

65..89|%{-join[char[]]($_,++$_)*13};"ZA"*13

war, 49 Bytes:

0..25|%{(""+[char]($_+++65)+[char]($_%26+65))*13}

Beispielausgabe

TessellatingHeckler
quelle
6

Python 2, 70 68 54 Bytes

Listenbasierte Lösung:

L=map(chr,range(65,91))
for i in range(-26,0):print(L[i]+L[i+1])*13

Aber warum eine Liste erstellen? Danke LeakyNun:

for i in range(26):print(chr(i+65)+chr(-~i%26+65))*13
Karl Napf
quelle
6

R, 72 67 60 56 Bytes

write(matrix(LETTERS[c(1:26,2:26,1)],26,26,T),"",26,,"")

Vielen Dank an @ Giuseppe für die zusätzlichen 4 Bytes!

Alte rep-basierte Lösung bei 60 Bytes:

for(i in 1:26)cat(rep(LETTERS[c(i,i%%26+1)],13),"\n",sep="")

Sehen Sie hier auf einem Online-Dolmetscher. Vielen Dank an @ user5957401 für die zusätzlichen 7 Bytes!

Alte matrixbasierte Lösung mit 72 Bytes:

for(i in 1:26)cat(matrix(LETTERS[c(1:26,2:26,1)],26,26)[i,],"\n",sep="")

Sehen Sie hier auf einem Online-Dolmetscher.

Plannapus
quelle
1
Wenn Sie den Indext in i in 1:26und dann die Buchstabenauswahl in ändern , können LETTERS[c(i,i%%26+1)]Sie 6 oder 7 Bytes
ablegen
1
@ user5957401 arf Ich habe so hartnäckig gehandelt, (i+1)%%26dass es mir nicht eingefallen ist , das Gegenteil zu tun! Vielen Dank!
Plannapus
1
56 Bytes mit Matrizen wieder :)
Giuseppe
5

MATL , 13 Bytes

1Y2tn:!to~!+)

Probieren Sie es online!

1Y2    % Predefined string literal: 'AB···Z'
tn:    % Duplicate, number of elements, range: gives [1, 2, ···, 26]
!      % Transpose into a column vector
to~!   % Duplicate and transform into [0, 1, 0, 1, ···, 1] using modulo 2
+      % Addition with broadcast. Gives 2D numeric array
)      % Index (modularly) into string. Implicitly display.
Luis Mendo
quelle
5

Qualle , 26 Bytes

P
+'A
~
| S
+$ r2
 ,'
r'

Beachten Sie die nachfolgenden nicht druckbaren Zeichen in den letzten beiden Zeilen. Probieren Sie es online!

Erläuterung

Dies ist im Grunde ein arithmetischer Manipulationsansatz: Erstelle ein 26 × 26-Gitter mit alternierendem 0-1-Muster, addiere den Index jeder Zeile zu jedem Element der Zeile, reduziere Mod 26 und addiere den ASCII-Wert von A. Zeichen in Jellyfish sind nur Zahlen mit einer speziellen Flagge, und alle Berechnungen funktionieren erwartungsgemäß mit ihnen.

Von unten nach oben:

  • Die 's sind Zeichenliterale; Es folgen nicht druckbare Zeichen mit dem ASCII-Code 26, die für diese Zeichen stehen.
  • Der untere rberechnet den Zeichenbereich von 0 bis 25.
  • Sie ,bilden aus den beiden nicht druckbaren Zeichen ein Paar.
  • Das höhere rArgument wird gegeben 2und bildet den Bereich [0 1].
  • Der $nimmt diesen Bereich und formt ihn in die Form um, die durch sein anderes Argument gegeben ist, nämlich das Paar der nicht druckbaren Elemente. Dies ergibt eine 26 × 26-Matrix alternierender Zeilen0 1 0 1 0 1 ...
  • Der untere +Wert fügt der Matrix den Zeichenbereich 0-25 hinzu. Die Additions vertreibt auf den Zeilen, so Zeile i durch inkrementiert wird i . Es wird auch in eine Zeichenmatrix konvertiert, da das südliche Argument aus Zeichen besteht.
  • Das ~|Is-Modul mit gespiegelten Argumenten: Das South-Argument (die obige Char-Matrix) ist modulo auf das East-Argument reduziert (das Swendet den Argument-Suchprozess nach Süden, das ist also das nicht druckbare Literal 26).
  • Der höhere +Wert fügt das Literal Azu jeder Koordinate der resultierenden Matrix hinzu.
  • Das Pdruckt das Ergebnis im Matrixformat, dh jede Zeile in einer eigenen Zeile ohne Anführungszeichen.
Zgarb
quelle
1
Ich wollte versuchen, Golf zu spielen, aber dann sah ich den Namen desjenigen, der den Code geschrieben hat.
Undichte Nonne
@LeakyNun Du kannst es trotzdem versuchen! Obwohl 26 Bytes für diese Herausforderung geeignet sind.
Zgarb
5

Vim, 31 Bytes

:h<_↵↵↵YZZPJra0qqy2l13Plr↵25@qD

Wo ist die Return-Taste.

Bildbeschreibung hier eingeben

Lynn
quelle
5

Perl, 26 Bytes

Lösung von @Dom Hastings . (12 Byte kürzer als meins!)
-1 Byte dank @Ton Hospel

say+($_++,chop)x13for A..Z

Laufen Sie mit -M5.010oder -E:

perl -E 'say+($_++,chop)x13for A..Z'
Dada
quelle
Schaffte es, dies auf 33: zu bringen say+($_++,$_--=~/^./g)x13for A..Z, aber ich bin sicher, es gibt eine Möglichkeit, eine kürzere zu bekommen von: say+($_++,$_--)x13for A..Z...
Dom Hastings
Nicht sicher, warum ich das --da drin habe, es wird nicht benötigt! O_o. 27:say+($_++,/^./g)x13for A..Z
Dom Hastings
@DomHastings Schön gemacht! Ich habe zuerst versucht, say+($_,$_++)x13for A..Zwas nicht funktioniert hat, aber es scheint, ich hätte weiter in diese Richtung drängen sollen!
Dada
1
say+($_++,chop)x13for A..Zspeichert ein weiteres Byte
Ton Hospel
@TonHospel toll, danke dafür.
Dada
5

T-SQL 133 Bytes (Golf von: @ t-clausen.dk)

SELECT REPLICATE(Char(number+65)+IIF(number=25,'A',Char(number+66)),13)FROM spt_values WHERE number<26and'P'=TYPE

T-SQL, 151 Bytes

Verwenden von CTE zum Generieren einer Zahlenfolge

;WITH n(a,v) AS(SELECT CHAR(65)+CHAR(66), 66 UNION ALL SELECT CHAR(v)+CHAR(v+1), v+1 FROM n WHERE v < 91)SELECT REPLICATE(REPLACE(a,'[','A'),13) FROM n

T-SQL, 155 Bytes

SELECT REPLICATE(Char(number+65)+ CASE WHEN number=25 THEN 'A' ELSE Char(number+66) END, 13) FROM master.dbo.spt_values  WHERE name IS NULL AND number < 26
Anuj Tripathi
quelle
Ich habe Ihre Antwort auf 113 Zeichen reduziert . Ich gab eine ganz andere Antwort in TSQL
t-clausen.dk
@ t-Clausen.dk Das ist hervorragend. Bitte posten Sie Ihre Antwort. Ich würde meine löschen.
Anuj Tripathi
Kein Grund, Ihre Antwort zu löschen. Sie können einfach meine Geige verwenden, um Ihre Antwort zu verbessern. Ich habe bereits vor einer Stunde gepostet. Wenn Sie TSQL mögen, sollten Sie sich meine anderen Antworten ansehen. Ich habe für die meisten Fiddles gemacht
t-clausen.dk
4

Julia, 46 Bytes

[println("$c$(c+1-26(c>89))"^13)for c='A':'Z']

Probieren Sie es online!

Dennis
quelle
4

Pyth, 10 Bytes

jCm.<G~!ZG

Demonstration

Erläuterung:

jCm.<G~!ZG
  m      G    Map over G, predefined to the lowercase alphabet.
              This will give 26 columns.
   .<G        Left shift (cyclically) G by
        Z     Z elements. Z is initialized to 0.
      ~!      After using its value, logical not Z. (0 -> 1, 1 -> 0)
 C            Transpose
j             Join on newlines
isaacg
quelle
Schön, ich wünschte, ich wüsste so viel wie Sie über Pyth
Stan Strum
4

Brainfuck, 88 86 Bytes

++[[+>]<+<++]+>-[[->+>+<<]>>-]++++++++[<[++++++++<+<]>[>]<-]<<++<[>+++[->.<<.>]<<++.<]

Benötigt einen Interpreter mit 8-Bit-Zellen und einem nicht links begrenzten Band. Probieren Sie es online!

Sp3000
quelle
3

Lua, 80 65 Bytes.

s = string c = s.char for i=1,26 do print(s.rep(c(64+i)..c((65+(i%26))),13)) end

Mit Hilfe von Leaky Nun

c=("").char for i=1,26 do print((c(64+i)..c(65+i%26)):rep(13))end

Lua ist eine ziemlich ineffiziente Sprache in Bezug auf den Umgang mit Strings und so weiter.

Ein Taco
quelle
Willkommen bei PPCG! Schöner erster Beitrag! Sie können 5 Bytes sparen, wenn Sie unnötige Leerzeichen entfernen:s=string c=s.char for i=1,26 do print(s.rep(c(64+i)..c((65+(i%26))),13))end
GamrCorps
for i=1,26 do print(((64+i):char()..(65+(i%26)):char()):rep(13))end(nicht getestet)
Leaky Nun
Denn string.rep(x,13)im Grunde istx:rep(13)
Leaky Nun
Recht! Ich habe vergessen, dass die Zeichenfolge, die metatable ist, standardmäßig die Zeichenfolgenbibliothek indiziert.
ATaco
Obwohl gut, zählen Zahlen wie 65+ (i% 26) nicht als Zeichenfolgen, es sei denn, sie werden als solche gespeichert. Ich werde an einem Weg arbeiten, um das zum Teufel zu machen.
ATaco
3

Brachylog , 30 24 20 Bytes

@Ab: "a" c: @Arz: {: 12jc: @Nc.} A: wa 
@Ab: "a" c: @Arze: 12jcw @ Nw \
@A $ (: @ Arze: 12jcw @ Nw \

Probieren Sie es online!

Undichte Nonne
quelle
3

05AB1E, 12 Bytes

ADÀ)øvyJ5Ø×,

Erläuterung

AD            # push 2 copies of the alphabet
  À           # rotate the 2nd one left by 1
   )ø         # add to list and zip
     v        # for each
      yJ      # join the pair
        5Ø×   # repeat it 13 times
           ,  # print with newline

Probieren Sie es online aus

Emigna
quelle
Ich weiß, dass dies eine alte Frage ist, aber ich kann mir einfach nicht helfen. ADÀ)ø13×»Funktioniert auch mit 9 Bytes.
Datboi
@Datboi: Das funktioniert jetzt tatsächlich, aber leider hat es nicht funktioniert, als diese Frage gepostet wurde :(
Emigna
3

Mathematica, 82 75 67 66 Bytes

Print@FromCharacterCode@PadLeft[{},26,{i-1,i}~Mod~26+65]~Do~{i,26}

Technisch gesehen kürzer, obwohl es in Kleinbuchstaben statt in Großbuchstaben gedruckt wird:

Mathematica, 64 Bytes

Print[""<>FromLetterNumber@Table[{i-1,i}~Mod~26+1,13]]~Do~{i,26}
Michael Lee
quelle
1
Netter Trick mit PadLeft.
Undichte Nonne
1

MATLAB, 47 38 Bytes

a=(65:90)';char(repmat([a a([2:end 1])],1,13))

char(repmat([65:90;[66:90 65]]',1,13))

Der erste Befehl erstellt ein Spaltenarray des Alphabets in ASCII, fügt eine verschobene Kopie als Spalte nach rechts hinzu, repliziert das resultierende 26 * 2-Array 13-mal spaltenweise, wandelt es in ein Zeichenarray um und druckt standardmäßig.

Die Sekunde macht ein 2 * 26-Array aus Alphabet und verschobenem Alphabet, transponiert es und fährt dann wie oben fort.

user58384
quelle
Sie können ein Byte mit [... '']anstelle von speichern char(...).
Pajonk
Und Sie können einfach [65:90;66:90 65]zwei Bytes speichern.
Pajonk
1

J, 20 bis 19 Bytes

1 Byte dank Meilen.

u:65+26|(+/2&|)i.26

Online-Dolmetscher

Dies ist eigentlich das Programm, mit dem ich den Text in der Challenge generiert habe.

Undichte Nonne
quelle
Sie können die@
Meilen
1

Neoscript , 59 Bytes

a=('A:[]:'Z)+'Aeach n=0:[]:25console:log((a[n]+a[n+1])*13);
TuxCrafting
quelle
1

PHP, 102 Bytes

<?php $a='ABCDEFGHIJKLMNOPQRSTUVWXYZA';$i=-1;while($i++<25){echo str_repeat(substr($a,$i,2),13)."\n";}
gabe3886
quelle
Sie können die Anführungszeichen aus der alphabetischen Zeichenfolge entfernen. Ersetzen Sie \ n durch eine tatsächliche Eingabe anstelle von \ n. Habe diese Idee von @insertusernamehere gestohlen. Also überprüfe seine Antwort auf das, was ich meine. Bearbeiten: Verwenden Sie auch die Kurzbezeichnung <?. Sie brauchen auch kein Leerzeichen nach <?. So <?$a='ABC'funktioniert das auch.
Jeroen
1

Ruby, 41 Bytes

26.times{|i|puts [*?A..?Z,?A][i,2]*''*13}
daniero
quelle