Bilden Sie ein Codequadrat mit Ihrem Lieblingswort


47

Wählen Sie Ihr bevorzugtes englisches 6-Buchstaben-Wort, das keine wiederholten Buchstaben enthält , wie z wombat.

Schreiben Sie ein Programm in einem N × N-Zeichenraster ohne Kommentare , sodass jede Zeile und Spalte alle Buchstaben Ihres Wortes in Kleinbuchstaben in beliebiger Reihenfolge enthält. Das Programm muss eine Definition Ihres Wortes mit mindestens 36 Zeichen ausgeben .

Regeln

  • Ausgabe auf Standardausgabe. Es erfolgt keine Eingabe.
  • Ihr Wort muss auf Dictionary.com sein und darf nur az enthalten. Keine Eigennamen, keine Akronyme, keine Abkürzungen, keine Kontraktionen.
  • Ihr Programm und Ihre Ausgabe enthalten möglicherweise nur druckbare ASCII-Zeichen (Hex-Codes 20 bis 7E). (Dies zählt nicht die notwendigen Zeilenumbrüche im Programmraster.)
  • Kommentare sind alles, was der Compiler oder Interpreter traditionell ignoriert. Sie können Code verwenden, der nicht zur Ausgabe beiträgt oder nicht offiziell ausgeführt wird.
  • Die Ausgabedefinition sollte grammatikalisch und genau sein, kann aber durchaus witzig oder clever sein.
  • Jede Zeile oder Spalte, die mindestens 6 Buchstaben Ihres Wortes in Kleinbuchstaben enthält, ist gültig. Diagonalen spielen keine Rolle.

Wertung

Dies ist Codegolf, aber da alle Einsendungen das gleiche quadratische Format haben müssen, können Sie einfach Ihre Punktzahl mit N angeben. Die niedrigste N gewinnt, und natürlich ist eine N unter 6 unmöglich. Bei Stimmengleichheit gewinnt die am höchsten bewertete Antwort.

Beispiel

Wenn Ihr Wort war wombat, könnte Ihr Programm so aussehen (N = 7):

wombatD
ombatEw
mbatFwo
bat(wom
atWwomb
tBwomba
)wombat

Beachten Sie, dass jede Zeile und jede Spalte die Zeichen enthält w o m b a t.

Die Ausgabe könnte sein: (40 Zeichen)

Cute short-legged Australian marsupials.

OK, Sie müssen ein Gitter mit einem Wort aus 6 Buchstaben erstellen, aber dann verstehe ich die Ausgabe nicht: "Süße Beuteltiere mit kurzen Beinen aus Australien".
CousinCocaine

@CousinCocaine Das ist eine Beschreibung eines Wombats. Sie sollten eine grammatische und genaue Beschreibung des von Ihnen gewählten Wortes ausgeben.
ProgramFOX

Wie das Codegolf ist, wer entscheidet, was richtig ist? "Süße Beuteltiere mit kurzen Beinen" oder "Beuteltiere mit kurzen Beinen"?
CousinCocaine

5
Idee: Das Wort muss " golfed" sein und die Definition "a description of this program's code"(für alle, die herausfinden können, wie das geht!).
Türklinke

6
verdammt noch mal, ich habe kein langes Lieblingswort mit 6 Zeichen
user902383

Antworten:


18

Perl - Trauben - 11

edit: Ich habe versehentlich diese 12 Zeilen gemacht ...

$epagsr=$";
$,=$epagsr;
/gaerp/;say
grep!/a*s/,
qw(A searpg
purple sgar
rpssg pear?
No, a sgerp
s great pse
as grape; s
eat prgpsga
up! sgarse)

Ausgabe:

A purple pear? No, a great grape; eat up!

Aktualisieren!

Ich habe eine Zeile entfernt, um auf 11 zu kommen, aber ich musste den Satz ändern. Hoffentlich habe ich diesmal keine Fehler gemacht!

$gpasre=$";
$,=$gpasre;
/paerg/;say
grep!/a*s/,
qw(A sgrpea
purple sarg
ressp game?
No, a rgspe
s great gsp
as grape; s
eat),$spegr

Ausgabe:

A purple game? No, a great grape; eat

Die Ausgabe umfasst 37 Zeichen.


Ich mag dieses vor allem wegen des kleinen Output-Gedichts. Schade, dass es kein Haiku war :)
Matt Fletcher

1
Dies ist 12x11 ...
Schism

@schism wow ... Shoot! Ich werde es reparieren. Vielen Dank!
hmatt1

Ich werde das akzeptieren, aber es ist immer noch 12 groß.
Calvins Hobbys

47

Javascript - Aktion - 15x15

"Definitiv nicht die kürzeste, aber PEW PEW PEW." - James Bond

ction="action "
ction+="means "
actionac="PEW "
ctionact="PEW "
tionacti="PEW "
ionactio="PEW "
onaction="PEW "
nactiona="PEW "
ction+=actionac
ction+=ctionact
ction+=tionacti
ction+=ionactio
ction+=onaction
ction+=nactiona
alert(""+ction)

Link zur

Ausgabe von jsfiddle (37 Zeichen):

action means PEW PEW PEW PEW PEW PEW 

Ihre erste Zeile sollte einen Kleinbuchstaben a enthalten.
Calvins Hobbys

@ Calvin'sHobbies Du hast recht. Ich habe es repariert.
Izlin

35

Befunge 93, n = 13

Dies funktioniert, indem der String mit "vund umgeleitet wird >". Dies funktioniert nur, wenn die Seitenlänge und die Wortlänge Coprime sind und wenn die Seitenlänge größer als 11 ist. Im Moment funktioniert es für das "Wort" vwombatund daher für wombat.

"laip"vwombat
wombat>"usr"v
"am "vwombat>
ombat>"nai"vw
lar"vwombat>"
mbat>"tsu"vwo
 d"vwombat>"A
bat>"egg"vwom
-"vwombat>"el
at>"tro"vwomb
"vwombat>"hs 
t>"tuC"vwomba
vwombat>:#,_@

Ausgänge Cute short-legged Australian marsupial


25

C (Wort: "Finder", N = 16)

main() finder{ f
printf(finder  i
"it's defined "r
"as a t"finder d
"hing t"finder e
"hat ca"finder r
"n find other t"
"hings" finder);
finder finder f\
inder finder fi\
nder finder fin\
der finder find\
er finder finde\
r finder finder
 finder finder n
return 0;finder}

Kompiliert mit GCC mit den Optionen -Dfinder="" -Df="" -Di="" -Dn="" -Dd="" -De="" -Dr="".

Es gibt aus it's defined as a thing that can find other things(50 Zeichen). Ich glaube, es folgt allen Regeln, aber bitte teilen Sie mir mit, ob ein Fehler vorliegt!


3
Sieht richtig aus, obwohl ich nicht verrückt nach allen Compiler-Optionen bin.
Calvins Hobbys

1
Natürlich habe ich hier die Regeln ein wenig verbogen. Anfangs habe ich viele Definitionen gewählt, deshalb habe ich das Wort "finder" gewählt (da es fast die gleichen Buchstaben enthält wie "define").
Maxdefolsch

9
Es ist keine gute Idee, Makros zu verwenden. wenn es erlaubt ist, kann man sagen , n = 6 und kompilieren Sie es mit diesen:"-Dfinder=main(){puts(it's defined as a thing that can find other things);}" -Dinderf=; -Dnderfi=; -Dderfin=; -Derfind=; -Dnderfi=;
bebe

Das stimmt, daran habe ich gar nicht gedacht.
Maxdefolsch

21

GolfScript, N = 12

wombat"Cute"
ombat" sho"w
mbat"rt-l"wo
bat"egge"wom
at"d Au"womb
twomb"stra"a
wom"lian "bt
ttwomb"mar"t
"sup"wbwomat
"ia"womabbtt
"ls"bawomtbt
aaawomobt"."

Das in GolfScript codierte Wombat-Beispiel. Ausgabe ist

Cute short-legged Australian marsupials.

wie in der Frage angegeben. Der interessante Teil ist , dass Sie die meisten Wörter und Antworten verwenden und einfach die entsprechenden Buchstaben in die Lösung so lange einsetzen , wie Sie ein GolfScript eingebaut, die nicht produzieren sind sehr selten, p, nzu offensichtlichen zu sein. Alle anderen Kombinationen führen zu gültigen GolfScript-Variablen, die standardmäßig deaktiviert sind.


Ich schätze, man könnte dies mit einer cleveren Formulierung, die viele Buchstaben aus dem Wort verwendet, erheblich reduzieren.
Martin Ender

@ MartinBüttner Ich habe es versucht, aber die 36 Zeichen machen es ziemlich schwer.
Howard

Ich habe Ihren Ansatz für eine "quadratische" Einreichung verwendet (siehe unten). Tatsächlich ist es ein Zeichen größer als deins, aber mit einigem Geschick ist es möglich, es zu komprimieren.
Martin Ender

18

Befunge-98 (n = 12)

Ich entschied mich für Kelvin, weil es AV in sich hatte. Ausgängekelvin is like celsius but it's lowe

"ewol "vnlik 
"t's"ke<ilnv 
kelniv"t i"< 
elnik>"ub "v 
nkv"elsius"< 
ln>"c eki"vl 
v0ke"is l"<n 
>" nivlek" v 
ielnv,k4'k#< 
 vivlevlnek< 
 ilkkninevei 
  elnkn vnle

Leider Si tempsind 29 Zeichen weniger als 36.;)
Martin Ender

Es scheint, dass immer, wenn ich in Befunge-93 poste, jemand eine ähnliche Befunge-98-Lösung verfolgt ...
Zaq

@Zaq keine Sorge, -93 macht sowieso mehr Spaß.
Siehe auch

Zeile 2 hat kein i.
Schism

Außerdem fehlt in Zeile 4 ein kund in Spalte 9 ein e.
Schism

11

Python, n = 15

Wort ist "Kanus"

def canoe(s='S\
ecret weap',sno
='ce',a='ons o\
f the Can',oces
=1,oesn=1,c='a\
dian navy',cose
="""aoenscanaen
canceessanoeeca
anoasanooscanoe
noescccccaeescc
oescneocaeoesca
escaoescan"""):
 canoes=s + a+c
 print (canoes)
s=1;    canoe()

Ausgabe:

Secret weapon of the Canadian navy

Dies ist 16x15!
Schisma

Danke ... Irgendwann habe ich falsch gezählt und das Bedürfnis verspürt, diese einzelne Zeile canoesdort hineinzufügen . Fest.
Gerrat

10

Perl - Wiederholung - 11

$repeat=qq(
repeat);say
"repeat\n"x
length'pear
repeatrepea
epeatrepeat
peatrepeatr
eatrepeatre
atrepeatrep
trepeatrepe
repeat....'

Ausgabe:

repeat
repeat
repeat
repeat
...keeps going

Rückblickend hätte ich das vielleicht zu einer Schleife machen sollen.


12
Unterschreitet das Wort, für das keine wiederholten Buchstaben erforderlich sind.
Howard

3
@Howard Es gibt mindestens 2 epro Zeile, also dachte ich mir, ich könnte es auch posten.
hmatt1

6

Ruby , haters, = N 10

Nach stundenlangen Versuchen von Hand, dem Schreiben eines Generatorprogramms und dem Ändern von Parametern habe ich endlich eine Lösung für N = 10 gefunden!

aser=ts=?h
tah=re=?\s
sh='Haters
nurse hate
in hardest
hearts.'  
rtse=erha=
era=sh.tr'
',tah;aser
 puts erha

Ausgaben Haters nurse hate in hardest hearts., genau 36 Zeichen. Probieren Sie es online!

Ich entschied mich für Rubin , weil seine Variablen nicht brauchen $( Perl ) und Single-Strings in Anführungszeichen enthalten können Zeilenumbrüche ( Python ). Die Tatsache, dass die trMethode zwei Buchstaben meines Wortes verwendet, war ein unerwarteter Bonus. Der Kern des Programms ist einfach:

# Store the definition, with newlines
sh='Haters
nurse hate
in hardest
hearts.'
# Transliterate newline to space
erha=sh.tr('
',' ')
# Output
puts erha

Natürlich war es nicht einfach, alle Buchstaben in eine Reihe zu bringen . Ich habe mehrere Variationen derselben Struktur durchlaufen und dabei ein paar Dinge über Ruby gelernt ( trbenötigt keine Klammern und ?\sist eine andere Möglichkeit, ein Leerzeichen zu erhalten). Es gab viele Sackgassen und mehrere Fehlalarme. Und dann ... Erfolg!

Ist hier ein Kern meines zerhackten Generatorprogramms, wenn jemand interessiert ist.


5

Golfscript (n = 10)

Mein erstes Golfskript! Es drucktkelvin is like celsius but it's lowe

"kelvin is
like ce"vn
evn"lsiu"k
k"s "elvni
in"bu"kelv
"t "knviel
vl"it'"nke
nevkil"s l
o"ivnkel"w
e"lnevik

Was bedeutet "Lowe"?
Aditsu

1
dictionary.com sagt , dass es niedrig bedeuten kann
waylon531

Das bezieht sich nur auf das Verb: brennen; Flamme / (einer Person), um starke Emotionen zu spüren; vor aufregung glühen. Ich verstehe nicht, wie das hier funktioniert.
Aditsu

Sehen Sie sich das Zitat oben rechts auf der Seite an
waylon531

1
Sorry, aber "lowe" ist etwas zu dunkel. Ich werde das akzeptieren, wenn Sie es "niedrig" oder "niedriger" machen können.
Calvins Hobbys

5

GolfScript, 13x13

Nicht das kleinste ...

squae"A squar
"uarsquaresqu
uareq"e has f
"resuaresquar
resqa"our equ
"squresquares
quars"al side
"arequaresqua
areuq"s and r
"esqaresquare
esqur"ight an
"quaesquaresq
quar"gles..."

... aber ...

A squar
e has f
our equ
al side
s and r
ight an
gles...

(Die Zeilenumbrüche in den Wörtern sind beabsichtigt, da ansonsten führende oder nachfolgende Leerzeichen verwendet werden, die weniger quadratisch aussehen würden.)


4

Python, N = 11

Wort ist "Eltern". Dieser Code ist nicht schön, aber es funktioniert.

eprnt=" a "
at="person"
rnep="that"
nrpt="made"
ea= " prnt"
e="parent:"
pa =(eprnt+
at+" "+rnep
+ea[0]+nrpt
+ eprnt+at)
print(e+pa)

Ausgabe: parent: a person that made a person

Edit: Irgendwie habe ich die Tatsache übersehen, dass Spalten auch das Wort enthalten müssen. Rückblickend war eine Sprache, die Endzeilenzeichen als Teil der Sprache enthält, für dieses Rätsel nicht gut geeignet.


4
Schön, aber nicht jede Spalte enthält das Wort parent. Die erste hat zum Beispiel keine a.
ProgramFOX

2
Es fehlt immer noch ein Haufen. pfehlt in 6 und 8 a.: 4, 6, 7, 11 r.: 4, 10, 11 e.: 4, 5, 8, 9, 11 n.: 3, 5, 7, 11 t.: 1, 3, 6, 8.
Schism

2

Pip , n = 14 (nicht konkurrierend)

Die Sprache ist neuer als die Frage. Das Wort ist quines. 1

n_n|quine say&
qu ines     qi
as  harle quin
se?(equins)ns.
 plums|quinces
|quicken bus++
iness|q++++i u
u:++ingl es?eq
ni*:u; s|qe:",
which "Rns|que
eRL:i|quotesne
PUsn    quiet!
u|qe."print".s
JW"quines"  :)

Gibt die folgende (zugegebenermaßen unvollständige) Definition aus:

quines print quines, welche print quines, welche print quines, welche print quines, welche print quines, welche print quines, welche print quines, welche print quines, welche print quines, welche print quines, welche print quines, welche print quines, welche print quines quines, welche drucken quines, welche drucken quines, welche drucken quines, welche drucken quines

Probieren Sie es online!

Der sinnvolle Teil des Codes lautet wie folgt:

++i          Increment i (initially set to 0)
++++i        Increment i twice
u:++i        Increment i again and assign to u (i & u are now 4)
i*:u         Multiply i by u in-place (i is now 16)
e:",         Assign the string ",\nwhich " to e...
which "Rns   after replacing the newline with a space
eRL:i        Make a list of 16 copies of e and assign back to e
ePUs         Push a space to the front of list e
e."print".s  Concatenate "print" and a space to each element of e...
JW"quines"   and join on "quines", wrapping the result in "quines"

Der Rest des Codes besteht aus willkürlichen No-Ops. Die Hauptschwierigkeit in den Abschnitten "Füller" war nie zu bewerten q, da dies den Benutzer zur Eingabe einer Eingabezeile auffordert (kein Problem bei TIO, aber ich wollte es in allen Umgebungen korrigieren). Ich verwenden Kurzschluss logische Operatoren |und &und ternäre ?, zu verhindern q‚s Bewertung.

1 Dictionary.com hat einen Eintrag für quine , mit einem Abschnitt über die Programmierbedeutung unten. Da "quine" ein abzählbares Substantiv ist, würde ich argumentieren, dass "quines" ein gültiges Wort ist.


1

Javascript, N = 8

Mein Wort ist Warnungen .

s= alert
alert(s+
s+alert)
aaltrsee
leraatts
ertsalar
rtsaaela
tsaesarl

Mein Code gibt die Definition der Javascript-Warnfunktion mehrmals aus. Die Javascript-Definition von alert ist "function alert () {[native code]}".

Nur die ersten drei Codezeilen tragen tatsächlich zur Ausgabe bei. Die letzten 5 Zeilen sind Syntaxfehler, aber die ursprünglichen Regeln besagten, dass nicht der gesamte Code ausgeführt werden muss, solange die Ausgabe korrekt ist.

Hier ist ein Link zur Geige: http://jsfiddle.net/tze76pum/


1
Schön, aber nicht ganz normales Englisch.
Calvins Hobbys
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.