Questions tagged «ascii-art»

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

27
高尔夫球你的语言的身份
标识是表示字符串的哈希值的几何图案的小图像。Stack Exchange 使用Gravatar中的标识作为每个用户的默认头像图像。 在此挑战中,我们还将使用Gravatar identicons生成一些文本以供打高尔夫球。 挑战 这个堆栈片段(此JSFiddle的简化版本)使您可以输入字符串,并返回该字符串的identicon的100×100像素黑白版本,以及1用于黑色和0白色的文本版本: <!-- Click "Run code snippet" --> <div style='text-align:center;'> <input id='str' type='text' size='32' value='Python'> <button type='button' onclick='go()'>Go</button><br><br><input id='type1' name='type' type='radio' value='identicon' checked> <label for='type1'>Identicon</label> <input id='type2' name='type' type='radio' value='monsterid'> <label for='type2'>Monster</label> <input id='type3' name='type' type='radio' value='wavatar'> <label for='type3'>Wavatar</label> <input id='type4' name='type' type='radio' value='retro'> <label …

27
我爱你我爱你我爱你!
XKCD#99(标题为“ Binary Heart”)显示了一个简单的由1和0组成的图像,其中一些数字显示为红色。 肉眼可以看到红色的心,但是隐藏在二进制序列中的消息却不可见。如果删除所有空格和换行符,并将二进制序列解释为8位ASCII码,则会得到以下消息: iloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOv 可爱吧? Pssst ...字符串不是纯字符串重复。 您面临的挑战是创建一个宽度为21位,向下为23位的二进制图像。每行中的每个数字之间应恰好有一个空格,而每一行中应有一个换行符。请注意,最后一位只是字母的开头e,因为21*23不能被8整除。您也需要正确的位。 该功能或程序不应接受任何输入。可以使用前导和尾随空格以及换行符。 您的代码结果应如下所示: 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 …

30
画一个星号三角形
受编程101任务的启发,这是一个希望不太容易或重复的任务(有点难以搜索这样的东西)。 输入: 一个正整数n >= 1。 输出: n 星号行,其中每个新行都比前一行多一个星号,并且在第一行中以一个星号开头。 通用规则: 这是代码高尔夫球,因此最短的答案以字节为单位。 由于该课程是用C ++讲授的,所以我很想看到C ++的解决方案。 测试案例(n = 5): * ** *** **** *****

8
做蛇蛇之吻
一条可弯曲的蛇看起来像这样: <||=|||:)~ 垂直条(每个单独序列|)是一个弹性的蛇,被称为一个有弹性的部分,是单独地可伸展到它的宽度的两倍,并绘制具有交替斜杠(/,\)一次延长。 上面特定的蛇有两个这样的伸展部分,给它四个可能的姿势: <||=|||:)~ </\/\=|||:)~ <||=/\/\/\:)~ </\/\=/\/\/\:)~ 此正则表达式定义了伸展最少的伸展蛇的一般形式: <(\|+=)*\|+:\)~ 可以用以下文字表示: <,随后通过任何数目的序列|的连接与=迹象,随后:)~。 So <|:)~and <||:)~and <|=|:)~and <|=|=||=|||||=||:)~是可弯曲的蛇,而<=:)~and <=|:)~and <||=:)~and <|==||:)~不是。 易弯曲的蛇也可以朝左而不是朝右,例如~(:|||=||>。形式是一样的,只是被镜像。 挑战 编写一个程序,该程序使用两条彼此面对的伸缩性蛇的单行字符串,中间留有一定数量的空格。两条蛇都将处于其伸展最少的姿势(所有竖线,无斜线)。字符串将从右向蛇的尾部开始,然后从左向蛇的尾部结束(您可以选择假设还有尾随换行符)。 例如,这是一条可能的输入,在蛇之间有五个空格: <|=||:)~.....~(:||||> .为了清楚起见,我使用句点()而不是实际的空格字符。 蛇之间的零间距也是有效的输入: <|=||:)~~(:||||> 我们说蛇在舌头这样触摸时在亲吻。 您的程序需要扩展两条蛇的可拉伸部分的某种组合,以使蛇之间的间隔最少(不重叠),即蛇尽可能接近接吻。 两条蛇的尾巴都是固定的,但它们的头部和身体可以移动-根据伸展的部分,向右移动,向右移动,向左移动。 程序的输出是单行字符串(加上可选的尾随换行符),该字符串显示蛇尽可能接近接吻的位置,并为延伸的可伸展部分绘制交替的斜线代替竖线。 例如,<|=||:)~.....~(:||||>(从上面)的输出为: </\=||:)~~(:/\/\/\/\> 这是唯一的解决方案,因为在伸展部分的任何其他组合下,蛇会重叠或离接吻更远。 如果有多种解决方案,则输出可能是其中任何一种。 例如,如果输入是 <|=||:)~.....~(:|||=|> 输出可能是 <|=/\/\:)~~(:/\/\/\=|> 要么 </\=||:)~~(:/\/\/\=/\> 请记住,并非总是能够使蛇亲吻,但是您仍然需要使它们尽可能靠近。 例如,如果输入是 <||=||||:)~...~(:||> 输出可能是 </\/\=||||:)~.~(:||> 要么 <||=||||:)~.~(:/\/\> 如果蛇已经在接吻,则输出将与输入相同。例如 …

30
打印N平方
编写一个从stdin或函数参数中获取非负整数N的程序或函数。它必须打印或返回一个空心的ASCII艺术方块的字符串,该字符串的侧面各有N个数字N的副本。 特别: 如果N为0,则不使用N的副本,因此应该没有输出(或只有一个尾随的换行符)。 如果N为1,则输出为: 1 如果N为2: 22 22 如果N为3: 333 3 3 333 如果N为4: 4444 4 4 4 4 4444 如果N为5: 55555 5 5 5 5 5 5 55555 模式将持续6到9。 如果N为10,则输出为: 10101010101010101010 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10101010101010101010 请注意,这实际上不是正方形。它高10行,但宽20列,因为10它长两个字符。这是有意的。关键是“正方形”的每一侧都包含N的N个副本。因此,从9技术上讲,所有其他输入都是ASCII矩形。 …

10
小钱德勒很伤心。画他的云,使他振作起来
小钱德勒很伤心。画他的云使他振作起来。 注意:画云实际上不会使他振作起来。 圆可以定义为三元组(x,y,r),其中x是圆在笛卡尔平面上的x位置,是圆在笛卡尔平面y上的y位置以及圆r的半径。x并y可能是负面的。r永远是积极的。输入是以空格分隔的三元组形式的圆的列表。例如: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 的3,1,1意思是“在与中心点的圆3,1与1个半径。3,2,1.5是指”在与中心点的圆3,2用1.5半径。 如果我们在图形上绘制输入的所有这些圆,则看起来像这样(我仅出于清晰起见添加了网格线和标签;它们不是必需的): 注意所有的圆是如何凝聚的。也就是说,它们全部重叠在一起,从而形成一个大的组,而没有其他的小圈子。输入保证是内聚的。 假设现在绘制一条绕这些圆形成的“边界”行进的线,而没有其他任何线。就像绘制所有圆组成的轮廓的边界一样。生成的云看起来像这样: 因此,仅通过在输入中绘制形成边界的圆弧来形成单一形状即可形成此云。换句话说,仅通过绘制不在另一个圆内的圆弧来形成云。您的程序将以上述形式接受输入,并输出显示结果云的图像。云的整体形状必须正确,但是比例,颜色,线条粗细以及在顶点处的外观取决于您。请注意,云必须是可见的,因此您不能拉出类似“此程序在白色背景上绘制白色云”,“此程序以无限小的比例绘制云”,“此程序以0绘制云”之类的内容。线宽”等。还请注意,边框的颜色必须与填充或背景的颜色不同。 另一个例子。输入: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 输出: 如果云中存在“洞”,则也应绘制该洞。输入: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 输出: 这是一条重要规则:您的程序必须仅绘制形成边框的线。这意味着您不能简单地完全绘制圆,然后用白色填充将圆绘制得稍小一些,因为该方法仍会绘制不形成边界的线,之后只会将其覆盖。该规则的目的是防止“绘制圆,然后用白色填充再次绘制圆”的实现或类似的方法。预计答案将在绘制之前实际计算出绘制对象的位置。 这是代码高尔夫球,因此最短的字符数获胜。

10
嘎嘎生气的鸭子
尚不确定该图释>:U打算代表什么,但许多学者认为它看起来像只愤怒的鸭子。假设是这种情况。 任务 给定整数n(介于0和3之间,包括0和3),请打印或返回 quack 如果n = 0, >:U 如果n = 1, U U > : U U > U U > : U U UUU 如果n = 2,或者 >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U …

24
做一碗字母汤
这就是我们所说的一碗字母汤-一种大致呈圆形的ascii-art形状,具有26个大写英文字母(AZ)顺时针排列以形成周长: XYZABC VW DE U F T G S H RQ JI PONMLK 编写一个使用单个字母字符AZ并输出相同碗的“旋转”字母汤的程序,可以这么说,因此输入字母出现A在上例中的位置,其余字母完全循环顺时针。 因此,输入的输出A将是相同的原始碗字母汤。 输入的输出B将是以下内容: YZABCD WX EF V G U H T I SR KJ QPONML 同样,输出为H: EFGHIJ CD KL B M A N Z O YX QP WVUTSR 或Z: WXYZAB UV CD T E S F R …

30
绘制ASCII双螺旋
通过stdin或命令行编写一个接受整数N的程序。 如果N为0,则O必须将单个字母打印到标准输出。 如果N为正,则必须打印此水平 ASCII艺术双螺旋(绘制N段宽)。 如果N为1,则输出为: /\ O O \/ 如果N为2,则输出为: /\ /\ O / O \/ \/ 如果N为3,则输出为: /\ /\ /\ O / / O \/ \/ \/ 如果N为4,则输出为: /\ /\ /\ /\ O / / / O \/ \/ \/ \/ 对于较大的N,该模式以完全相同的方式继续。请注意,/在螺旋线交叉的所有位置(O末端除外)都必须使用正斜杠()。 如果N为负数,则必须打印此垂直 ASCII艺术双螺旋,将其绘制为-N段高。 如果N为-1,则输出为: O / \ \ …

30
使单词适合字母网格
受到我今天早些时候看到的一个模因的启发。 挑战说明 考虑一个无限的字母网格: ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ... 取一个单词(CODEGOLF在此示例中)并使其成为网格的子序列,用空格替换未使用的字母,并在无限网格的末尾完全删除字母: C O DE G O L F 例子 STACKEXCHANGE ST A C K E X C H A N G E ZYXWVUTSRQPONMLKJIHGFEDCBA Z Y X W V U T S R Q P O N M L K J I …

27
生成字词
标识是对哈希值的直观描述,通常由几何形状的对称排列制成。您的默认Stack Exchange头像是一个identicon。挑战在于创建“ wordenticons”,即简单的基于文本的identicon图标版本,适用于小写字母(即单词)字符串。 挑战 编写一个接受字符串S并输出其wordenticon的程序或函数。S保证为非空,并且仅包含小写英文字母字符az。您可以选择假设S具有尾随换行符。 S的wordenticon是文本的正方形网格,其边长2*length(S)由空格( ),竖线(|)和横线(―)组成。 要生成S的词​​对像,形成一个正方形网格,其中每一列对应于S的一个字母(按从左至右的正常阅读顺序),每一行对应于S的一个字母(按从上至下的正常阅读顺序) )。 例如,如果S是food我们的初始网格, food f.... o.... o.... d.... 在哪里.只是一个占位符。 对于.网格中的每个空白点(每个): 如果列字母来排字母之前按字母顺序,替换.用|。 如果列字母来排字母后按字母顺序,替换.用―。 如果列和行字母相同,则.用 (空格)替换。 这是food每个步骤之后的示例: 添加|的: food f...| o|..| o|..| d.... 添加―的: food f.――| o|..| o|..| d―――. 添加 的: food f ――| o| | o| | d――― 要完成单词输入法,请删除包含单词的多余行和列 ――| | | | | …

6
ASCII艺术日历
让我们制作一个ASCII艺术时钟和日历,告诉我们当前的月份,每月的某天,一周的某天,小时,分钟,以及它是夜晚还是白天(但不是年份或秒)。 在任何特定时间,日历将看起来像这样:(看起来更好,行距更少) ________________________________________________________________ |\ ____________________________________________________________ /| | | ___ | | | | _( ) | | | | (___)__) -.- | | | | | | | | | | | | -.- | | | | -.- | | | | ___ | | | | _( ) …

23
确认光明会
Illuminati命令您(使用其思维控制)输出以下字符串: ^ /_\ /_|_\ /_|_|_\ /_|/o\|_\ /_|_\_/_|_\ /_|_|_|_|_|_\ /_|_|_|_|_|_|_\ /_|_|_|_|_|_|_|_\ /_|_|_|_|_|_|_|_|_\ 规则: 每行都允许尾随空格。 每行中必须有前导空格。 在完整的所需输出之后,允许尾随空格。 由于这是一个代码高尔夫挑战赛,因此获胜者将是最短的节目,以字节为单位。 由于这是一个kolmogorov复杂性挑战,因此可以使用硬编码输出。 适用标准漏洞。 更新:您可以使用制表符代替空格,每个制表符计为4个空格。如果您出于某些原因想要。 沙盒(我会在沙盒常见问题解答建议的整个72小时内保留它,但要有7个支持票,并且几乎没有负面反馈,应该38个就可以了)

30
你能把我做成六角形吗?
今天,我们将制作一个ASCII六边形。您必须编写一个程序或函数,该程序或函数采用正整数n,并输出大小为n的六边形网格,该网格由星号组成。例如,大小为2的六边形如下所示: * * * * * * * 虽然大小为3的六边形如下所示: * * * * * * * * * * * * * * * * * * * 您可以使用任何默认的输入和输出方法,例如STDIO / STDOUT,函数参数和返回值或读取/写入文件。 您可能会认为输入始终有效,因此,如果输入的值不是正整数,则您的程序可以执行您想要的任何操作。你做但是必须处理大小为1六边形,这恰好是一个星号的特殊情况: * 只要输出在视觉上相同,就允许前导和尾随空格。 例子: 1: * 2: * * * * * * * 3: * * * * …

21
1P5:嵌套盒
此任务是“ 首次定期Premier Programming Puzzle Push”的一部分。 您将获得以下格式的项目层次结构: 2 Hat 1 Gloves 需要放在盒子里,就像这样: .------------. | Hat | | .--------. | | | Gloves | | | '--------' | '------------' 在输入格式中,数字以一个框开头,其中包含与数字指定数量一样多的项目。第一个盒子里面有两个物品(帽子和包含手套的盒子),第二个盒子只包含一个物品–手套。 可以看出,盒子也可以放在盒子里面。而且它们总是圆的……有点(尖角是伤人的危险,我们不希望这样)。 对于那些想要利用规范给出的每条细微回旋余地的人来说,下面是令人讨厌的细节。请注意,不阅读规格并不是提交错误解决方案的借口。最后有一个测试脚本和一些测试用例。 规格 框由以下字符构成: | (U + 007C)用于构造垂直边缘。 - (U + 002D)用于构造水平边缘。 ' (U + 0027)是圆形的下角。 . (U + 002E)是圆形的上角。 因此,一个框如下所示: .--. …

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.