Questions tagged «ascii-art»

这项挑战涉及使用文本字符作为绘画来创建或解析图片。通常,它仅使用1963年ASCII标准定义的95个可打印字符(总共128个)。

5
是否有更多的硬物或软物
与假设分析书的开头相切。 输入是一个由空格组成的矩形,如字符串,字符串列表等,其对象由#内部组成: ######## # # ######## ### #### ### #### ### 对象将始终是非相交,非接触的矩形。软对象的定义是#中间没有用填充的对象,而只是边界,而硬对象则是填充的对象。具有宽度或高度的对象<=2被认为是坚硬的。所有对象都是硬的或软的。 如果输入,输出中有更多的硬对象"Hard",如果较软,则输出"Soft",如果相等则输出"Equal"。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 这些情况不是全部输入,而是每个对象应表征的内容。实际输入将类似于问题顶部的ascii艺术。 硬 # #### ## ## ########## ########## ########## 柔软的 ### # # ### ################### # # # # # # ################### #### # # # # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

19
让我们建立一个楼梯
对于初学者,我们没有足够(半)轻松的挑战。越来越多的简单方法已经被采用。因此,我试图提出一些初学者可能可以实现的目标,但这并不是重复的。 输入: 用您的OS换行符(即\r\n)分隔的单个字符串, 或包含多个字符串的数组。 输出- 楼梯: 删除所有非字母和非数字符号。所以剩下的就是[A-Za-z0-9]。然后“建楼梯”;基本上按长度排序,顶部最小,底部最大。 挑战规则: 当两个字符串的长度相等时,我们将它们彼此合并为一个大字符串(顺序无关紧要,因此可以是从第一到最后或从最后到第一,无论您喜欢哪两个)。 当合并的字符串再次具有相等的长度时,上述规则可以堆叠(请参见测试案例2)。 通用规则: 输入为STDIN,仅包含ASCII字符。输出为STDOUT。 输出的大小写必须与输入的大小写相同。 每个提交必须是能够编译和运行的完整程序,而不仅仅是方法/功能。编辑:我是新手,所以即使我自己更喜欢完整的程序,也许从现在开始使用默认值确实更好。对不起,每个人都已经发布了完整程序。随时进行编辑,下次我将尽量不更改挑战中的帖子。 这是代码高尔夫球,因此最短的答案以字节为单位。我可能会接受一年后最短的答案。 不要让代码高尔夫球的答案阻止您发布像C#之类的高尔夫非代码高尔夫球语言!尝试提出所有编程语言的最短答案。 随意使用比该问题更新的语言。 测试用例: 输入1: This is a sample text, that you will have to use to build stairs. The wood may be of excellent quality, or pretty crappy almost falling apart and filled with termites. …

3
圆上的文字
编写一个程序或函数,在具有最小可能半径的离散圆周围打印输入字符串。例如,对于input This is an example,您的程序应输出: a si n s i e h x T a m p le 圈子产生 您应使用中点圆算法计算离散圆的每个点的坐标。您可以在Wikipedia页面上找到有关如何实现此算法的示例。 这是算法的伪代码(基于Wikipedia的C示例): integer x = radius integer y = 0 int decisionCriterion = 1 - x while y <= x point at coordinates (x,y) belongs to the circle // Octant 1 …

11
最大化平方差
考虑从1到的整数值的置换N。例如此示例N = 4: [1, 3, 4, 2] 我们将认为此列表是循环的,因此1和2被视为相邻列表。我们可以为这样的列表计算的一个量是相邻值的总平方差: (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 给定正整数,您的任务是找到一个最大化此数量的排列N。在N = 4上面的例子中不是最佳的(实际上,这是最小的)。18通过以下排列(以及其他几个排列),我们可以实现的总平方差: [1, 4, 2, 3] 您的算法必须在(的N)多项式时间内运行。特别是,您不能简单地计算所有排列的总平方差。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输出可以采用任何方便,明确,平坦的列表或字符串格式。您可以选择从与返回值的列表0,以N-1代替1向N。 适用标准代码高尔夫球规则。 测试数据 这个问题有一个很好的分析解决方案。例如,所有有效的解决方案N = 10均等效于以下列表(直至循环移位和反转): [7, 5, 6, 4, 8, 2, 10, 1, 9, 3] 我不想透露过多的信息(尽管足以找出模式),因此无需给出更多示例,您可以检查您的结果是否具有给定的总平方差N: N Total squared difference 1 0 2 …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

12
我看到了即将到来
编写一个使用大于1或小于-1的整数的程序或函数。也就是说,输入将不是0、1或-1。 如果输入为2,则输出应为: |\_/| |___| 如果输入为3,则输出应为: |\_/\_/| |______| 如果输入为4,则输出应为: |\_/\_/\_/| |_________| 对于较大的输入,该模式以相同的精确方式继续。例如,如果输入为10,则输出应为: |\_/\_/\_/\_/\_/\_/\_/\_/\_/| |___________________________| 如果输入为-2,则输出应为: ____ | | |_/\_| 如果输入为-3,则输出应为: _______ | | |_/\_/\_| 如果输入为-4,则输出应为: __________ | | |_/\_/\_/\_| 对于较小的输入,该模式以相同的精确方式继续。例如,如果输入为-10,则输出应为: ____________________________ | | |_/\_/\_/\_/\_/\_/\_/\_/\_/\_| 输出可以打印或作为字符串返回,并带有可选的尾随换行符。负输入的输出的右上角“空”角可能是空格,也可能保持为空。 以字节为单位的最短代码获胜。

2
甜甜圈店™
缺乏现金,您已注册为世界上最大的数字甜甜圈公司The Donut Shop™建造甜甜圈,主要是因为它们出售各种可以想象到的甜甜圈。 现在,鉴于当今的交易标准非常严格,您需要编写尽可能短的代码来创建这些甜甜圈,以便将创建它们的源代码放在数据包的外部。 挑战 在给定4个输入的情况下,外圈的半径,内圈的半径,可能的洒落以及单元格出现洒落的机会,输出覆盖在这些洒落中的甜甜圈,该甜甜圈具有正确的内半径和外半径。 输入可以按照您希望的方式(函数的自变量,stdin,程序自变量)以任意顺序获取。 每种类型的洒水将以1个字符的形式给出 ^+*-如洒输入将是4个洒列表,^,+,*,- 洒的可能性将被输入为0和1之间例如浮点值:0.1,0.23 您必须将输出打印到标准输出或等效输出。 洒在甜甜圈的边缘不能。 每种类型的洒水都必须有同等的机会出现在每个单元格上。 半径以1单元为单位给出。 如果内半径等于0或外半径,则表示甜甜圈没有环。 两个半径都是非负整数。 甜甜圈的内边缘和外边缘必须使用哈希(#)表示 给定半径和圆心是一个点是否在圆中的测试: (x-center)**2+(y-center)**2 < radius**2 输入与输出示例 (外半径,内半径,洒水,洒水几率) 10,4,“ ^ + *-”,0.1 ######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # …

6
碗里装满水
您应该编写一个程序或函数,该程序或函数接收一个碗的容积和其中的水作为输入,然后输出或返回一个带有所需容积的碗的ASCII表示形式。 碗具有以下结构: \ / \___/ 碗至少有一个_字符。的计数\的和/的,也正和他们是平等的对称因。 碗的容积的总数量_和space所述字符之间\的和/的加一,每对\和/。这表示上述碗的容量为10: \ / => xxxxx x (the last one is for the \/ pair) \___/ xxx x (the last one is for the \/ pair) 请注意,两个不同的碗可能具有相同的体积。例如,以下两个碗的容积均为18: \ / \ / \ / \___/ \_______/ 我们可以往碗里倒些水。水被表示为一行~字符,而不是碗中的空格。最下面一行没有空格,因此不能包含~。这意味着我们的示例只能以一种方式充满水: \~~~~~/ \___/ 其他碗可以通过多种方式填充: \~~~~~/ \ / \ / \~~~/ …


1
让我们建立一个赛车轨道!
介绍 我的外女想要赛车。她的木部分可以组合成轨道。每个零件均为正方形,并包含不同的形状。我将使用管道绘图字符进行说明: │:垂直走的路 ─:水平行驶的道路 ┌ ┐ └ ┘:转向的道路 ┼:带有地下通道的桥梁 奇怪的是,没有t型接头。 这是一个可能的赛车轨迹的示例: ┌─┐ │ │┌─┐ │ └┼─┘ └──┘ 有效赛车轨道的规则如下: 没有路可走。 它必须形成一个循环(所有部分都必须是同一循环的一部分)。 在桥梁/地下通道,您不能转弯(因此,您必须直接穿过它们)。 不幸的是,我和我的侄女所拥有的赛车履带有限。但是我们绝对希望在赛道上使用所有这些。编写一个程序,给定我们库存中有哪些零件的列表,并输出使用所有这些零件的赛车轨道。 输入说明 我们希望输入通过STDIN,命令行参数,文件读取或用户输入函数(例如raw_input或prompt)输入。输入是逗号分隔的正整数,格式为 │,─,┌,┐,└,┘,┼ 其中每个代表我们所拥有的特定件数。因此,例如输入: 1,1,1,1,1,1,1 意味着我们每个都有一个。 输出说明 使用上面列出的管道图字符输出赛车轨道。赛车轨道应准确使用输入中指定的每个零件的编号-不得多于或少于。每次输入至少会有一条有效的赛车轨迹。 输入和输出示例 输入: 3,5,2,2,2,2,1 可能的输出: ┌─┐ │ │┌─┐ │ └┼─┘ └──┘ 输入: 0,0,1,4,4,1,3 可能的输出: ┌┐ └┼┐ └┼┐ └┼┐ └┘

30
产生盒子!
您的任务是使用给定输入的任何一个ASCII字符生成框。 测试用例 1 1 --> ===== = = ===== 1 2 --> ========= = = = ========= 2 1 --> ===== = = ===== = = ===== 2 2 --> ========= = = = ========= = = = ========= 2 5 --> ===================== = = = = = = ===================== …

3
抽出ASCII纸牌
考虑以下15种ASCII 纸牌模式(从王牌到百搭,从背面),其中西服符号X的占位符是:(它们看起来更好,行间距更小) ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- |AX | |2X | |3X | |4X | |5X | |6X | |7X | |8X | |9X | |10X | |JX | |QX | |KX | |J | |* * * * * …

3
ASCII水厂
介绍 考虑一个字符网格,f A\/例如 f f f A A / \ \ / A A \/ / \/ 哪里: f 代表向下方倒水的水龙头 A 将上面的水分叉,所以正好有一半左,右又有一半 \ 将水流向右上方移动一个单位 / 将上方的水流向左移动一个单位 组合\/产生了一个容量无限的槽,可以收集上方的水流 [space] 是空荡荡的空间,水无法通过 从中我们可以想象水(*)从水龙头流出并落入水槽或网格区域时所走的路径: f f f <-- first second and third faucets * * *A* * *A*/ \* \*/ * *A <-- a …

8
绘制火柴人大战
我的照片以我的高级绘图技能来起草这项挑战。 背景 火柴人战争发生在很久以前,当时地球上的优势物种仅由木棍组成。历史学家对当时没有画家或照相机的事实感到遗憾,我们可以在今天的历史书中使用那场战争的照片。这就是您的编码能力变得有用的地方。火柴人很容易画出来,历史学家设法找到了多少人参加了战争¹的数据。现在由您来重新创建战争开始前那刻的图像! 以下是参与战争的英勇火柴人: O / | / | \ / | | / \剑客 OA / | \ | | | / \ | 长矛兵 。 。” *。 'O * '\ | /。 。| * './ \ *。法师 Ø / | \ | / \村民 Ø / | \ …

4
森林-一个模拟的生态系统
注意 这个问题来自这个reddit线程(剧透警报!),我已经对其进行了调整以使其适合本网站的格式。所有功劳归给reddit用户“ Coder_d00d”。 在这个问题中,我们将模拟一个森林。 对于这个模拟森林,我们将处理3个方面。 树木可以是幼树,树木或老树。 伐木工人(他砍倒树木,吃午饭,去熔岩尝试) 熊(他虐待闻起来像薄煎饼的伐木工人) 警告:这些规则很可能并不完美。请将其作为准则,如果您需要进行一些细微调整(已指出产卵率是一个问题,请参见kuroi neko的答案作为示例)。 时间周期: 模拟将按月进行模拟。您将通过“打勾”及时前进。每个“刻度”代表一个月。每12个“滴答声”代表一年。我们的森林将不断变化,并且将不断变化。我们将记录森林的进度并分析其发生的情况。 森林: 森林将是一个二维森林。我们将需要输入N来表示N×N大小的网格中森林的大小。在每个位置都可以容纳树木,熊或伐木工人。它们可以占据相同的位置,但是当它们占据相同的位置时,经常会发生事件。 我们的森林将根据大小随机生成。例如,如果您的N值为10,则将有10 x 10的森林和100个斑点。 10%的森林将在10个随机地点举行伐木工人。(使用我们的100个现货森林,应该是10个伐木工人) 50%的森林将在任意位置保留树木(树木可以是3种中的一种,并且将从“树木”的中间一种开始)。 2%的森林将容纳熊。 如何获得林的大小取决于您(从stdin,文件中读取或对其进行硬编码)。我建议保持N等于5或更高。小森林没什么好玩的。 大事记: 在模拟过程中将发生事件。这些事件是根据一些逻辑发生的,我将在下面进行解释。我将在以下每个事件中对森林的3个元素进行描述。 这些事件首先遵循树木的顺序,其次是伐木工人,最后是熊。 树木: 每个月,一棵树都有10%的机会生成一个新的“树苗”。在与树相邻的随机开放空间中,您有10%的机会创建“树苗”。 例如,森林中间的一棵树在其周围还有其他八个点。其中之一(如果为空)将成为“树苗”。 存在12个月后,“树苗”将升级为“树”。“树苗”在成熟为“树”之前,无法生成其他树。 一旦“树苗”变成一棵树,它就可以生成其他新的“树苗”。 当一棵“树”已经存在了120个月(10年)时,它将变成“老树”。 老树有20%的几率生成一个新的“树苗”,而不是10%。 如果树或老树没有开放的相邻点,则不会产生任何新的树。 伐木工人: 伐木工人砍伐树木,跳跃和跳跃,喜欢压野花。 伐木工人每个月都会流浪。它们最多可移动3次到任意方向相邻的随机选择的点。因此,例如,网格中间的伐木工人有8个位置可以移动。他将漫步到一个随机地点。然后再说一次。最后第三次。注意:这可以是任何地点(这样它们就可以走进熊,从而造成大槌)。 伐木工人移动时,如果遇到一棵树(不是树苗),他将停下脚步,并停止在该月的游荡。然后,他将采伐树木以砍伐木材。移除树。获得1块木材。 伐木工人不会收获“树苗”。 伐木工人也收获老树。老树值得两块木材。 木材追踪: 每12个月将伐木量与森林中伐木工人的数量进行比较。 如果收集的木材等于或超过森林中伐木工人的数量,则会雇用许多新的伐木工人,并在森林中随机产卵。 计算出要雇用的伐木工人的数量: floor(lumber_collected / number_of_lumberjacks) 但是,如果12个月后收集的木材数量低于伐木工人的数量,则放开伐木工人以节省金钱,并从森林中移除1名随机伐木工人。请注意,您绝不会将伐木工人的劳动力减少到0以下。 熊: 熊像伐木工人一样在森林中漫步。但是,熊最多可以漫游5个空间,而不是3个空间。 如果熊碰到伐木工人,他将在一个月内停止游荡。(例如,在2次移动之后,熊与一名伐木工人一起降落在一个空间上,他本月将不再进行任何移动) 伐木工人闻起来像薄煎饼。熊爱煎饼。因此,不幸的是,熊会ma伤并伤害伐木工人。伐木工人将从森林中移走(他将在星期三回家购物,并用黄油烤饼烤茶)。 …

10
命运笔记-在职员上放笔记
僵尸启示录已经来临,世界即将终结。突然,某人发现了一个公式,该公式需要当前的小时,分​​钟和日期,然后吐出一个完美的音符以弹奏钢琴,这会立即杀死每一个听到它的僵尸。不幸的是,世界上只剩下一名钢琴演奏者,他已经忘记了如何阅读笔记,但是他仍然知道如何阅读乐谱。当然,这是非常时间敏感的事情,因此拥有一台计算机似乎很自然。1个 您的挑战是记下一个音符(例如)G,并输出放在五线谱上(高音谱号)的音符,如下所示: ----- ----- | ---|- | --O-- ----- 规格: 您必须输出由-----(5点划线)和空白行组成的交替行。总共有5 -----s。注释必须叠加在此职员的上方。 输入将指定注释的位置。输入将是: 可选的H或L,指定“高”或“低” 从Ato 的字母G,指定音高 可选的#或b,指定为锐利或平坦。 “注释”定义为: 一个O(大写O)与工作人员中间对齐,位于笔记的位置。(最上面的一行是HF(高F),最下面的一行是E(正常E)。) 三秒|(竖线),茎,将为: 如果音符在中线(B)或上方,则在音符左侧留一个空格,然后向下移动(从音符下方开始一个空格),或者 音符右边的一个空格,如果音符在中线以下,则向上移动(从音符上方开始一个空格)。 如果在输入中指定,则在音符左侧直接一个#或b一个空格。 如果音符太高或太低,则必须添加分类帐行。这些行将是---(宽度只有3个破折号,而不是5个破折号),并且仅在注释在总帐本行的上方或下方(分别针对顶部/底部总帐行)时才显示。 多余的空间可以放置在您想要的任何位置;例如,如果可以帮助保存任何字符,则可以使空白行具有空格或在分类帐行之后具有空格。 这是一个可视化视图,为了更容易地理解规格,所有注释名称都位于各行旁边: HB --- HA HG ----- HF HE ----- HD HC ----- B A ----- G F ----- E D --- C LB --- LA …

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.