Bana bir tuğla duvar yap!


73

Meydan okuma

Bir tuğla duvar inşa etmek için yardıma ihtiyacım var! Giriş yapmadan benim için bazı kodları bir araya getirin ve aşağıda gösterilen aşağıdaki çıkış duvarını oluşturun:

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

Şimdi, bu duvar tam olarak 10yüksek 70karakterler ve geniş karakterler.

Yukarıda belirtildiği gibi giriş yok, sadece kod var. En az bayt, bu tuğla duvarı verimli bir şekilde inşa etmek zorundayız. Açıkçası, bu program duvar inşa etmek için işlev görmek zorunda ..? ya da belli ki kendini inşa etmeyecek! İyi şanslar!


kazanan

Kazanan , tüm baytları gerektiren dili kullanarak Marinus'a gidiyor ! https://codegolf.stackexchange.com/a/99028/61857APL12


Katıldığınız için herkese teşekkürler!



8
Ayrıca İlgili. (bu bugün gelmesi garip, haha)
Conor O'Brien 18

1
Bu iyi. Çalışan bir tercümanım olduğunda size haber vereceğim. Şu an üzerinde çalışıyorum, aslında :)
ETHproductions 10:16


30
Bonus puanlar için Meksika'nın ücretini ödeyin.
Dawood ibn Kareem

Yanıtlar:


46

APL, 12 bayt

10 70⍴'_|__'

Çıktı:

      10 70⍴'_|__'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

1
J cevabımı yazarken bu cevabı fark ettim. temelde aynı hahalar
Conor O'Brien

2
Bu, ascii duvarına ek olarak başka bir şey çıkarır. Buna izin var mı?
Buffer Over

tryapl.org'u kullanırken duvar çıktısını aldım. @BitByte'yi ne aldın?
FivePixels

4
@Dylan Cevaplayıcı APL'nin REPL'in doğasını bilmeden programı çıktıya dahil ettiğinden muhtemelen kafası karışmıştır.
Conor O'Brien,

191

Trumpscript , 303 285 244 231 226 bayt

make i 1000005-1000000
as long as,i;:
make i,i - fact;
say "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
say "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"!
America is great

Bunun neredeyse her şeyin bir çalışma programında derlenemediği en ayrıntılı dillerden biri olduğunu söylemek isterim.

Görünüşe göre, -bunun yerine işler minustamamen tercümana kalmış ve bazen işe yarıyor. Bu sefer yaptım, golf gibi koyacağım.

Kötüye kullanımı Trumpscript Python ile yazılmış ve bu nedenle factbir tamsayı olarak kullanıldığında gerçeği kötüye kullanıyor .

Golf ipuçları hoş geldiniz.


48
Anladım, Trumpscript 1.000.000'den az sayılara izin vermiyor mu? ;-)
ETHproductions

3
haklısın.
Blue

2
Eğer kullanabilir i is 1000005-1000000ve i is i-fact? (Sadece Trumpscript'in benioku belgesine bir göz atın.)
AlexRacer

19
Kullanmanıza izin vermesine şaşırdım 1000000. Belgeleme durumları All numbers must be strictly greater than 1 million. The small stuff is inconsequential to us..
Mad Fizikçi

9
Factve lies(ve diğer gerçeği / yanlış sabitleri) simgelileştirme sırasında flop (tersine) çevirmek için rastgele, zaman bazlı şansı o çalışmaz gibiydi neden olabilir (tokenizer.py, arama flip_flop bakınız) minus, gerçekten bunu yapmak zorunda ile factzaman içinde bu noktada
pinkfloydx33

20

J, 12 bayt

10 70$'_|__'

Sağdaki dizgiyi 10 x 70 şeklinde biçimlendirir. Basit!


18

BBC BASIC, 28 bayt

Tokenised dosya boyutu 23 bayt.

WIDTH70P.STRING$(175,"_|__")

WIDTH70normalde bir newline izlerdi. Alan genişliğini 70 değerine ayarlar. Ardından etrafa sarılan ipin 175 kopyasını basarız.


2
Gördüğüm WIDTH en iyi (ab) kullanımı :)
ElPedro

Bu başlıkta "23 bayt" olmalıdır.
Ad

@ Adám Yalnızca belirtilmiş sürüm cevap olarak kaydedildiyse.
ErikE

17

Brainfuck, 171 bayt

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

Brainfuck eğlenceli, işte benim gönderim.

İşte çıktı:

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

İşte denemek için bir link

https://repl.it/EW2Z/0


16

WinDbg, 45 bayt

f2000000 L2bc 5f 7c 5f 5f;da/c46 2000000 L2bc

Nasıl çalışır:

f 2000000 L2bc 5f 7c 5f 5f; *Repeat the pattern _|__ (5F 7C 5F 5F) to fill 2BC (700) bytes 
                            *starting at 2000000
da /c46 2000000 L2bc        *Show 2BC (700) ASCII chars starting from 2000000 in lines 
                            *of length 0x46 (70)

Çıktı:

0:000> f2000000 L2bc 5f 7c 5f 5f;da/c46 2000000 L2bc
Filled 0x2bc bytes
02000000  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
02000046  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
0200008c  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
020000d2  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
02000118  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
0200015e  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
020001a4  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
020001ea  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"
02000230  "_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|"
02000276  "___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__"

10

Pyth, 12 bayt

Kod:

jcT*175"_|__

Açıklama:

       "_|__    # For the string "_|__"
   *175         # Repeat it 175 times
 cT             # Chop into 10 equal pieces
j               # Join them by newlines

Burada dene .


10

Python 2, 37 bayt

s="_|__"*17;print(s+"_|\n__%s\n"%s)*5

İki satırı 17 kopya _|__, artı bir yeni satır tarafından kesilen başka bir kopya, artı 17 yeni kopya ve bir başka yeni satır olarak ayrıştırır .

Daha uzun alternatifler:

print"%s_|\n__%s\n"%(2*("_|__"*17,))*5

s="_|__"*17;print"%s_|\n__%%s\n"%s%s*5

for i in[0,2]*5:print("_|__"*18)[i:i+70]

print("_|__"*17+"_|\n"+"___|"*17+"__\n")*5

for s in["_|__","___|"]*5:print(s*18)[:70]

s="_|__"*99;exec"print s[:70];s=s[2:];"*10

print("%s"*70+"\n")*10%(175*tuple("_|__"))

Son alternatifiniz print(("%s"*70+"\n")*10%(175*(*"_|__",)))Python 3'teki gibi daha kısa .
mbomb007 20

8

05AB1E , 13 bayt

Kod:

"_|__"175×Tä»

Açıklama:

"_|__"         # For the string "_|__"
      175×     # Repeat that 175 times
          Tä   # Split into 10 even pieces
            »  # And join them by newlines

CP-1252 kodlamasını kullanır . Çevrimiçi deneyin!


7

PHP, 44 42 41 karakter

<?=chunk_split(str_pad(_,700,"|___"),70);

(Sadece daha chunk_split()önce kullanma şansım olmadığından .)

Sayesinde:

Örnek çalışma:

bash-4.3$ php <<< '<?=chunk_split(str_pad(_,700,"|___"),70);'
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

bayt, karakter sayımı değil.
FivePixels,

2
Aynı. Çok baytlı karakter kullanmıyorum.
Manatwork


2
@pajonk, PPCG ile düzeltildi - Makinemdeki 44 kullanıcı stilini geçti: i.stack.imgur.com/czn5h.png
manatwork

Bir bayt'ı büyük ölçüde kullanmak str_padyerine str_repeat, çünkü _değeri sabit olan bir işlem olarak kaydedebilirsiniz _.
user59178

7

Vim, 30 24 19 tuş vuruşlarını

18a___|<esc>YP2x}h.yk4P

Değerli tuş vuruşlarını kaydettiğiniz için DrMcMoylex ve nmjcman101'e teşekkürler!


1
Güzel cevap, siteye hoş geldiniz! Bazı ipuçları: 1) abir sayım alır, böylece 18a___|<esc>makroyu yapmak yerine yapabilirdiniz . 2) <cr>normal modda eşdeğerdir j0, böylece ikinci makronuzdan bir bayt alabilir.
DJMcMayhem

Harika, ipuçları için teşekkürler!
karpfen

1
Çözümünüzü eğlence için biraz golf oynadım. Duvarı kopyala / yapıştırmadan önce biçimlendirmek, makro yapmamaktaki tüm baytları kaydeder: 18a___|<esc>YP2x}h.yk5P19 bayttır.
nmjcman101

Güzel, cevabı güncelleyeceğim! Sadece sondan ikinci anahtarı 4 ile değiştireceğim, aksi takdirde duvar çok
yükselir

6

Perl, 47 34 29 bayt

$_="_|__"x175;say for/.{70}/g

29'a kadar golf yapabilirsiniz:say for("_|__"x175)=~/.{70}/g
Dada 18

Bazı nedenlerden dolayı, her denediğimde hiç çıktı üretmiyordu, ama ben de çok sayıda baytta başka bir çözüm buldum. Yine de teşekkürler!
Gabriel Benamy

Peki, önerdiğim kod geçerli bir çıktı veriyor ... Belki de parantezi "_|__"x175veya bunun gibi bir şeyi unuttun ?
Dada

Sanırım olan bu. Parantezlerin bir yere gitmesi gerektiğini düşündüm, nerede olduğunu
çözemedim

Huhu, her operatörün önceliğini hatırlamak zor ( =~öncekinden daha yüksek önceliğe sahip x)!
Dada

5

Perl, 31 bayt

say+($@="_|__"x17,"_|
__$@
")x5

-EÇalıştırmak için bayrağa ihtiyacınız olacak:

perl -E 'say+($@="_|__"x17,"_|
__$@
")x5'

29 byte için biraz farklı bir yaklaşımın düşüncesi: say for("_|__"x175)=~/.{70}/g:). Orada çalıştığın numarayı sevdim!
Dom Hastings,

@DomHastings huhu, Gabriel Benamy'nin cevabının yorumlarına aynı kodu yazdım!
Dada

D'oh! Bunu görmedim! Ayrıca daha sonra diğer cevaplarda çokça kullanıldığını gördüm .
Dom Hastings,

); Ben sonra cevabımı güncelleme vermedi yüzden bu yüzden @DomHastings Evet, ben ilk başta bunu düşünmemiştim vermedi ve Gabriel'in cevap zaten
Dada

5

V , 24 , 16 bayt

175i_|__ò70|lé

Çevrimiçi deneyin! Bu <esc>karakterler ( 0x1B) içerir, bu yüzden burada bir hexdump:

0000000: 3137 3569 5f7c 5f5f 1bf2 3730 7c6c e90a  175i_|__..70|l..

Jordan sayesinde dolaylı olarak 8 bayt kurtarıldı!


19 bayt: v.tryitonline.net/… Yine de V belgelerinde belirtilen.\{-} kısayolun nasıl kullanılacağını çözemedim .
Jordan

@ Jordan Vay, çok güzel! \{-}İçinde numarayı değiştiremezsiniz çünkü kısayol zaten işe yaramaz. Ancak, yüksek bit ayarlayabilirsiniz \{almak için bu yerine. Bunu cevap olarak göndermek için çekinmeyin.
DJMcMayhem

Ah, bu mantıklı. Burada yayınlanan: codegolf.stackexchange.com/a/99070/11261
Ürdün

Kahretsin, hala bu dili
okutmaya

5

V , 18 bayt

DJMcMayhem sayesinde -1 bayt.

175i_|__<Esc>Ó.û70}/°ò

İşte xxd formatında yazdırılamayan karakterlerle:

0000000: 3137 3569 5f7c 5f5f 1bd3 2efb 3730 7d2f  175i_|__....70}/
0000010: b0f2                                     ..

Çevrimiçi deneyin!


Güzel, artık V kullanan tek kişi ben değilim! Şimdi geri dönüp
başlayamayacağımı

5

MATL, 15 bayt

'_|__'700:)70e!

Tabii ki, çevrimiçi deneyebilirsiniz! Açıklama:

'_|__' % Put a brick on the stack
700    % 700 times
:)     % Makes a happy mason...
70e!   % Secret freemason code

Tamam, aslında, aşağıdaki gibi çalışır:

'_|__' % Put the first bit of the string on the stack
700:   % Put 1, 2, ..., 700 on the stack as array
)      % Index into the string, modularly. Result: '_|___|__ ... __'
70e    % Reshape into 70 rows (and consequently, 10 columns)
!      % Transpose to get the desired output.

Aferin! Ve
gülüşün

@ LouisMendo Gerçekten, suratlar kullanarak MATL bir tasarım deseni olarak kabul edilebilir. xD Belki :)üstünde C... olabilirdi ama bu son 1-byte kod C
puanınız

Surattan kurtulmak istiyor musun? :-P
Luis Mendo,

5

Python 2, 46 44 Bayt

Sadece dize oluşturmak için dize çarpma kullanmak ve doğru bitleri elde etmek için dilimleme :)

k='_|__'*18
print'\n'.join([k[:70],k[2:]]*5)

İki bayt kaydettiği için Antony Hatchkins'e teşekkürler :)


2 bayt daha az olabilir:print'\n'.join([k[:70],k[2:]]*5)
Antony Hatchkins

@AntonyHatchkins Teşekkürler!
Kade

4

PowerShell V2 +, 34 , 30 bayt

'_|__'*175-split"(.{70})"-ne''

Aptal regex eşleştirme algoritması gerektiren -ne''... beş bayt israf!

'_|__'*175-split"(.{70})"-ne''
'_|__'*175                     # Repeat this string 175 times
          -split"       "      # Split on this regex pattern:
                  .{70}        # Match any character 70 times
                 (     )       # Encapsulated in parens so we keep the regex results
                         -ne'' # But don't select the empty strings
                               # Output with newlines via Write-Output is implicit

Conor sayesinde 4 bayt kaydedildi!


Misiniz .{70}teh ifadeler için herhangi kısalacaktır?
Conor O'Brien,

splitDiğer dillerde de böyle çalışır - istediğiniz kısmı olsun olmasın, daima eşsiz kısımları elde edersiniz. Bazı dillerin matchyalnızca eşleşen sonuçlardan oluşan bir dizi döndürmek için kullanılabilecek bir işleci var, ancak bunun için bir PowerShell göremiyorum.
Neil

@Neil Performing 'abc'-split'(.)'geri dönecek ('','a','','b','','c',''). Eşleşecek hiçbir şey yok, ancak algoritmanın giriş dizgisinde nasıl işlediğinden dolayı, boş dizeleri geri alırsınız. Buraya bakınız .
AdmBorkBork

Evet ve diyorum ki, bu sonuçtan şaşırmamalısınız, çünkü bölünmenin yapması gereken şey bu.
Neil

@Neil Sürpriz mi? Hayır gerçek değil. Bu benim mutlu olmam gerektiği anlamına gelmez. : D
AdmBorkBork

4

C, 131 115 113 103 97 95 Bayt

i,j;main(){for(;i<10;puts(i++&1?"|__":"|"))for(j=0;j<18-(i&1);printf(&"|___"[j++?0:i&1?1:3]));}

Bunu golf oynamaya başlama zamanı ...

_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__

3

Jöle , 14 bayt

“_|__”ṁ700s70Y

TryItOnline!

Nasıl?

“_|__”ṁ700s70Y - Main link: no arguments
“_|__”         - literal ['_','|','_','_']
      ṁ700     - mould like something 700 long
          s70  - split into chunks of length 70
             Y - join with line feeds

1
Tanım olarak, jöle J uzun olamaz
ADAM

Tuhaf bir şey olmadan benzer bir şey yaptım : “_|__”ẋ175œs⁵Y(14 bytes)
Outgolfer Erik



3

Javascript REPL, 45 bayt

"_|__".repeat(175).match(/.{70}/g).join("\n")

1
PPCG'ye Hoşgeldiniz! Bu, etkileşimli konsol ortamının dışında hiçbir şey basmadığından, "JavaScript REPL" veya benzeri olarak işaretlenmelidir.
Martin Ender

1
Bu 45 bayt değil mi?
saat

@daHugLenny haklısın, ben tek bir bayt olarak saydım
Juan Tonina

console.log nerede?
kardeo

1
ES6 kullandığınız sürece (öyle olduğunu düşünüyorum) şablon dizgilerini kullanabilirsiniz, böylece join("\n")<backtick> <literal newline> <backtick>
Stephen

3

JavaScript (ES6), 48 bayt

f=(n=350)=>n?(n%35?'_':`
_`)+"|_"[n%2]+f(n-1):""

Çünkü özyineleme.


3

Bash, 44, 41 , 40 bayt

printf _\|__%.0s {1..175}|egrep -o .{70}

Printf, 700 karakter uzunluğunda tek bir satır yapar, egrep bir kerede 70 karakterle eşleşir.




2

Pyke, 12 bayt

w�"_|__"*TfX

hazır bilgi baytı 163 nerede .

Burada dene! ( w�değişmez ile değiştirildi)


2

Yakut, 30 bayt

Bu çözüm için manatwork sayesinde

puts ("_|__"*175).scan /.{70}/

Ruby, 39 bayt

10.times{|i|puts ("_|__"*18)[i%2*2,70]}

2
Üretmek Tüm-sonra-ayırma yaklaşımı, burada kısa da geçerli: puts ("_|__"*175).scan /.{70}/.
Manatwork

@ manatwork çok teşekkürler! scanRegex'ler ile o kadar rahat olmadığım için kullanmayı nadiren düşünüyorum . Bunu kendi cevabınız olarak göndermiş olabileceğinizi biliyorsunuz ...
Level River St

2

Haskell'in 56 47 bayt

unlines$[1..5]>>take 70.cycle<$>["_|__","___|"]
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.