Questions tagged «ascii-art»

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

18
洗牌交易!
今天是星期五,我很累,所以让我们快速做一个!不输入任何内容,但是您应该在标准纸牌中输出所有13种不同编号的纸牌。您应该通过Ace(不可知的Suit)输出2。 每张卡的顶部都有一个空格 和十个_空格 。 从顶部开始的第二行用a /和10空格 以及a表示\ 第三行与所有中间行相同,不同之处在于表示卡值的字符在边缘的右边向右两个空格(如果在顶部)或在左边向左两个空格(如果在底部)。 每个中间十岁上下行是一个简单的|十位 还有一| 最后一行是a \和10 _,最后是a/ 如果该值是多位数,则卡的总宽度(以高度为单位)不应更改。(即10不会使卡的边变宽​​) 国王示例: __________ / \ | K | | | | | | | | | | | | K | \__________/ 9例子 __________ / \ | 9 | | | | | | | | | …

17
打印分层蛋糕
挑战 给定输入后n,n从侧面看,打印一个高ASCII的艺术蛋糕,上面放着两个蜡烛。有关详细信息,请参见以下示例。 输出量 >> cake(1) _|_|_ | | +-----+ >> cake(3) _|_|_ | | +---------+ | | +-------------+ | | +-------------+ ...等等。 规则 禁止标准漏洞 请尝试一个聪明的解决方案 这是代码高尔夫球,因此最短答案以字节为单位。但是,将不会选择答案。 玩得开心!

9
代码高尔夫ABC:ASCII Box挑战赛
给定两个正整数'a'和'b',输出一个ascii-art“ box”,它是一个字符宽而b个字符高的字符。例如,使用“ 4”和“ 6”: **** * * * * * * * * **** 简单吧?这是一个转折点:框的边框必须是交替的“ a”和“ b”字符​​。此操作从左上角开始,并以顺时针螺旋线继续。例如,前面的示例4和6应该是 4646 6 4 4 6 6 4 4 6 6464 A和B 可以是两位数字。例如,输入“ 10”和“ 3”应输出以下内容: 1031031031 1 0 3013013013 为了使输出保持相对较小,您不必支持三个或更多数字。同样,由于输入被限制为正数整数,因此“ 0”是无效输入,您不必处理。 这是更多测试用例: Input: (3, 5) Output: 353 5 5 3 3 5 5 353 …

5
代数曲线绘图仪
代数曲线是“ 2D平面”的某个“ 1D子集”,可以描述为{(x,y) in R^2 : f(x,y)=0 }多项式的零集f。在这里,我们将2D平面视为真实平面R^2这样我们就可以轻松想象出这种曲线的样子,基本上是可以用铅笔绘制的东西。 例子: 0 = x^2 + y^2 -1 半径为1的圆 0 = x^2 + 2y^2 -1 椭圆 0 = xy 一个十字形状,在x轴的基本上联合和y轴 0 = y^2 - x 抛物线 0 = y^2 - (x^3 - x + 1)一个椭圆曲线 0 = x^3 + y^3 - 3xy 笛卡尔的叶 …

6
ASCII艺术玛雅数字
这个挑战很简单。给定一个数字,请使用Mayan Base-20数字系统输出该数字的科学表示形式。 什么是玛雅系统? 玛雅人以20为底来存储数字,因此第一个位置是1s位置,第二个位置是20s位置,然后是400s,依此类推。 因此,玛雅编号以10 1为1底,但10实际上20以10 207为807底,以10 为底,依此类推。 他们用象形文字表示数字,并用特殊符号表示0。 ------------------- | | | | | | | | | | |-------------------| | | | | ------------------- 那是他们的零。(至少一半的picascii一半我的艺术性ascii艺术版本) 那是玛雅零符号的真实图片。1个 这是他们的五个: -------------------------------- | | -------------------------------- 还有一个4: ---- ---- ---- ---- | | | | | | | | | | | | …

7
绘制索引分形
介绍 在这个挑战中,索引2×2的矩阵是这样的: 0 1 2 3 我们定义了一系列类似分形的图案F(L),其中L是n这些索引的长度列表,并且F(L)具有size 。2n-1 × 2n-1 如果L == [],F(L)则为1×1模式#。 如果L != [],则F(L)构造如下。取P为L删除第一个元素后获得的图案。取4个大小充满周期的网格,并用模式替换用索引的网格。然后,使用网格之间的一层哈希将网格粘合在一起。这是四种情况的图表:2n-1-1 × 2n-1-1.L[0]P# L[0]==0 L[0]==1 L[0]==2 L[0]==3 #... ...# ...#... ...#... [P]#... ...#[P] ...#... ...#... #... ...# ...#... ...#... ####### ####### ####### ####### ...#... ...#... #... ...# ...#... ...#... [P]#... ...#[P] ...#... ...#... #... ...# …

7
把绳子变成风车
该站点上的代码正在迅速耗尽。我们需要投资可再生能源。因此,您必须编写一个使用字符串并将其转换为风车的程序。 挑战 让我们以一个简单的风车弦为例。拿弦abc。该枢纽为中心的性格,在这种情况下b。由于字符串的长度为3个字符,因此每个输出将恰好是三行高和三个字符宽。这是步骤1的输出。(请注意空格) abc 要进行下一步,请顺时针旋转每个字符。这是步骤2: 一种 b C 这是步骤3-8: 一种 b C 一种 b C cba C b 一种 C b 一种 C b 一种 在第九步中,它绕到原始字符串整圈: abc 注意b整个时间都停留在同一地点。这是因为b是关键人物。您必须编写一个将字符串作为输入的程序或函数,并重复打印此序列,直到关闭该程序。 澄清说明 所有输入字符串将具有奇数个字符。(以便每个风车都有一个枢轴) 为了简化挑战,所有字符串将仅包含大写和小写字母字符。 输出必须是len(input_string)宽而高的字符。 只要您继续旋转并永远循环,就从序列的哪一步开始无关紧要。 更多测试IO: 由于帖子已经很长了,因此以下是“ windmill”输出的链接: 边注: 由于这应该是风车,所以如果您包含一些样板代码以使其具有较小的时间延迟或在每个步骤之间由用户输入动画效果,那就太好了。但是,由于某些语言没有内置时间,因此这不是强制性的。您提交内容的竞争部分可以尽快打印序列。

2
做一个蛇解析器!
蛇看起来像这样: >>>v @ ^ v ^ >>>^ v ^ v ^<<<<<<<<< 在这种情况下,蛇可以越过自身: @ ^ >^>v ^<< 为了使交叉有效,两侧的字符必须沿相同方向移动。的情况下 @ >^v ^< 可以认为不清楚和无效。 输出是WASD代表从头到尾(@)的字符串。 给定一条不会回溯且不模糊的蛇,您是否可以编写一个程序来输出蛇执行的一系列动作? 这是代码高尔夫球,所以最短的答案会成功! 测试用例: (注意:@可以用以外的任何字符替换v^<>) 输入: >>>>v v v<< @ v ^ >>>>>^ 输出: ddddssaassdddddww 输入: @>>v ^ v ^ v ^<<< 输出: dddsssaaawww 输入: >>>v v @ v …

1
生成ASCII Art
给定任何合理的无损格式的黑白图像作为输入,请输出与输入图像尽可能接近的ASCII图像。 规则 只能使用换行符和ASCII字节32-127。 输入图像将被裁剪,以使图像周围没有多余的空白。 提交的内容必须能够在5分钟内完成整个评分语料库。 只接受原始文本;没有富文本格式。 评分中使用的字体为20点Linux Libertine。 如下所述,输出文本文件转换为图像时,其尺寸必须与输入图像相同,且任一尺寸均在30像素之内。 计分 这些图像将用于评分: 您可以在此处下载图像的zip文件。 提交内容不应针对该语料库进行优化;相反,它们应该适用于任何8张相似尺寸的黑白图像。如果我怀疑针对这些特定图像优化了提交,我保留更改语料库中图像的权利。 得分将通过以下脚本执行: #!/usr/bin/env python from __future__ import print_function from __future__ import division # modified from http://stackoverflow.com/a/29775654/2508324 # requires Linux Libertine fonts - get them at https://sourceforge.net/projects/linuxlibertine/files/linuxlibertine/5.3.0/ # requires dssim - get it at https://github.com/pornel/dssim import PIL import PIL.Image …

5
找到海岸线
您的任务是找到ASCII地图中提供的岛屿地图的海岸线长度。输入地图将由1个或多个#表示土地的字符以及一些表示水的空间组成。海岸线被认为是水陆之间的任何边缘,包括内陆湖泊和岛屿。 您的解决方案应该是一个完整的程序,该程序可以读取文件,字符串或字符串数​​组,并向屏幕或stdout输出单个整数。每条输入行可以具有前导或尾随空格,以及零个或多个散列字符。假定地图的边界是空间(水)。 线的长度可以不同。 例子: Input: ## ## Output: 8 Input: ### ### ##### # ## Output: 26 Input: ##### # # # # # # # ##### Output: 36 这是代码高尔夫球,因此最小的字节数获胜。


4
制作一个简单的漂亮评论工具
挑战: 某些ascii技术很难制造,但使代码注释更易于阅读,尤其是在代码密集时。面临的挑战是制作一个简单的工具,以将带有箭头的注释转换为简单的ascii-art。要修改的注释由空注释分隔。 例如,假设Haskell注释语法,请转换为: -- -- Here's a thing -- Here's another thing -- The most important thing -- * * * -- f x=x+1*x*1*1*0 对此: -- /------------< Here's a thing -- | /-------< Here's another thing -- | | /-< The most important thing -- | | | -- v …

4
童话棋“游刃有余”的运动模式
甲弹跳是仙女棋子,其通过移动的类别“跳跃”。普通骑士是(1,2)剑,这意味着每次移动都涉及在正交方向上移动1平方和在垂直方向上移动2平方的距离。 .o.o. o...o ..N.. o...o .o.o. 有许多不同的跨越。(1,3)叶片称为长骑士或骆驼。其移动模式如下所示: ..o.o.. ....... o.....o ...L... o.....o ....... ..o.o.. 还有(2,2)Alfil ... o...o ..... ..A.. ..... o...o ...甚至(0,1)Wazir。 .o. oWo .o. 挑战 给定一对数字作为输入,输出相应的运动图。您可以编写程序或函数,其输入通过STDIN /命令行提供或作为参数,而输出通过STDOUT或返回值提供。这是代码高尔夫球。 输入值 输入将是两个整数和一个大写字母的逗号分隔列表。这两个整数将在范围内0-7(包括端值)并且以非降序排列。输入和输出的尾随换行符是可选的。 以下是上述四个示例的输入: 1,2,N 1,3,L 2,2,A 0,1,W 输出量 输出将是一个方形的多行字符串。大写字母将放置在中间,以表示作品的当前位置。移动位置将以4或8个小写字母表示o s表示。广场上的所有其他空间都将填充句点。 如果移动方式为0,0,则仅输出大写字母。 提示一下,如果第二个整数(较大的整数)的值为N,则该正方形将始终具有边长2N + 1。该o旨意永远是正方形的周长。 其他测试用例 1,1,F o.o .F. o.o 5,7,Q ..o.........o.. ............... …

2
欧几里得向量
给定两个向量的ASCII艺术,找到结果向量的大小和程度。 输入值 这可以通过STDIN接收,从本地文件读取或通过函数调用提供。这是两个向量输入的示例: ^------> | | | x 这表示北移4个单位,东移7个单位。每个输入的起点将由x(小数120)表示。 所有向量都是水平或垂直线。 每个向量都有以下四个端点之一:^v<>,由短划线(-,十进制45)或竖线(|,十进制124)组成。 平面上的空白点由空格(,十进制32)填充。 输入可以是单个x。 相邻向量始终彼此垂直。 所有向量都是从头到尾的。 输出量 这将是结果点的位移(距起点的距离)及其相对于起点的移动程度。 对于上述输入,输出应为8.06单位和60.3度。每个人都应有3个有效数字。以下是带有3个有效数字的数字的一些示例: 1.00 60.1 453 7.08 4.50 349 所有单位的度量将为<= 999。 这些编号应以以下格式输出。这是使用上面的数字。 8.06 units @ 60.3 degrees 后面可以跟一个空格或换行符。 如果输入是single x,没有位移,因此也没有位移角度,则输出应为空行(单个换行符)或以下格式: 0 units @ - degrees 如果您想获得奖金,指示方向也应该正确-。 如果奖金2、3或两者都完成,则输出应遵循以下模型并遵守与上述相同的限制。 8.06 units @ 60.3 degrees NE 度数应根据标准平面进行测量。 90 …

12
所有人都说……
目标给定不包含字符[或的文本输入],请执行以下操作: 对于Amen具有至少一个大写字母的每个实例(因此,所有Amen不包含的实例amen),都输出相同的名称Amen(保留大写)。 对于/all the people said[?: ]/i(这是一个正则表达式)的每个实例,还输出Amen(任何情况都可以)。 在每个输出之后,您可以选择任何常量分隔符,例如换行符,空格或什么都不做。 这是一个代码高尔夫球,因此以字节为单位的最短程序获胜。 IO范例 Input: I said AMEN! AMEN, PEOPLE! Output: AMENAMEN ; any separator is fine, I choose none. Input: amen amen amen amen Output: ; nothing Input: ; empty Output: ; nothing Input: *blah blah blah* And all the people said? Output: …

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.