ลองทำลูกบาศก์!


16

ตามนี้ทำให้ฉันเป็นรูปสี่เหลี่ยมจัตุรัส!

คุณต้องแสดงผลลัพธ์นี้:

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

โดยที่ "#" ถูกแทนที่ด้วยอินพุต

หากคุณป้อน "A" คุณควรจะได้รับ

  AAAA
 A A A
AAA  A
A A A
AAAA

หากคุณป้อน "&" คุณควรได้รับ

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

ลีดเดอร์บอร์ด

นี่คือตัวอย่างข้อมูลเพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา


5
ถึงอย่างนี้ก็ค่อนข้างคล้ายกัน แต่อย่างน้อยก็ไม่ใช่คำตอบแบบ 3 ไบต์ใน Charcoal ในครั้งนี้ ...
Neil

1
สองบรรทัดสุดท้ายมีช่องว่างนำหน้าและผลลัพธ์สามารถมีบรรทัดใหม่นำหน้าได้หรือไม่
dzaima

3
B³S‖O↗มันอาจจะใกล้เคียงกับคำตอบ 10 ไบต์ในถ่านแม้ว่า ... ฉันแค่ไม่รู้ภาษาที่ดีพอที่จะทำมันต้องมีหน้าเช่นนี้แต่สำหรับถ่าน
Magic Octopus Urn

5
@AAlex Sandbox
xnor

6
ฉันไม่เห็นว่านี่จะเป็นดักแด้ของสี่เหลี่ยมจัตุรัสอย่างไร
Luis Mendo

คำตอบ:


19

แครอท 31 ไบต์

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

#s ถูกแทนที่ด้วยอินพุต

โดยทั่วไปพอร์ตของคำตอบนี้กับปัญหานี้


40
ที่ดูเหมือนว่ามันใช้เวลาหลายชั่วโมงในการกอล์ฟ ...
Cyoce

@KritixiLithos 200 ตัวแทนเพราะคุณสร้างภาษาที่เจ๋ง ๆ มันดูไม่ยุติธรรมเท่าไหร่ xD
Stephen

13

05AB1E , 16 15 ไบต์

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

ลองออนไลน์!

คำอธิบาย

ð‚                # 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
คุณสามารถเข้ารหัสบรรทัดใหม่ภายในรายการ / หมายเลขเพื่อบันทึก 3 ไบต์ล่าสุดได้หรือไม่
ร็อด

@Rod ที่ต้องการเป็นจำนวนมากมีขนาดใหญ่, 6 ไบต์อย่างน้อยที่สุดบวกไบต์พิเศษหรือสองจะรวมถึงการขึ้นบรรทัดใหม่ในรายการ ...
ETHproductions

@Rod: คุณสามารถทำอะไรเช่นนี้ น่าเสียดายที่มันดูออกมาอีกหน่อย ความคิดที่ดีแม้ว่า
Emigna

1
•nxвΛ•bTRð¹ì‡6ô»... คุณเต้นทับศัพท์เพียงเล็กน้อยเนื่องจากข้อกำหนดในการสั่งซื้อ ถ้าฉันสามารถหาวิธีที่จะรับอินพุตโดยนัยและสร้างสตริง01ใน 1 ไบต์นี่จะเป็นวิธีแก้ปัญหา 13/14 ไบต์
Magic Octopus Urn

1
@carusocomputing •nxвΛ•bT𹫇6ô»หรือð«T•nxвΛ•br‡6ô»มีความยาวเท่ากัน
Emigna

10

Cubix , 62 ไบต์

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

ลองออนไลน์! และดูล่าม!

มันพอดีกับ 4-cube:

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

ฉันไม่ค่อยถนัดเรื่องทิศทางของตัวชี้คำสั่งดังนั้นฉันจะพยายามต่อไปและเล่นกอล์ฟนี้ ทั้งคำตอบของฉันและที่นี่จะขึ้นอยู่กับ "Hello, World! ' ตัวอย่างโปรแกรมที่ใช้./v.o;@?/(บน 3 คิวบ์) เพื่อพิมพ์ซ้ำและป๊อปอัพอักขระบนสแต็กดังนั้นส่วนที่เหลือของรหัสจะกดอักขระลงบนสแต็กในลำดับที่ถูกต้อง

ตอนนี้ฉันสร้างลูกบาศก์บนลูกบาศก์เพื่อให้ฉันสามารถพักผ่อนได้ง่าย (และทำงานจริงของฉัน)


9

SOGL , 13 10 ไบต์

Βū&⁵'r⁹‘6n

คำอธิบาย:

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

1
การนั่งที่ 0 เป็นอย่างไร? อาจเป็นเพราะขาด TIO ._ +1
Magic Octopus Urn

ฉันคิดว่าจะมีอีกสักพัก (หวังว่า) จะมีการอัปเดตมากกว่าหนึ่งครั้งแล้วฉันจะคิดถึงบางสิ่งที่กำลังออนไลน์
dzaima

6
ลูกชายของภาษากอล์ฟ?
ประโยชน์ทับซ้อน

@ETHproductions lol
dzaima

ภาษาการเล่นกอล์ฟของ String Oriented
a'_ '23

9

MATL , 13 10 ไบต์

ขอบคุณ Conor O'Brien สำหรับการลบ 3 ไบต์และสำหรับการแสดงให้ฉันเห็นว่าสามารถใช้ unprintables ใน Octave ได้

รหัสประกอบด้วยอักขระที่ไม่สามารถพิมพ์ได้ ลองออนไลน์!

คำอธิบาย

'....'   % 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

คุณสามารถทำ 10 ไบต์นี้ถ้าคุณโอเคกับ unprintables ลองออนไลน์!
Conor O'Brien

@ ConorO'Brien เฮ้ขอบคุณ! ฉันไม่แน่ใจว่าอ็อกเทฟก็โอเคกับสิ่งเหล่านั้น ... เจ้าพิมพ์มันได้อย่างไร?
Luis Mendo

echo 0f15392a3c|xxd -r -p|clipดีฉันตรงไปตรงมาผมเอาตัวเลขที่พวกเขาจะแปลงเลขฐานสิบหกแล้วได้ บน windows clipคือคลิปบอร์ด จากนั้นฉันก็เพียงแค่วางพวกเขา: P (หากคุณอยู่ในบรรทัดคำสั่งก็^O^Uเช่นกัน)
Conor โอไบรอัน

@ ConorO'Brien นั่นเป็นวิธีที่เหนือหัวของฉัน คุณควรโพสต์สิ่งนั้นตามคำตอบของคุณ
Luis Mendo

มันใช้กลยุทธ์เดียวกับที่คุณทำเพียงแค่ลบโมดูโล 64 โดยการใช้ค่าโดยตรง
Conor O'Brien


6

Japt , 20 ไบต์

"OUyj|"®c ¤Åd0S1U +R

ทดสอบออนไลน์!

ไม่เลวเกินไปสำหรับภาษาที่ไม่มีการบีบอัดในตัว (ดียกเว้นการบีบอัดสตริงของตัวอักษรตัวเล็ก) ...

คำอธิบาย

ในไบนารีตัวอักษรห้าตัวในสตริงคือ:

O 1001111
U 1010101
y 1111001
j 1101010
| 1111100

ฝานเริ่มต้น1จากแต่ละและคุณจะได้รับรูปแบบสำหรับก้อน

"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

ฉันลองใช้วิธีที่ใช้แม่แบบ ( llสามารถบีบอัดได้) แต่ก็ยาวกว่า 11 ไบต์
ลุ

ดี ฉันลดลงเหลือ 23 ไบต์ก่อนที่ฉันจะรู้ตัวว่าทำลูกบอลไปเลย!
Shaggy

6

LOLCODE, 202 170 ไบต์

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 ไม่มากนัก ...

ชุดนี้ตัวแปรcเข้าไปในการป้อนข้อมูลและสร้างสตริงที่ตัดแบ่งขนาดใหญ่รวมถึงการขึ้น:)บรรทัดใหม่ เกี่ยวกับมัน.


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

นอกจากนี้ยังมีการVISIBLEเชื่อมต่อโดยปริยายดังนั้นคุณสามารถลบSMOOSH tio.run/nexus/lolcode#@@/…
eush77

สิ่งแรกของคุณมีล่ามบางตัวที่ไม่ต้องการ HAI หรือ KTHXBYE เช่น REPL.it ถึงสิ่งที่สองของคุณขอบคุณ!
OldBunny2800



5

Z80 Assembly, รหัสเครื่อง 37 ไบต์

สมมติว่าหน่วยความจำที่แมปอุปกรณ์ I / O:

; อย่าป้อนช่องว่างมิเช่นนั้นจะเข้าสู่พื้นที่การพิมพ์วนซ้ำและการขึ้นบรรทัดใหม่!

3A xx xx ld a, (อินพุต); รับตัวอักษร
11 0A 20 ld de, 200ah; พื้นที่ & ขึ้นบรรทัดใหม่
21 yy yy ld hl, เอาท์พุท; รับที่อยู่เอาท์พุท
4F ld c, a; ใส่ตัวละครในค
ห่วง:
72 ld (hl), d; พื้นที่ส่งออก * 2 | อักขระเอาท์พุท * 2
72 ld (hl), d
77 ld (hl), a; อักขระเอาท์พุท ตัวละครออก
71 ld (hl), c; อักขระเอาท์พุท * 2 | พื้นที่ส่งออก * 2
71 ld (hl), c
77 ld (hl), a; อักขระเอาท์พุท ตัวละครออก
73 ld (hl), e; ขึ้นบรรทัดใหม่ ขึ้นบรรทัดใหม่
72 ld (hl), d; พื้นที่เอาท์พุท ตัวละครออก
71 ld (hl), c; อักขระเอาท์พุท พื้นที่ส่งออก
72 ld (hl), d; พื้นที่เอาท์พุท ตัวละครออก
71 ld (hl), c; อักขระเอาท์พุท พื้นที่ส่งออก
72 ld (hl), d; พื้นที่เอาท์พุท ตัวละครออก
B9 cp c; ตั้งค่าสถานะศูนย์ครั้งที่ 1 | ล้างครั้งที่ 2
20 06 jr nz, สิ้นสุด; ข้ามไปยังจุดสิ้นสุด
77 ld (hl), a; ตัวละครออก
73 ld (hl), e; ขึ้นบรรทัดใหม่
4A ld c, d; ใส่พื้นที่ใน c
57 ld d, a; ใส่ตัวละครใน d
28 FB jr z, ลูป; วนซ้ำเป็นครั้งที่สอง
สิ้นสุด:
73 ld (hl), e; ขึ้นบรรทัดใหม่
77 ld (hl), a; อักขระเอาท์พุท * 4
77 ld (hl), a
77 ld (hl), a
77 ld (hl), a
76 หยุด หรือ C9 ret


4

PHP, 72 ไบต์

ฉันทำสิ่งนี้เพื่อความสนุกของมันเนื่องจากมีคำตอบ PHP ที่ดีกว่าอยู่แล้ว

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

ก้อนจะถูกวาดขึ้นโดยได้รับค่าไบนารีของ64349871, '00'ตัดแบ่งโดย
สิ่งนี้จะคืนค่าต่อไปนี้:

0011110101011110011010101111

ตัวละครทุกตัวที่ 6 ฉันกำลังแสดงบรรทัดใหม่ทำให้เกิดสิ่งนี้:

001111
010101
111001
101010
1111

และแทนที่จะแสดง0ก็จะแสดงช่องว่างซึ่งจะมีลักษณะดังนี้:

  1111
 1 1 1
111  1
1 1 1 
1111

4

ถ่าน , 17 16 ไบต์

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

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด นานกว่าที่ฉันต้องการให้เป็นเพราะ "คิวบ์" กว้างกว่าเล็กน้อยหรือสูง โชคดีที่บางตัวละครหลายทิศทางทำงานกับ PolygonHollow ซึ่งช่วยฉัน 3 ไบต์ แก้ไข: บันทึกเพิ่มเติมอีกหนึ่งไบต์โดยใช้ + แทน T ↑ คำอธิบาย:

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

ในช่วงเวลาของความท้าทายqตัวแปรไม่ทำงานในโหมด verbose มิฉะนั้นฉันสามารถสร้างรุ่น 14 ไบต์นี้:

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

ลองออนไลน์!


3

ซ้อนกัน , 31 ไบต์

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

ลองออนไลน์!

นี่คือ 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#

สิ่งนี้จะแปลงอาเรย์ตัวละครเป็นไบนารี่เพิ่มแผ่นแต่ละแถวให้มีความยาว6และจัดทำดัชนีตามสตริง' ' input +



2

JS (ES6), 64 60 52 ไบต์

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

สามารถปรับปรุงได้:

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

1
y=i+i+i+iสั้นกว่าy=i.repeat(4)
Stephen

2
... และ####สั้นกว่านี้อีก
Arnauld

1
ที่จริงแล้วสิ่งทั้งหมดนั้นสั้นลงโดยไม่มีแม่แบบ: Fiddle
Stephen

1

C (gcc) , 90 84 ไบต์

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

ลองออนไลน์!กำหนดฟังก์ชั่นที่ใช้ตัวอักษรf gการเข้ารหัสตารางที่สั้นเกินไปนั้นสั้นเกินไป ...

รุ่นเก่า 90 ไบต์

(ยังคงพยายามที่จะเล่นกอล์ฟนี้)

พยายามที่จะมีเพียงหนึ่งเดียวputcharแต่ idk มี unprintables ดังนั้นนี่คือ 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);}

สิ่งนี้เข้ารหัสคิวบ์ลงในตารางการค้นหาไบนารีโดยที่1บิตแทนค่าอินพุตและ0บิตแทนพื้นที่ลองออนไลน์!


สามารถโกนไม่กี่ไบต์ออก81 ไบต์
Gastropner

unprintables หนึ่งสามารถบีบ73 ไบต์
Gastropner


1

Swift - 82 ไบต์ + ฐานราก (18 ไบต์)?

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

โดยค่าเริ่มต้นโครงการ Xcode-Swift มีWhole-Module Optimizationดังนั้นจึงimport Foundationไม่จำเป็นสำหรับฟังก์ชั่นแลมบ์ดาแบบนี้ อย่างไรก็ตามการรันในสภาพแวดล้อมออนไลน์นั้นต้องการซึ่งอาจเพิ่ม 18 ไบต์

ลองดูสิ!



0

CJam, 23 ไบต์

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

ฉันรู้สึกเหมือนฉันยังสามารถเล่นกอล์ฟนี้ได้

"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 ไบต์

เข้ารหัสลำดับค่อนข้างโดยตรงด้วยการเพิ่มประสิทธิภาพย่อย:

8224PdPdPdPdP10Pd8192+ddPPP10PdPdPdP8224PdP10Pd256*32+ddPPP10PdPdPdPdP

ลองออนไลน์!


นำไปสู่จุดสูงสุด (ไม่มากนัก) 145 ไบต์:

27065671941896667324298575455432398417474802390765222440949482848513*56759961956005660143530475805610581704254588701249011343446231795984498688+P

ลองออนไลน์!

คำนวณนี้A*x+Bที่Aถอดรหัสตำแหน่งของตัวท่านและBถอดรหัสส่วนที่เหลือทั้งหมด:

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 คำสั่งพิมพ์หมายเลขผลลัพธ์เป็นสตรีมไบต์



0

แบตช์ Windows ขนาด 79 ไบต์

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

ถ่านพิเศษ ปลอดภัย 97 ไบต์:

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

คุณสามารถใช้ตัวดึงข้อมูลบรรทัดคือ.. %1%1%1%1\n %1 %1 %1...
TheLethalCoder

ไม่รองรับการป้อนบรรทัดในชุด
stevefestl

ผมจำไม่ได้ว่าพวกเขาเป็นหรือไม่และไม่ได้อยู่ในฐานะที่จะทดสอบ :)
TheLethalCoder

ขออภัยฉันสับสนคุณสามารถทำซ้ำได้ไหม
stevefestl

I couldn't remember if you could use them or not and I couldn't test at the time I commented so I left the comment so you would still have the idea
TheLethalCoder

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.