尝试做一个立方体!


16

基于此:让我成为正方形!

您需要输出以下内容:

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

其中将“#”替换为输入。

如果输入“ A”,您应该得到

  AAAA
 A A A
AAA  A
A A A
AAAA

如果输入“&”,则应该得到

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

排行榜

这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。


5
好吧,这有点相似,尽管这次至少不是3字节的木炭答案了……
尼尔(Neil)

1
最后两行可以有前导空格吗,结果可以有前导新行吗?
dzaima '17

3
B³S‖O↗它可能很接近用木炭写的10个字节的答案...我只是不知道这种语言不够好,真的需要木炭这样的页面。
魔术章鱼缸

5
@AAlex Sandbox
xnor

6
我不明白这是怎么一个方形的欺骗
路易斯Mendo

Answers:


19

胡萝卜,31字节

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

#s被输入替换。

基本上这个答案的端口,这个问题的。


40
好像花了几个小时才能打高尔夫……
Cyoce '17

@KritixiLithos 200代表,因为您做了很酷的语言,xD似乎并不公平
Stephen

13

05AB1E16 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 '17

@Rod:你可以这样做。不幸的是,结果要更长一些。好主意。
Emigna '17

1
•nxвΛ•bTRð¹ì‡6ô»...由于订购要求,您的节拍略有音译;如果我能找到一种隐式获取输入并01以1字节生成字符串的方法,那将是13/14字节的解决方案。
魔术章鱼缸

1
@carusocomputing •nxвΛ•bT𹫇6ô»ð«T•nxвΛ•br‡6ô»长度相同。
艾米娜(Emigna)'17年

10

库比克斯,62字节

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

在线尝试!观看口译员!

这适合4个多维数据集:

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

我不太擅长操纵指令指针的方向,因此我将继续尝试并进行高尔夫球运动。无论这一点,我的答案在这里是基于“你好,世界!” 示例程序使用./v.o;@?/(在3个多维数据集上)递归地打印并弹出堆栈上的字符,因此其余代码只是按照正确的顺序将字符推入堆栈。

现在,我在一个立方体上制作了一个立方体,因此我可以轻松一点(并做我的实际工作)。


9

SOGL13个10 字节

Βū&⁵'r⁹‘6n

说明:

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

1
这怎么坐0?可能是由于缺少TIO ._。+1
魔术章鱼骨灰盒

我认为将会(希望)最多再有1个更新突破性的东西,然后我会考虑一些在线运行的东西
dzaima

6
高尔夫语言之子?
ETHproductions '17

@ETHproductions哈哈
dzaima '17

弦乐导向的高尔夫语言
凌晨

9

MATL13个10字节

感谢Conor O'Brien删除了3个字节,并向我展示了可以在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个字节。在线尝试!
科纳·奥布莱恩

@ ConorO'Brien嘿,谢谢!我不确定Octave可以和那些...好吗...您甚至怎么键入它们?
路易斯·门多

好吧,老实说,我拿了数字,将它们转换为十六进制,然后做了echo 0f15392a3c|xxd -r -p|clip。在Windows上clip是剪贴板。然后我就粘贴了它们:P(如果您在命令行^O^U中也是如此)
Conor O'Brien

@ ConorO'Brien那真是太过头了。您应该将其发布为答案
路易斯·门多

它使用与您相同的策略,只是通过直接使用这些值来消除对模64的需要。
科纳·奥布莱恩


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个字节,然后才意识到自己已经做好了!
毛茸茸的

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

Sed,40个字符

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

几乎是作弊,因为挑战说明几乎包含了所有内容。

样品运行:

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

在线尝试!



5

Z80汇编,37字节机器代码

假定一个内存映射的I / O设备:

; 不要输入空格,否则它将进入无限循环的打印空间和换行符!

3A xx xx ld a,(输入); 获取输入字符
11 0A 20 ld de,200ah; 空格和换行符
21 yy y ld hl,输出;获取输出地址
4F ld c,a; 将字符放在c中
环:
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; 设置零标志第一次 第二次清除
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),
77 ld(hl),
77 ld(hl),
76停顿; 或C9 ret

4

V,27字节

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

在线尝试!

十六进制转储:

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

我敢肯定,您可以o<esc>ï
Kritixi Lithos

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变量在详细模式下不起作用,否则我可以创建此14字节版本:

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

在线尝试!


3

堆叠,31字节

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

在线尝试!

这是一个十六进制转储:

λ 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#

这会将字符数组转换为二进制,将每一行填充为length 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+iy=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。有不可打印的内容,因此这里是十六进制转储:

λ 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

不可打印的文件可以压缩到73个字节
gastropner

1

Brain-Flak,217个字节

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

在线尝试!

Waaaaay时间太长。


1

Swift-82字节+基础(18字节)?

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

默认情况下,Xcode-Swift项目具有Whole-Module Optimization,因此import Foundation此简单的类似于lambda的函数不需要。但是,在联机环境中运行它需要它,这可能会增加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

直流电,70字节

稍加优化即可直接对序列进行编码:

8224PdPdPdPdP10Pd8192+ddPPP10PdPdPdP8224PdP10Pd256*32+ddPPP10PdPdPdPdP

在线尝试!


极端(不是很复杂),145个字节:

27065671941896667324298575455432398417474802390765222440949482848513*56759961956005660143530475805610581704254588701249011343446231795984498688+P

在线尝试!

这将计算A*x+B,其中A对输入字符的位置进行B编码,并对其余所有字符进行编码:

A = 2560 + 2561 + 2562 + 2563 + 2565 + 2567 + 2569 + 25611 + 25614 + 25615 + 25616 + 25618 + 25620 + 25622 + 25625 + 25626 + 25627 + 25628

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

Can you use line feeds i.e. .. %1%1%1%1\n %1 %1 %1...
TheLethalCoder

Line feeds are not supported in batch
stevefestl

I couldn't remember if they was or not and wasn't in a position to test :)
TheLethalCoder

Sorry, I'm confused, can you repeat?
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

0

Tcl, 60 bytes

proc c x {regsub . $x "  &&&&\n & & &\n&&&  &\n& & &\n&&&&"}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.