首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >天然原木上的蚂蚁

天然原木上的蚂蚁
EN

Code Golf用户
提问于 2017-04-21 18:54:41
回答 5查看 967关注 0票数 24

这是一个很好的初学者挑战,也是一个很好的时间杀手。

我只是说一个自然日志,因为标题太短,这与对数无关。

给定两个变量:

  • 蚂蚁的数量n
  • 日志w的宽度。

输出宽度为wn ants日志(示例显示w=3n=6)

代码语言:javascript
运行
复制
|             |
| \O/ \O/ \O/ |
| -O- -O- -O- |
| /o\ /o\ /o\ |
|  ^   ^   ^  |
|             |
| \O/ \O/ \O/ |
| -O- -O- -O- |
| /o\ /o\ /o\ |
|  ^   ^   ^  |
|             |

一只蚂蚁看起来是这样的:

代码语言:javascript
运行
复制
\O/ # Upper-case O
-O- # Upper-case O
/o\ # Lower-case o
 ^  

几个蚂蚁定律:

  1. 蚂蚁可能不会彼此接触,也不会直接接触原木的边缘,它们更喜欢接触空间。
  2. 每一行蚂蚁必须是w宽的,有n/w行的蚂蚁。
  3. 蚂蚁总是需要一个日志,日志宽度大于0,保证。
  4. 蚂蚁也..。嗯,需要蚂蚁,蚂蚁的数量大于0,保证。
  5. 蚂蚁也非常有条理,他们会从左到右,从上到下填一根木头,就像在看书一样。

Ant-xamples

w=3,n=5

代码语言:javascript
运行
复制
|             |
| \O/ \O/ \O/ |
| -O- -O- -O- |
| /o\ /o\ /o\ |
|  ^   ^   ^  |
|             |
| \O/ \O/     |
| -O- -O-     |
| /o\ /o\     |
|  ^   ^      |
|             |

w=1,n=1

代码语言:javascript
运行
复制
|     |
| \O/ |
| -O- |
| /o\ |
|  ^  |
|     |

w=1,n=3

代码语言:javascript
运行
复制
|     |
| \O/ |
| -O- |
| /o\ |
|  ^  |
|     |
| \O/ |
| -O- |
| /o\ |
|  ^  |
|     |
| \O/ |
| -O- |
| /o\ |
|  ^  |
|     |

这是密码-高尔夫,拥有最小字节的人获胜。

EN

回答 5

Code Golf用户

发布于 2017-04-22 02:14:56

Python 2,144个字节

代码语言:javascript
运行
复制
n,w=input()
s=' ';k='|';a=k+s*w*4+s+k;print a
while n>0:
 for i in['\\O/','-O-','/o\\',' ^ ']:print k+s+(i+s)*min(w,n)+s*4*(w-n)+k
 n-=w;print a

在网上试试!

票数 5
EN

Code Golf用户

发布于 2017-04-21 20:54:21

05AB1E,47字节

代码语言:javascript
运行
复制
"   \O/-O-/o\ ^ "5äðìI.D)IôvyøJ'|ì})˜¬¸«.B„ |«»

在网上试试!

解释

代码语言:javascript
运行
复制
"   \O/-O-/o\ ^ "                                # push the ant-string
                 5ä                              # split into 5 parts
                   ðì                            # prepend a space to each
                     I.D                         # copy input-1 number of times
                        )                        # wrap in a list
                         Iô                      # split into parts each the size of input-2
                           v                     # for each row of ants
                            yø                   # zip, so body parts are on the same row
                              J'|ì               # join to string and prepend a pipe to each
                                  }              # end loop
                                   )˜            # wrap in a flattened list
                                     ¬¸«         # append a copy of the first row (spaces)
                                        .B       # pad rows to equal length with spaces
                                          „ |«   # append " |" to each row
                                              »  # merge on newlines
票数 4
EN

Code Golf用户

发布于 2017-04-24 06:00:20

Mathematica 210 Bytes

代码语言:javascript
运行
复制
StringRiffle[If[#2==c||#2==1,"|",If[r-#1<6&>2+4 (a+w-h w),Table[" ",5,4],Characters@"    \\O/ -O- /o\\  ^  "~Partition~4][[1+Mod[#1-1,5],1+Mod[#2+1,4]]]]&~Array~{r=5(h=⌈(a=#)/(w=#2)⌉)+1,c=4w+3},"\n",""]&

我想我需要一个基于数学的高尔夫语言。

票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/117268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档