Складіть кодовий квадрат з улюбленим словом


47

Виберіть улюблене загальне англійське слово з 6 літер, яке не має повторених літер , наприклад wombat.

Напишіть програму в сітці символів N × N без коментарів , щоб кожен рядок і стовпець містили всі літери вашого слова в малі літери в будь-якому порядку. Програма повинна вивести визначення вашого слова в 36 символів або більше .

Правила

  • Вихід у stdout. Введення немає.
  • Ваше слово має бути на Dictionary.com і містити лише az. Ні власних іменників, ні абревіатур, ні абревіатур, ні скорочень.
  • Ваша програма та вихід можуть містити лише друковані символи ASCII (шістнадцяткові коди від 20 до 7E). (Це не враховує необхідних нових рядків у сітці програми.)
  • Коментарі - це все, що компілятор або перекладач традиційно ігнорує. Ви можете використовувати код, який не сприяє виводу або офіційно не виконується.
  • Визначення результату має бути граматичним та точним, але, безумовно, може бути смішним чи розумним.
  • Дійсний будь-який рядок або стовпець, що містить принаймні 6 унікальних літер у вашому слові. Діагоналі значення не мають.

Оцінка балів

Це кодовий гольф, але оскільки всі подання повинні бути в одному квадратному форматі, ви можете просто вказати свій результат з N. Найнижчий N виграшів, і звичайно, N нижче 6 неможливо. У разі зв’язків виграє найвища відповідь, яка проголосується.

Приклад

Якщо ваше слово було wombatвашою програмою, це може виглядати приблизно так (N = 7):

wombatD
ombatEw
mbatFwo
bat(wom
atWwomb
tBwomba
)wombat

Зауважте, що кожен рядок і кожен стовпець містять символи w o m b a t.

Вихід може бути: (40 символів)

Cute short-legged Australian marsupials.

Гаразд, ви повинні створити сітку за допомогою 6-літерного слова, але тоді я не розумію вихід: "Симпатичні коротконогі австралійські сумчасті". "
CousinCocaine

@CousinCocaine Опис опису волосяного бою. Ви повинні вивести граматичний і точний опис вибраного слова.
ProgramFOX

Оскільки це код гольфу, хто вирішує, що правильно? «Симпатичні коротконогі сумчасті австралійські» чи «сумчасті короткі ноги»?
CousinCocaine

5
Ідея: Попросіть слово бути " golfed" та визначення "a description of this program's code"(для всіх, хто може зрозуміти, як це зробити!).
Дверна ручка

6
чорт, у мене немає улюбленого слова з 6 символами
user902383

Відповіді:


18

Перл - виноград - 11

редагувати: Я випадково зробив це 12 рядків ...

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

Вихід:

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

Оновлення!

Я ліквідував рядок, щоб зменшити його до 11, але мені довелося змінити речення. Сподіваюся, я цього разу не помилився!

$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

Вихід:

A purple game? No, a great grape; eat

Вихід - 37 символів.


Мені це подобається насамперед через те, що мало віршів. Соромно, що це не був хайку :)
Метт Флетчер

1
Це 12x11 ...
Розкол

@schism wow ... Стріляй! Я це виправлю. Дякую!
hmatt1

Збирається це прийняти, але це все ще 12 заввишки.
Захоплення Кальвіна

47

Javascript - дія - 15x15

"Однозначно не найкоротший, але PEW PEW PEW." - Джеймс Бонд

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)

Посилання на

вихід jsfiddle (37 знаків):

action means PEW PEW PEW PEW PEW PEW 

Ваш перший рядок повинен містити малі літери a.
Захоплення Кальвіна

@ Calvin'sHobbies Ви праві. Я виправив це.
izlin

35

Befunge 93, n = 13

Це працює, перенаправляючи рядок з "vі >". Це працює лише тоді, коли довжина сторони та довжина слів є одночасними та коли довжина сторони більша за 11. Зараз це працює для "слова" vwombat, а отже для 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>:#,_@

Виходи Cute short-legged Australian marsupial


25

C (слово: "шукач", 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}

Складено з GCC, з варіантами -Dfinder="" -Df="" -Di="" -Dn="" -Dd="" -De="" -Dr="".

Він виводить it's defined as a thing that can find other things(50 символів). Я вважаю, що він дотримується всіх правил, але не соромтеся сказати мені, чи є якась помилка!


3
Виглядає правильно, хоча я не божевільний за всіма параметрами компілятора.
Хобі Кальвіна

1
Звичайно, я трохи схилив тут правила. Спочатку я збирався багато визначень, тому я вибрав слово "finder" (оскільки воно містить майже ті ж літери, що і "визначити").
maxdefolsch

9
використовувати макроси не дуже добре. якщо це дозволено, ви можете сказати n = 6 і скласти це з наступним:"-Dfinder=main(){puts(it's defined as a thing that can find other things);}" -Dinderf=; -Dnderfi=; -Dderfin=; -Derfind=; -Dnderfi=;
bebe

Правильно, я навіть про це не думав.
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"."

Приклад вомбату, закодований в GolfScript. Вихід є

Cute short-legged Australian marsupials.

як зазначено у питанні. Цікава частина полягає в тому, що ви можете використовувати більшість слів і відповідей і просто вставляти відповідні літери в рішення, доки ви не створюєте вбудований GolfScript, який є дуже рідкісним p, nбудучи очевидним. Усі інші комбінації призводять до дійсних змінних GolfScript, які за замовчуванням не мають опор.


Тому я здогадуюсь, що це можна значно скоротити за допомогою розумної фрази, яка використовує багато літер із цього слова.
Мартін Ендер

@ MartinBüttner Я намагався, але 36 символів роблять це досить важко.
Говард

Я використовував ваш підхід для подання "квадратних" (див. Нижче). Це насправді один символ, більший за ваш, але при певному зміщенні навколо нього можливо стиснути його.
Мартін Ендер

18

Befunge-98 (n = 12)

Я вибрав кельвін, тому що він був у ньому. Виходиkelvin 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

на жаль, Si tempна 29 символів не вистачає 36;)
Мартін Ендер

Схоже, щоразу, коли я публікую повідомлення в Befunge-93, хтось звертається за аналогічним рішенням Befunge-98 ...
Zaq

@Zaq не хвилюйся, -93 все одно веселіше.
seequ

У рядку 2 немає i.
Схизм

Також у рядку 4 відсутня а, kа у колонці 9 відсутня ан e.
Схизм

11

Пітон, n = 15

Слово - "каное"

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

Вихід:

Secret weapon of the Canadian navy

Це 16x15!
Розкол

Дякую ... я в якийсь момент зробив облік і відчув необхідність додати canoesтуди єдиний рядок . Виправлено.
Геррат

10

Perl - повторити - 11

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

Вихід:

repeat
repeat
repeat
repeat
...keeps going

Озираючись назад, можливо, я мав би зробити цю петлю.


12
Не вистачає слова, яке не потребує повторних букв .
Говард

3
@Howard Є щонайменше 2 eна рядок, хоча я подумав, що міг би також розмістити його.
hmatt1

6

Рубін , haters, N = 10

Після годин спроб вручну, написання генераторної програми та налаштування параметрів, я нарешті знайшов рішення для N = 10!

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

Виводи Haters nurse hate in hardest hearts., рівно 36 символів. Спробуйте в Інтернеті!

Я вибрав Ruby, оскільки його змінним не потрібен $( Perl ), а рядки з одним котируванням можуть містити нові рядки ( Python ). Те, що trметод використовує два листи мого слова, було несподіваним бонусом. Ядро програми просто:

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

Збирати всі листи до лінійки, звичайно, було не просто. Я переглянув кілька варіантів однієї структури та дізнався кілька речей про Ruby в процесі ( trне потрібні дужки, і ?\sце ще один спосіб отримання пробілу). Було багато тупиків і кілька помилкових позитивних результатів. А далі ... успіх!

Ось суть моєї злому програми генератора, якщо когось цікавить.


5

Гольфскрипт (n = 10)

Мій перший голфскрипт! Це друкуєkelvin 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

Що означає "lowe"?
aditsu

1
Dictionary.com говорить, що це може означати низький
waylon531

Це стосується лише дієслова, що означає: спалити; спалах / (від людини) відчувати сильні емоції; світиться від хвилювання. Я не бачу, як це працює тут.
aditsu

Подивіться на цитату в правому верхньому куті сторінки
waylon531

1
Вибачте, але "lowe" трохи надто незрозумілий. Я прийму це, якщо ви зможете зробити його "низьким" або "нижчим".
Захоплення Кальвіна

5

GolfScript, 13x13

Не найменший ...

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

... але ...

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

(Обрив рядків у словах навмисний, тому що в іншому випадку я маю пробіли або пробіли, які будуть виглядати менш квадратними.)


4

Пітон, N = 11

Слово - "батьківський". Цей код не дуже гарний, але він працює.

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

Вихід: parent: a person that made a person

Редагувати: Я якось пропустив той факт, що стовпці також повинні містити слово. Зрештою, мова, яка включає символи кінцевих ліній як частину мови, не дуже підходить до цієї загадки.


4
Приємно, але не кожен стовпець містить слово parent. Перший, наприклад, не має a.
ProgramFOX

2
Це ще не вистачає купки. pвідсутня у 6 та 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.
Схизм

2

Піп , n = 14 (неконкурентоспроможний)

Мова новітня, ніж питання. Слово є 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"  :)

Виводить таке (правда, неповне) визначення:

quines print quines, хто друкує quines, хто друкує quines, який друкує quines, який друкує quines, який друкує quines, який друкує quines, який друкує quines, який друкує quines, який друкує quines, який друкує quines, який друкує quines, який друкує quines, які друкують quines, які друкують quines, які друкують quines, які друкують quines

Спробуйте в Інтернеті!

Значуща частина коду працює таким чином:

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

Решта коду - довільна відсутність операцій. Основна складність у розділах "наповнювача" ніколи не була в оцінці q, оскільки вона запропонує користувачеві ввести рядок введення (це не проблема в TIO, але я хотів зробити це правильним у всіх середовищах). Я використовував логічні оператори короткого замикання |і &, і трійковий ?, щоб запобігти qоцінці.

1 Dictionary.com має запис для quine , внизу - розділ про значення програмування. Оскільки «quine» - це іменний іменник, я б заперечував, що «quines» - це дійсне слово.


1

Javascript, N = 8

Моє слово - оповіщення .

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

Мій код виводить визначення функції попередження javascript кілька разів. Визначенням Javascript-сповіщення є "функція alar (({рідний код]}").

Лише перші три рядки коду фактично сприяють виводу. Останні 5 рядків - це синтаксичні помилки, але в початкових правилах зазначено, що не весь код повинен виконуватися до тих пір, поки вихід правильний.

Ось посилання на скрипку: http://jsfiddle.net/tze76pum/


1
Гарна, але не зовсім поширена англійська.
Захоплення Кальвіна
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.