Küp yapmaya çalışın!


16

Buna dayanarak: Bana bir kare yap!

Bunun çıktısını almanız gerekir:

  ####
 # # #
###  #
# # #
####

Burada "#" girdi ile değiştirilir.

"A" girerseniz,

  AAAA
 A A A
AAA  A
A A A
AAAA

"&" Girerseniz,

  &&&&
 & & &
&&&  &
& & &
&&&&

Liderler Sıralaması

İşte hem düzenli bir skor tablosu hem de kazananları dile göre gözden geçirmek için bir Yığın Parçacığı.


5
Bu biraz benzer, ancak en azından bu sefer Charcoal'da 3 baytlık bir cevap değil ...
Neil

1
Son iki satırın önde gelen boşlukları olabilir ve sonuçta satırbaşları olabilir mi?
dzaima

3
B³S‖O↗çok iyi yakın bir 10 bayt cevap kömür içinde sadece yapmak için yeterince iyi dil bilmiyorum gerçi ... olabilir, gerçekten bir sayfa olması gerekir böyle ama kömür için.
Sihirli Ahtapot Urn

5
Alex Sandbox
xnor

6
Bunun nasıl kare bir dupe olduğunu görmüyorum
Luis Mendo

Yanıtlar:


19

Havuç , 31 bayt

  ####
 # # #
###  #
# # #
####

#s, giriş ile değiştirilir.

Temelde bir liman bu sorunun bu soruna.


40
golf
oynamak

@KritixiLithos 200 rep çünkü havalı bir dil yarattın, bu adil görünmüyor xD
Stephen

13

05AB1E , 16 15 bayt

ð‚•nxвΛ•2вèJ6ô»

Çevrimiçi deneyin!

açıklama

ð‚                # push the list [<input>,<space>]
  •nxвΛ•          # push the number 816342339
        2в        # convert to list of base 2 digits
          è       # index into the the 2-char string with this list
           J      # join to string
            6ô    # split into pieces of length 6
              »   # join on newlines

1
Son 3 baytı kaydetmek için yeni satırı liste / sayı içinde kodlayabilir misiniz?
Çubuk

@ Çubuk Çok daha büyük bir sayı, en azından 6 bayt, artı yeni satırı listeye dahil etmek için fazladan bir veya iki bayt
olurdu

@Rod: Sen gibi bir şey yapabileceğini bu . Ne yazık ki bu biraz daha uzun çıkıyor. İyi fikir olsa.
Emigna

1
•nxвΛ•bTRð¹ì‡6ô»... seninki sadece sipariş gerekliliklerinden ötürü hafifçe harf çevirisi yapıyor; dolaylı olarak girdi almak ve dizeyi 011 bayt içinde oluşturmak için bir yol bulabilirdim , bu 13/14 baytlık bir çözüm olacaktır.
Sihirli Ahtapot Urn

1
@ carusocomputing •nxвΛ•bT𹫇6ô»veya ð«T•nxвΛ•br‡6ô»aynı uzunluktadır.
Emigna

10

Cubix , 62 bayt

./v<.o;.@?/;w.w;i:::::NrSs::SrSuUS::sN::rS:r:srNr:SrSsNs:::SSv

Çevrimiçi deneyin! ve tercümanı izle!

Bu 4 küp üzerine sığar:

        . / v <
        . o ; .
        @ ? / ;
        . . w ;
i : : : : : N r S s : : S r S u
U S : : s N : : r S : r : s r N
r : S r S s N s : : : S S v . .
. . . . . . . . . . . . . . . .
        . . . .
        . . . .
        . . . .
        . . . .

Talimat işaretçisinin yönünü manipüle etmede çok iyi değilim, bu yüzden bunu denemeye ve golf oynamaya devam edeceğim. Hem bu ve cevabım burada "Merhaba, Dünya dayanmaktadır!' ./v.o;@?/Yığın üzerindeki karakterleri özyinelemeli olarak yazdırmak ve patlatmak için (3 küpte) kullanarak örnek program , böylece kodun geri kalanı karakterleri yığının üzerine doğru sırada itiyor.

Şimdi bir küp üzerinde bir küp yaptım, bu yüzden kolay dinlenebiliyorum (ve gerçek çalışmamı yapıyorum).


9

SOGL , 13 10 bayt

Βū&⁵'r⁹‘6n

Açıklama:

Βū&⁵'r⁹‘    push "  ŗŗŗŗ ŗ ŗ ŗŗŗŗ  ŗŗ ŗ ŗ ŗŗŗŗ", where "ŗ" is replaced with input
        6n  split into lines of length 6

1
Bu nasıl 0'da oturuyor? Muhtemelen bir TIO ._ eksikliği nedeniyle. +1
Sihirli Ahtapot Urn

Sanırım (umarım) en fazla 1 güncelleme daha kırılmaya
başlayacak

6
Golf Dili Oğlu?
ETHproductions 19:17

@ETHproductions lol
dzaima

Yaylı Golf Dili

9

MATL , 13 10 bayt

Conor O'Brien'a 3 baytın kaldırılması ve Octave'de yazdırılamazların kullanılabileceğini göstermek için teşekkürler.

Kod yazdırılamaz karakterler içeriyor. Çevrimiçi deneyin!

açıklama

'....'   % Push 5-char string (contains unprintables). Each char encodes a row
         % of the desired pattern
B        % Convert to binary. Gives a 5×6 binary matrix with the pattern
*        % Implicit input. Multiply element-wise (converts input to ASCII code)
c        % Convert to char. Implicitly display. Char 0 is shown as space

Yazdırılamaz durumdaysa bu 10 baytı yapabilirsiniz. Çevrimiçi deneyin!
Conor O'Brien

@ ConorO'Brien Hey, teşekkürler! Octave'nin bunlarla iyi olduğundan emin değildim ... onları nasıl yazdın?
Luis Mendo

Dürüst olmak gerekirse, sayıları aldım, onaltılı hale getirdim, sonra yaptım echo 0f15392a3c|xxd -r -p|clip. Windows'da clippano var. Sonra onları yapıştırdım: P (Eğer bir komut satırındaysanız, ^O^Uaynı zamanda)
Conor O'Brien

@ ConorO'Brien Bu kafamın üzerinde. Bunu gerçekten cevabınız olarak göndermelisiniz
Luis Mendo

Sizinkiyle aynı taktiği kullanır, sadece değerleri doğrudan kullanarak modulo 64'e olan ihtiyacı ortadan kaldırır.
Conor O'Brien


6

Japt , 20 bayt

"OUyj|"®c ¤Åd0S1U +R

Çevrimiçi test edin!

Yerleşik sıkıştırması olmayan bir dil için çok kötü değil (küçük harflerin dizelerini sıkıştırmak dışında) ...

açıklama

İkilide, dizedeki beş karakter şunlardır:

O 1001111
U 1010101
y 1111001
j 1101010
| 1111100

İlkinden 1her birini dilimleyin ve küpün desenini alın.

"OUyj|"®   c ¤  Å  d0S1U +R
"OUyj|"mZ{Zc s2 s1 d0S1U +R}  // Expanded
                              // Implicit: U = input string
"OUyj|"mZ{                 }  // Replace each character Z in this string with this function:
          Zc                  //   Take the char-code of Z.
             s2               //   Convert to a binary string.
                s1            //   Slice off the first character (always a "1").
                   d0S1U      //   Replace "0"s with spaces and "1"s with the input.
                         +R   //   Append a newline.
                              // Implicit: output result of last expression

Şablon tabanlı bir yaklaşım denedim ( llsıkıştırılabilir), ancak 11 bayt daha uzun.
Luke

Güzel. Bir top yaptığımı fark etmeden önce 23 bayta düştüm!
Shaggy

6

LOLCODE, 202 170 bayt

I HAS A c
GIMMEH c
VISIBLE"  "AN c AN c AN c AN c AN":) "AN c AN" "AN c AN" "AN c AN":)"AN c AN c AN c AN"  "AN c AN":)"AN c AN" "AN c AN" "AN c AN":)"AN c AN c AN c AN c

LOLCODE, golf için çok fazla ...

Bu, değişkeni cgirdiye ayarlar ve :)yeni satırlar dahil dev bir birleştirilmiş dize oluşturur . Bu kadar.


expected HAI at: I tio.run/nexus/…
eush77

Ayrıca, VISIBLEörtük olarak bitiştirir, böylece SMOOSH tio.run/nexus/lolcode#@@/…
eush77

İlk olarak, HAI veya KTHXBYE gerektirmeyen bazı tercümanlar vardır, örneğin REPL.it. İkinci şey için, teşekkür ederim!
OldBunny2800

5

Sed, 40 karakter

s/./  &&&&\
 & & &\
&&&  &\
& & &\
&&&&/

Meydan okuma tanımı olarak neredeyse hile neredeyse kelimenin tam anlamıyla içeriyordu.

Örnek çalışma:

bash-4.4$ sed 's/./  &&&&\
 & & &\
&&&  &\
& & &\
&&&&/' <<< 'C'
  CCCC
 C C C
CCC  C
C C C
CCCC

Çevrimiçi deneyin!



5

Z80 Meclisi, 37 bayt makine kodu

Bellek eşlemeli bir G / Ç cihazı olduğunu varsayın:

; BİR ALAN GİRMEYİN yoksa sonsuz döngü yazdırma alanlarına ve satırsonlarına geçecektir!

3A xx xx ld a, (giriş); giriş karakteri al
11AA 20 ld de, 200ah; alan ve satırsonu
21 yy yy ld hl, çıktı; çıktı adresini al
4F ld c, a; karakteri c'ye koy
loop:
72 ld (hl), d; çıkış alanı * 2 | çıkış karakteri * 2
72 ld (hl), d
77 ld (hl), a; çıkış karakteri | çıktı karakteri
71 ld (hl), c; çıkış karakteri * 2 | çıkış alanı * 2
71 ld (hl), c
77 ld (hl), a; çıkış karakteri | çıktı karakteri
73 ld (hl), e; çıktı satırsonu | çıktı satırsonu
72 ld (hl), d; çıktı alanı | çıktı karakteri
71 ld (hl), c; çıkış karakteri | çıktı alanı
72 ld (hl), d; çıktı alanı | çıktı karakteri
71 ld (hl), c; çıkış karakteri | çıktı alanı
72 ld (hl), d; çıktı alanı | çıktı karakteri
B9 cpc; sıfır bayrağını ilk kez ayarla | açık 2. kez
20 06 jr nz, son; sona atla
77 ld (hl), a; çıktı karakteri
73 ld (hl), e; çıktı satırsonu
4A ld c, d; c'ye yer aç
57 ld d, a; karakteri d ye koy
28 FB jr z, döngü; 2. kez döngü
son:
73 ld (hl), e; çıktı satırsonu
77 ld (hl), a; çıkış karakteri * 4
77 ld (hl), bir
77 ld (hl), bir
77 ld (hl), bir
76 duruş; veya C9 ret

4

V , 27 bayt

4äl2>>Äyvho3pÄÙ3älWx<<3Îd^

Çevrimiçi deneyin!

HexDump:

00000000: 34e4 6c32 3e3e c479 7668 6f1b 3370 c4d9  4.l2>>.yvho.3p..
00000010: 33e4 6c57 783c 3c33 ce64 5e              3.lWx<<3.d^

Oldukça değiştirmek eminim o<esc>sadece birlikteï
Kritixi Lithos

4

PHP, 72 bayt

Zaten daha iyi bir PHP cevabı olduğu için bunu sadece eğlence için yaptım.

for($i=0;$i<27;)echo('00'.decbin(64349871))[$i]?$argn:' ',++$i%6?'':'
';

Küp, ikili değeri 64349871alınarak birleştirilerek çizilir '00'.
Bu, aşağıdakileri döndürür:

0011110101011110011010101111

Her 6 karakterde bir satırsonu çıkarıyorum, bununla sonuçlanıyorum:

001111
010101
111001
101010
1111

Ve görüntülemek yerine 0, aşağıdaki gibi görünecek bir alan görüntüler:

  1111
 1 1 1
111  1
1 1 1 
1111

4

Kömür , 17 16 bayt

SβGH7+↗→³β→G↓↙³β

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı versiyonudur. İstediğimden daha uzun, çünkü "küp" uzun veya derin olandan biraz daha geniş. Neyse ki bazı çok yönlü karakterler 3 baytlık tasarruf sağlayan PolygonHollow ile çalışıyor. Düzenleme: T instead yerine + kullanarak başka bir bayt kaydetti. Açıklama:

Sβ          Input the character
GH7+↗→³β    Draw the left half. 7 becomes ←↙ and + becomes →↓←↑.
→           Move right one character.
G↓↙³β       Draw the right half.

Meydan okuma sırasında, qdeğişken ayrıntılı modda çalışmadı, aksi takdirde bu 14 baytlık sürümü yaratabilirdim:

GH7+↗→³θ→G↓↙³θ

Çevrimiçi deneyin!


3

Yığılmış , 31 bayt

' '\+$'9*<'#.2 tb[6 dpad]map#

Çevrimiçi deneyin!

İşte bir hexdump:

λ xxd try-to-make-a-cube.stk
00000000: 2720 275c 2b24 270f 1539 2a3c 2723 2e32  ' '\+$'..9*<'#.2
00000010: 2074 625b 3620 6470 6164 5d6d 6170 23     tb[6 dpad]map#

Bu, bir karakter dizisini ikiliye dönüştürür, her satırı uzunluğa doldurur 6ve dizeye göre dizine ekler' ' input +



2

JS (ES6), 64 60 52 bayt

i=>`  ####
 # # #
###  #
# # #
####`.replace(/#/g,i)

Bu geliştirilebilir mi:

i=>`  ${y=i+i+i+i}
 # # #
###  #
# # #
${y}`.replace(/#/g,i)

1
y=i+i+i+idaha kısadıry=i.repeat(4)
Stephen

2
... ve ####daha da kısadır.
Arnauld

1
Aslında her şey şablonlar olmadan daha kısadır: Fiddle
Stephen

1

C (gcc) , 90 84 bayt

i;v;f(g){for(i=32;i--;)putchar((v="####*@#@#@#*#@@###*#@#@#@*####@@"[i])&1?g:v-32);}

Çevrimiçi deneyin!fKarakter alan bir işlevi tanımlar g. Tabloyu doğrudan kodlamak çok kötü daha kısa ...

Eski sürüm, 90 bayt

(Hala bunu golf yapmaya çalışıyorum)

Sadece tek putchar, ama idk sahibi olmaya çalışıyorum . Yazdırılamazlar var, işte hexdump:

λ xxd try-to-make-a-cube.c
00000000: 693b 6a3b 6628 6729 7b63 6861 722a 6b3d  i;j;f(g){char*k=
00000010: 220f 1539 2a3c 223b 666f 7228 693d 303b  "..9*<";for(i=0;
00000020: 693c 353b 7075 7463 6861 7228 3130 292c  i<5;putchar(10),
00000030: 692b 2b29 666f 7228 6a3d 3332 3b6a 3b6a  i++)for(j=32;j;j
00000040: 2f3d 3229 7075 7463 6861 7228 6b5b 695d  /=2)putchar(k[i]
00000050: 266a 3f67 3a33 3229 3b7d                 &j?g:32);}

Bu, küpü bir 1bitin girişi temsil ettiği ve bir 0bitin bir boşluğu temsil ettiği bir ikili arama tablosuna kodlar . Çevrimiçi deneyin!


81 bayt için birkaç bayt tıraş edebilir .
gastropner

Yazdırılamaz olanı 73 bayta kadar sıkıştırabilir .
gastropner

1

Brain-Flak , 217 bayt

(((((((((((((((((({}))))<([][]()())>)<(([][])[]{}())>)<(([][]){})>)<([])>)<(((()
())[][]{}()()))>)))<((()()()()()){})>)<(((()()()){}){}()[])>)<(((()()())()){}{}[
])>)<(((()()())){}{}[])((()()()()()){})>))))(([]()()()))

Çevrimiçi deneyin!

Waaaaay çok uzun.


1

Swift - 82 bayt + Fondöten (18 bayt)?

var f={"  ####\n # # #\n###  #\n# # #\n####".replacingOccurrences(of:"#",with:$0)}

Varsayılan olarak, Xcode-Swift projelerinde vardır Whole-Module Optimization, bu nedenle import Foundationbu basit lambda benzeri işlev için gerekli değildir. Bununla birlikte, çevrimiçi ortamlarda çalıştırmak için 18 bayt ekleyebilmesi gerekir.

Bunu kontrol et!



0

CJam, 23 bayt

"pjFUC"{i2b(;}%rS+ff=N*

Bunu hala golf oynayabileceğimi hissediyorum.

"pjFUC" e# String literal:          │ "pjFUC"
{       e# For each:                │ 'p
  i     e#   Get code point:        │ 112
  2b    e#   To binary:             │ [1 1 1 0 0 0 0]
  (;    e#   Delete first:          │ [1 1 0 0 0 0]
}%      e# End                      │ [[1 1 0 0 0 0] [1 0 1 0 1 0] [0 0 0 1 1 0] [0 1 0 1 0 1] [0 0 0 0 1 1]]
r       e# Read token:              │ [[1 1 0 0 0 0] [1 0 1 0 1 0] [0 0 0 1 1 0] [0 1 0 1 0 1] [0 0 0 0 1 1]] "&"
S       e# Push space:              │ [[1 1 0 0 0 0] [1 0 1 0 1 0] [0 0 0 1 1 0] [0 1 0 1 0 1] [0 0 0 0 1 1]] "&" " "
+       e# Concatenate:             │ [[1 1 0 0 0 0] [1 0 1 0 1 0] [0 0 0 1 1 0] [0 1 0 1 0 1] [0 0 0 0 1 1]] "& "
ff=     e# Vectorized array lookup: │ ["  &&&&" " & & &" "&&&  &" "& & & " "&&&&  "]
N*      e# Join with newlines       │ "  &&&&
        e#                          │   & & &
        e#                          │  &&&  &
        e#                          │  & & & 
        e#                          │  &&&&  "
e# Implicit output

0

dc , 70 bayt

Küçük optimizasyonla sekansı doğrudan kodlar:

8224PdPdPdPdP10Pd8192+ddPPP10PdPdPdP8224PdP10Pd256*32+ddPPP10PdPdPdPdP

Çevrimiçi deneyin!


Aşırı (çok golfçülemez) bir aşırı, 145 bayt:

27065671941896667324298575455432398417474802390765222440949482848513*56759961956005660143530475805610581704254588701249011343446231795984498688+P

Çevrimiçi deneyin!

Bu değerlerini hesaplar A*x+B, Agiriş karakteri ve kodlar pozisyonları Bkodlar her şey:

A = 256 0 + 256 1 + 256 2 + 256 3 + 256 5 + 256 7 + 256 9 + 256 11 + 256 14 + 256 15 + 256 16 + 256 18 + 256 20 + 256 22 + 256 25 + 256 26 + 256 27 + 256 28

B = 10 × 256 4 + 32 × 256 6 + 32 × 256 8 + 10 × 256 10 + 32 × 256 12 + 32 × 256 13 + 10 × 256 17 + 32 × 256 19 + 32 × 256 21 + 32 × 256 23 + 10 × 256 24 + 32 × 256 29 + 32 × 256 30

P komutu, elde edilen sayıyı bayt akışı olarak yazdırır.



0

Windows toplu iş, 79 bayt

@echo   %1%1%1%1
@echo  %1 %1 %1
@echo %1%1%1  %1
@echo %1 %1 %1
@echo %1%1%1%1

Özel karakter. güvenli, 97 bayt:

@echo   ^%1^%1^%1^%1
@echo  ^%1 ^%1 ^%1
@echo ^%1^%1^%1  ^%1
@echo ^%1 ^%1 ^%1
@echo ^%1^%1^%1^%1

Satır özet akışlarını kullanabilir misiniz.. %1%1%1%1\n %1 %1 %1...
TheLethalCoder

Satır feed'leri toplu olarak desteklenmiyor
stevefestl


Üzgünüm, kafam karıştı, tekrar edebilir misin?
stevefestl

Onları kullanmak ya da değil olup olmadığını hatırlayamadım ve ben yorum zaman o zaman bu yüzden hala fikir olurdu böylece yorum yaptı bu yüzden test olamazdı
TheLethalCoder

0

Tcl, 60 bayt

proc c x {regsub . $x "  &&&&\n & & &\n&&&  &\n& & &\n&&&&"}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.