Faire un carré de code avec votre mot préféré


47

Choisissez votre mot anglais commun préféré à 6 lettres qui n’a pas de lettres répétées , telles que wombat.

Ecrivez un programme dans une grille de caractères N × N sans commentaires tels que chaque ligne et chaque colonne contiennent toutes les lettres de votre mot en minuscule, dans n'importe quel ordre. Le programme doit produire une définition de votre mot en 36 caractères ou plus .

Règles

  • Sortie sur stdout. Il n'y a pas d'entrée.
  • Votre mot doit être sur Dictionary.com et ne contenir que z. Pas de noms propres, pas d'acronymes, pas d'abréviations, pas de contractions.
  • Votre programme et votre sortie ne peuvent contenir que des caractères ASCII imprimables (codes hexadécimaux 20 à 7E). (Cela ne compte pas les sauts de lignes nécessaires dans la grille du programme.)
  • Les commentaires sont tout ce que le compilateur ou l'interprète ignore traditionnellement. Vous pouvez utiliser un code qui ne contribue pas à la sortie ou qui n'est pas officiellement exécuté.
  • La définition de sortie doit être grammaticale et précise, mais peut certainement être drôle ou astucieuse.
  • Toute ligne ou colonne contenant au moins 6 lettres uniques de votre mot en minuscules est valide. Les diagonales n'ont pas d'importance.

Notation

C'est du code golf, mais comme toutes les soumissions doivent être dans le même format carré, vous pouvez simplement spécifier votre score avec N. Le plus petit N gagne, et bien entendu, un N inférieur à 6 est impossible. En cas d'égalité, la réponse la plus votée l'emporte.

Exemple

Si votre mot était wombatvotre programme pourrait ressembler à ceci (N = 7):

wombatD
ombatEw
mbatFwo
bat(wom
atWwomb
tBwomba
)wombat

Notez que chaque ligne et chaque colonne contient les caractères w o m b a t.

La sortie pourrait être: (40 caractères)

Cute short-legged Australian marsupials.

OK, vous devez créer une grille avec un mot de 6 lettres, mais je ne comprends pas le résultat: "Jolis marsupiaux australiens aux jambes courtes.".
CousinCocaine

@CousinCocaine C'est une description d'un wombat. Vous devriez produire une description grammaticale et précise du mot que vous choisissez.
ProgramFOX

Comme c'est du code golf, qui décide ce qui est juste? "Mignons marsupiaux australiens à pattes courtes" ou "marsupiaux à pattes courtes"?
CousinCocaine

5
Idée: que le mot soit " golfed" et la définition "a description of this program's code"(pour tous ceux qui peuvent comprendre comment faire cela!).
Poignée de porte

6
zut, je n'ai pas
mon

Réponses:


18

Perl - raisins - 11

edit: J'ai accidentellement fait cela 12 lignes ...

$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)

Sortie:

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

Mise à jour!

J'ai éliminé une ligne pour la ramener à 11 mais je devais changer la phrase. Espérons que je n'ai commis aucune erreur cette fois!

$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

Sortie:

A purple game? No, a great grape; eat

La sortie est de 37 caractères.


J'aime celui-ci principalement à cause du petit poème de sortie. Dommage que ce ne soit pas un haïku :)
Matt Fletcher

1
C'est 12x11 ...
Schism

@schism wow ... Shoot! Je le réparerai. Merci!
hmatt1

Sur le point d’accepter cela, mais c’est quand même grand.
Les passe-temps de Calvin le

47

Javascript - action - 15x15

"Ce n'est certainement pas le plus court, mais 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)

Lien vers la

sortie jsfiddle (37 caractères):

action means PEW PEW PEW PEW PEW PEW 

Votre première ligne doit contenir une minuscule a.
Les passe-temps de Calvin

@ Calvin'sHobbies Vous avez raison. Je l'ai corrigé.
izlin

35

Befunge 93, n = 13

Cela fonctionne en redirigeant la chaîne avec "vet >". Cela ne fonctionne que lorsque la longueur de côté et la longueur de mot sont identiques et que la longueur de côté est supérieure à 11. À l'heure actuelle, cela fonctionne pour le "mot" vwombat, et donc pour 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>:#,_@

Les sorties Cute short-legged Australian marsupial


25

C (mot: "chercheur", 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}

Compilé avec GCC, avec les options -Dfinder="" -Df="" -Di="" -Dn="" -Dd="" -De="" -Dr="".

Il sort it's defined as a thing that can find other things(50 caractères). Je crois qu'il respecte toutes les règles, mais n'hésitez pas à me dire s'il y a une erreur!


3
Cela semble correct, même si je ne suis pas folle de toutes les options du compilateur.
Les passe-temps de Calvin

1
Bien sûr, je tordais un peu les règles ici. Au début, je voulais beaucoup de définitions, c’est pourquoi j’ai choisi le mot "finder" (car il contient presque les mêmes lettres que "define").
maxdefolsch

9
ce n'est pas une bonne idée d'utiliser des macros. si c'est permis, vous pouvez dire n = 6 et le compiler avec:"-Dfinder=main(){puts(it's defined as a thing that can find other things);}" -Dinderf=; -Dnderfi=; -Dderfin=; -Derfind=; -Dnderfi=;
bebe le

C'est vrai, je n'y avais même pas pensé.
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"."

L’exemple wombat codé en GolfScript. La sortie est

Cute short-legged Australian marsupials.

comme indiqué dans la question. La partie intéressante est que vous pouvez utiliser la plupart des mots et des réponses et il suffit d' insérer les lettres correspondantes dans la solution tant que vous ne produisez pas un GolfScript intégré qui sont très rares, p, nétant de plus évidentes. Toutes les autres combinaisons mènent à des variables GolfScript valides qui sont des opérations sans opération par défaut.


Donc, je suppose que l’on pourrait réduire considérablement ce risque en utilisant une phrase intelligente qui utilise beaucoup de lettres du mot.
Martin Ender

@ MartinBüttner, j'ai essayé, mais les 36 caractères rendent la tâche difficile.
Howard

J'ai utilisé votre approche pour une soumission "carré" (voir ci-dessous). C'est en fait un caractère plus grand que le vôtre, mais avec quelques décalages astucieux, il pourrait être possible de le compresser.
Martin Ender

18

Befunge-98 (n = 12)

J'ai choisi le kelvin parce qu'il y en avait une. Les sortieskelvin 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

Malheureusement, il Si tempreste 29 caractères sur 36.;)
Martin Ender

Il semble que chaque fois que je poste dans Befunge-93, quelqu'un propose une solution similaire à Befunge-98 ...
Zaq

@Zaq ne vous inquiétez pas, -93 est plus amusant de toute façon.
seequ

La ligne 2 n'a pas de i.
Schism

De plus, il manque un 4 dans la ligne et il manque un dans la kcolonne 9 e.
Schism

11

Python, n = 15

La parole est "canoës"

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()

Sortie:

Secret weapon of the Canadian navy

C'est 16x15!
Schisme

Merci ... à un moment donné, j'ai mal compris et ressenti le besoin d'ajouter cette seule ligne à l'intérieur canoes. Fixé.
Gerrat

10

Perl - répéter - 11

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

Sortie:

repeat
repeat
repeat
repeat
...keeps going

Avec le recul, j'aurais peut-être dû en faire une boucle.


12
Ne correspond pas au mot qui n’a pas d’ exigence de lettres répétées .
Howard

3
@Howard Il y a au moins deux elignes par ligne, alors je me suis dit que je pourrais aussi bien la poster.
hmatt1

6

Rubis , hatersN = 10

Après des heures de tentatives manuelles, d'écriture d'un programme générateur et de réglages de paramètres, j'ai finalement trouvé une solution pour N = 10!

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

Sorties Haters nurse hate in hardest hearts., exactement 36 caractères. Essayez-le en ligne!

J'ai choisi Ruby parce que ses variables ne nécessitent pas $( Perl ) et que les chaînes entre guillemets simples peuvent contenir des nouvelles lignes ( Python ). Le fait que la trméthode utilise deux des lettres de mon mot était un bonus inattendu. Le noyau du programme est simple:

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

Bien sûr, mettre toutes les lettres en ligne n'était pas simple. Je suis passé par plusieurs variantes de la même structure et ai appris plusieurs choses à propos de Ruby ( trsans avoir besoin de parenthèses, ?\sc’est une autre façon d’obtenir un espace). Il y avait beaucoup d'impasses et plusieurs faux positifs. Et ensuite ... le succès!

Voici l'essentiel de mon programme générateur hacked-together, si quelqu'un est intéressé.


5

Golfscript (n = 10)

Mon premier golfscript! Il imprimekelvin 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

Que veut dire "lowe"?
Aditsu

1
dictionary.com dit que ça peut vouloir dire bas
waylon531

Cela ne concerne que le verbe, ce qui signifie: brûler; flamber / (d'une personne) ressentir de fortes émotions; briller d'excitation. Je ne vois pas comment ça marche ici.
Aditsu

Regardez la citation en haut à droite de la page
waylon531

1
Désolé, mais "lowe" est un peu trop obscur. Je l'accepterai si vous pouvez le faire "bas" ou "bas".
Les passe-temps de Calvin le

5

GolfScript, 13x13

Pas le plus petit ...

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..."

... mais ...

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

(Les sauts de ligne dans les mots sont intentionnels, car sinon, j'aurais des espaces de début ou de fin qui sembleraient moins carrés.)


4

Python, N = 11

Word est "parent". Ce code n'est pas joli, mais ça marche.

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

Sortie: parent: a person that made a person

Edit: En quelque sorte, j'ai raté le fait que les colonnes doivent également contenir le mot. Rétrospectivement, un langage incluant des caractères finaux dans le langage ne convenait pas bien à ce casse-tête.


4
Bien, mais chaque colonne ne contient pas le mot parent. Le premier, par exemple, n'a pas de a.
ProgramFOX

2
Il manque encore un tas. pmanque dans 6 et 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 (non compétitif)

La langue est plus récente que la question. Le mot est 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"  :)

Affiche la définition suivante (certes incomplète):

quines print quines, qui impriment quines, qui impriment quines, qui impriment quines, qui impriment quines, qui impriment quines, qui impriment quines, qui impriment quines, qui impriment quines, qui impriment quines, qui impriment quines, qui impriment quines quines, qui imprime quines, qui imprime quines, qui imprime quines, qui imprime quines

Essayez-le en ligne!

La partie significative du code s'exécute ainsi:

++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"

Le reste du code est arbitraire no-ops. La difficulté principale dans les sections "remplissage" n’a jamais été d’évaluer q, car cela inciterait l’utilisateur à entrer une ligne d’entrée (ce n’est pas un problème pour TIO, mais je voulais le corriger dans tous les environnements). J'ai utilisé des opérateurs logiques de court-circuit |et &, et ternaire ?, pour empêcher ql'évaluation.

1 Dictionary.com a une entrée pour quine , avec une section sur la signification de la programmation en bas. Puisque "quine" est un nom dénombrable, je dirais que "quines" est un mot valide.


1

Javascript, N = 8

Ma parole est des alertes .

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

Mon code génère la définition de la fonction d'alerte javascript plusieurs fois. La définition de alerte par Javascript est "function alert () {[code natif]}".

Seules les trois premières lignes de code contribuent réellement à la sortie. Les 5 dernières lignes sont des erreurs de syntaxe, mais les règles d'origine précisaient que tout le code ne devait pas être exécuté tant que la sortie était correcte.

Voici un lien vers le violon: http://jsfiddle.net/tze76pum/


1
Bien, mais pas assez anglais.
Les passe-temps de Calvin le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.