ASCII Rubik Küpü


12

Bu ve aşağıdaki sohbetten ilham alındı :

İlham

Göreviniz aşağıdakilerin çıktısını almaktır:

   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/

Küpün görünümünü değiştirmediği sürece ekstra öndeki veya sondaki boşluklara izin verilir. Her zamanki gibi, bir işlevden yukarı veya dizelerin bir listesini döndürmeye izin verilir.

Bu , bayt en kısa cevap kazanır!



3
İlişkili. (Bunun yanı sıra, daha teğetsel olarak, "elmas fayans" için arama yaparken bulabileceğiniz diğer birkaç zorluk.)
Martin Ender

7
Sandbox'ta 10 saat (özellikle sadece bir oylama ile) yeterli değildir. En az 48 saat beklemenizi tavsiye ederim.
Dada

9
Downvote'umu açıklamak için: Meydan okumayı gerçekten sevmiyorum, çünkü görüntü alanın çoğunu alıyor ve komik bir görüntü göstermeye çalışmaktan daha iyi bir meydan okuma yapmaktan daha fazla olduğunu hissediyorum. (resimdeki ile aynı değil) (ve bunun sadece resme güldü insanlardan bazı upvotes çekeceğinden eminim). Ayrıca, bundan daha fazla veya daha az görünen bir dize ile "bu tam dize çıktı" birkaç kez yapılmıştır ve meydan okuma ilginç olacak kadar farklı olduğunu göremiyorum.
Dada

4
@StephenS +1 verdim, ancak herhangi bir KC mücadelesi için aynı şeyi söyleyebileceğinize katılmıyorum, bir KC mücadelesi yaptığımda deseni biraz karmaşık hale getireceğimden emin olun (böylece kömür sadece otomatik kazanmaz), döngüleri daha iyi işleyebilen dillerin bir şansı var (JS gibi) ve bazı dillerin alfabe gibi yerleşik olabileceği şeyleri kullanmaya çalışıyorum, KC zorlukları çok farklı ve hepsinin aynı olduğunu söylemeye çalışmak bir şey alıyor kategoriden uzakta.
LiefdeWen

Yanıtlar:



11

Odun kömürü , 28 23 bayt

F³⁺⁺×\_³×\/⁻³ι¶ ‖M↑×_ ³

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı versiyonudur. Çok Kömür değil-y biliyorum. ‖M↓İmleci kasten hareket ettirdiğinin farkında değildim, bu yüzden başlangıçta F³«P⁺×/_³×/\⁻³ι↗»‖M↓×_ ³hangisinin işe yaramadığını denedim , çünkü baş aşağı yapmaya çalışıyordum. Daha fazla Charcoal-y istiyorsanız G↗³←⁶↘³/\¶\/G↖³←⁷↘³_\¶\_↘‖M↑×_ ³32 byte için deneyin : Online deneyin!


6

Sakız , 35 bayt

00000000: 5350 5088 0741 2e05 05fd 7830 8ce1 82b3  SPP..A....x0....
00000010: 806c 0413 c889 8907 4330 8f4b 01c1 036a  .l......C0.K...j
00000020: 8671 00                                  .q.

Çevrimiçi deneyin!


5
outgolfed içinde sakız 😲
Uriel

5

> <> , 97 94 93 89 bayt

">knknknk//>k>knknknk/>k>k>knknknkk>k>k>n>n>n>k>k>n>n>n>/k>n>n>n>//n/n/n///"01.
of-

Çevrimiçi deneyin!

Edit 3: "" (ascii 25) karakterini kullanabileceğinizi anladım - Artık işlem her yığın öğesinden 15 tane alıyor ve yazdırıyor. Ayrıca ekstra yön talimatları kaldırıldı ve hepsi 1 hareketle (01.) değiştirildi



4

Kuyruk, 99 bayt

#!/bin/tail -n+2
    _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/

1
PPCG'ye Hoşgeldiniz!
Stephen

Veya #!/bin/sed 1dvaryant
sch

4

Python 3 , 98 94 bayt

@KevinCruijssen bunu önerdi ...

@HyperNeutrino ve @WheatWizard sayesinde -4 bayt

Çıkış Hardcoding çözümü:

print(r"""   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/""")

Çevrimiçi deneyin!

veya 98 bayt:

print("   _ _ _\n  /_/_/_/\\\n /_/_/_/\/\\\n/_/_/_/\/\/\\\n\_\_\_\/\/\/\n \_\_\_\/\/\n  \_\_\_\/")

Çevrimiçi deneyin!


Python 3 , 139 bayt

Aptal Python 3 Hardcoding olmayan gönderme, golf oynayabileceğinden emin olun. Şaşırtıcı bir şekilde, iki fors'yi sadece bir döngüde sıkıştırmak daha uzun:

p=print;p(' '*3+"_ "*3)
for i in range(3):p(abs(2-i)*' '+'/_'*3+'/'+i*"\/"+'\\')
for i in range(3):p(i*' '+'\\_'*3+'\\'+"/\\"*abs(2-i)+'/')

Çevrimiçi deneyin!

Python 3 , 140 bayt

print(' '*3+"_ "*3,'\n'+'\n'.join(abs(2-i)*' '+'/_'*3+'/'+i*"\/"+'\\'if i<3else (i-3)*' '+'\\_'*3+'\\'+"/\\"*abs(i-5)+'/'for i in range(6)))

Çevrimiçi deneyin!


1
Hımm ... çıktıyı daha kısa kodlamıyor mu? Kaçan eğik çizgilerle bile , Java 8 / C # / JavaScript'te 112 bayt .
Kevin Cruijssen

@KevinCruijssen Aslında>. <... Aman tanrım ben çok aptalım
Bay Xcoder

1
Şimdi yapacak çok golf var ....
Bay Xcoder



3

Sakız , 42 bayt

0000: e0 00 4f 00   22 5d 00 10   68 13 e2 04   15 00 b7 11 │ à.O."]..h.â...·.
0010: 7a 0e c5 f5   30 27 b5 b3   3d 39 8f a6   1f f9 74 52 │ z.Åõ0'µ³=9.¦.ùtR
0020: c5 66 98 bd   bd 0a 9a 8d   44 00                     │ Åf.½½¶..D.

3

Java 8, 112 bayt

o->"   _ _ _\n  /_/_/_/\\\n /_/_/_/\\/\\\n/_/_/_/\\/\\/\\\n\\_\\_\\_\\/\\/\\/\n \\_\\_\\_\\/\\/\n  \\_\\_\\_\\/"

Sabit kodlanmış çıktı.

Burada deneyin.


Yanıtınıza JS ve C # sabit kodlu parçaları düzenleyebilir miyim?
LiefdeWen

Tamam, C # 'da verbatim değişmeziyle 5 bayt kaydedebilir o=>@"...ve ardından \ngerçek bir satırsonu ile değiştirebilirsiniz .
LiefdeWen

2

C #, 86 bayt

o=>@"   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/"

Burada deneyin.


Zorlayıcı. Biraz daha küçük bir toplam boyut (üstbilgi + altbilgi + kodu) bulundu, ancak daha küçük üstbilgi / altbilgiyi sizinkinden biraz daha büyük ana için değiştirir: Çevrimiçi deneyin!
Mark Rejhon

@MarkRejhon Maalesef varsayılan program veya işlevle birlikte sayan ana bölümdür. ;) o=>{} Eklendiğinde durumunuzda 98 bayt olur .
Kevin Cruijssen

2

Retina , 59 bayt


   _¶  /_/\¶ /_/V\¶/_/VV\¶\_VVV¶ \_VV¶  \_V
._
$&$&$&
V
\/

Çevrimiçi deneyin! Açıklama: İlk aşama basitçe aşağıdakileri oluşturur:

   _
  /_/\
 /_/V\
/_/VV\
\_VVV
 \_VV
  \_V

Daha sonra ikinci aşama, tüm _s'leri ve önceki karakteri 3 kez tekrarlayarak genişletir , üçüncü aşama ise Vs'yi s'ye dönüştürür \/.



2

05AB1E , 34 31 bayt

„_ 3×Âð'/:3F„/\«∞2ä`RˆD}\)¯R«.c

Çevrimiçi deneyin!

açıklama

„_ 3×             # push the string "_ _ _ "
     Â            # push a reversed copy
      ð'/:        # replace spaces with slashes
3F                # 3 times do
  „/\«            # append "/\"
      ∞           # mirror
       2ä`        # split into 2 separate parts on stack
         Rˆ       # reverse the second part and push to global list
           D      # duplicate the remaining part
            }     # end loop
\)                # discard the last copy and wrap stack in a string
  ¯R              # push the global list and reverse it
    «             # append to the rest of the list
     .c           # pad lines to equal length

Alternatif 31 bayt çözümü

„ _3×3FDð'/:„/\«∞2ä`R.Á})ÀÀÀ.c¦

ÀÀÀBu alternatif versiyonda [O_O"]...
Sihirli Ahtapot Urn

@MagicOctopusUrn: Evet ... Yapmak ya da etrafta dolaşmak için daha kısa bir yol bulamadım: P
Emigna

1
Aynı fikirdeyim, ben de denemek için birkaç dakika geçirdim; xD görebilmemin bir yolu yok.
Sihirli Ahtapot Urn

2

CSS 225 223 bayt

Stephen S sayesinde -2 bayt, fazladan boşluk kaldırıldı

Bunun önemli olup olmadığından emin değilim çünkü CSS gerçekten bir programlama dili değil, ancak <html>eğer yoksa, otomatik olarak oluşturulduğu için CSS teknik olarak bağımsız olabilir .

html:after{content:'   _ _ _ \A   /_/_/_/\005c\A  /_/_/_/\005c/\005c \A /_/_/_/\005c/\005c/\005c \A \005c_\005c_\005c_\005c/\005c/\005c/ \A  \005c_\005c_\005c_\005c/\005c\/\A   \005c_\005c_\005c_\005c /';white-space: pre;}

Ve burada tek aralıklı yazı tipine sahip bir sürüm, 247 246 bayt .

Stephen S sayesinde -1 bayt, fazladan boşluk kaldırıldı

html:after{font-family:'Courier';content:'   _ _ _ \A   /_/_/_/\005c\A  /_/_/_/\005c/\005c \A /_/_/_/\005c/\005c/\005c \A \005c_\005c_\005c_\005c/\005c/\005c/ \A  \005c_\005c_\005c_\005c/\005c\/\A   \005c_\005c_\005c_\005c /';white-space: pre;}


Sanırım CSS'de :s ve {}s çevresindeki bazı boşlukları silebilirsiniz
Stephen

2

05AB1E , 35 32 31 bayt

"/ _\"•₁7æ¤ÝI}?ÕR&Ü•4вè4ôJ€∞ø¨»

Çevrimiçi deneyin!

Emigna'dan% 100 farklı yöntem.


Düzenleme: Zaten aktarılmış desen ile başlarsam 3 bayt kesebilir.


"/ _\"            # Push ASCII-art characters used.
•₁7æ¤ÝI}?ÕR&Ü•4в  # Push transposed version of base-4 pattern.
è                 # Replace all digits in base-4 number with appropriate symbol.
 4ô               # Split into groups of 4.
   J              # Join together.
    €∞            # Mirror each row (technically column).
      ø           # Transpose back.
       ¨»         # Remove the extra "_ _ _", and print with newlines.

1

JavaScript (ES6), 95 bayt

_=>String.raw`   _ _ _
  /_/_/_/\
 /_/_/_/\/\
/_/_/_/\/\/\
\_\_\_\/\/\/
 \_\_\_\/\/
  \_\_\_\/`

JavaScript (ES6), 103 94 bayt

@Shaggy sayesinde -9 bayt

_=>`   _ _ _
  ${a=`/_/_/_/\\`}
 ${a}/\\
${a}/\\/\\
${b=`\\_\\_\\_\\/`}\\/\\/
 ${b}\\/
  ${b}`

JavaScript (ES6), 106 bayt

_=>`   _ _ _
  /_/_/_/\\
 /_/_/_/\\/\\
/_/_/_/\\/\\/\\
\\_\\_\\_\\/\\/\\/
 \\_\\_\\_\\/\\/
  \\_\\_\\_\\/`


@Shaggy duh, biliyordum, hatta son zamanlarda kullandım. Teşekkürler!
Stephen


@JoshuaBell bunu kendi cevabınız olarak yayınlamaktan çekinmeyin, bu kesinlikle benim golf değil :) (aynı zamanda çok ingenius)
Stephen

1

Yakut, 72 70 bayt

7.times{|i|puts' '*(j=i^i/4+3)+'_ \_/_'[-i/3*2,2]*3+'/\/'[i/4,2]*j^=3}

Son düzenleme: yerine \dizeleri ekleyerek çift ​​kaçının .''""

Ungolfed (Ruby negatif dize dizinlerindeki not etrafa sarılır. -1Son karakterdir.)

7.times{|i|                       #7 lines.
  puts" "*(j=i^i/4+3)+            #Print j= 3,2,1,0, 0,1,2 spaces.
      "_ \\_/_"[-i/3*2,2]*3+      #Print 3 repeats of 2 characters from the string, index 0,-2,-2,-2,-4,-4,-4.
      "/\\/"[i/4,2]*j^=3          #Print 2 characters from the string, /\ or \/, repeated 3^j times.
}

1

Windows Toplu İş, 122 bayt

@echo    _ _ _
@echo   /_/_/_/\
@echo  /_/_/_/\/\
@echo /_/_/_/\/\/\
@echo \_\_\_\/\/\/
@echo  \_\_\_\/\/
@echo   \_\_\_\/

Kendini açıklayan oldukça.


1

Brainf * ck 387 bayt

Bu hala bir şey olup olmadığından emin değilim ama sıkıldım ve sh * ts ve kıkırdama için yaptım :)

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

Edit: TIL: Ben çevrimiçi buldum bazı jeneratör 54.28% daha etkiliyim ^. ^

Edit2: Çevrimiçi deneyin Seçeneklerde Bellek taşması davranışı için Sarmanın açık olduğundan emin olun


1

COBOL, 238 bayt

Açık kobol ile derlenmiştir. Girinti, bu web sitesi bu şekilde biçimlendirilse bile boşluk değil tek bir sekme olduğunu unutmayın.

    IDENTIFICATION DIVISION.
    PROGRAM-ID. a.
    PROCEDURE DIVISION.
    DISPLAY "   _ _ _".
    DISPLAY "  /_/_/_/\".
    DISPLAY " /_/_/_/\/\".
    DISPLAY "/_/_/_/\/\/\".
    DISPLAY "\_\_\_\/\/\/".
    DISPLAY " \_\_\_\/\/".
    DISPLAY "  \_\_\_\/".
    STOP RUN.


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.