Questions tagged «ascii-art»

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

30
打印圣诞树
挑战 使用最短的代码在顶部打印自己的星星的漂亮圣诞树。树星是一个星号(*),树体是由树制成的0。树必须高10行。每行应适当缩进,以使上一行在下一行居中。任何给定的行都必须比前一行多2个0,除了第一个是星星,第二个只有一个0。结果是这样的: * 0 000 00000 0000000 000000000 00000000000 0000000000000 000000000000000 00000000000000000 无需更改软件即可更改高度的高度树的并列中断(更改高度参数除外) 请也粘贴代码的结果树! 排行榜 显示代码段 var QUESTION_ID=4114,OVERRIDE_USER=73772;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" …


16
建立一群疑似幸福的莱尼面孔(͡°͜ʖ͡°)
我在Reddit上经历了一个奇怪的话题,并遇到了这个问题: (͡°(͡°͜ʖ(͡°͜ʖ͡°)ʖ)°) 它代表一群人有些可疑的微笑。 (不过,在下面的挑战中,当我编写挑战时,右眼左侧的空间以某种方式掉落了。请注意规范)。 您的目标是n使用以下规则创建一组深浅的笑脸面孔: 在深度一处,显示了一个全脸(( ͡° ͜ʖ ͡°))。 在深度二处,示出了半个面。在左侧,代表了略多于一半的脸(( ͡° ͜ʖ)。但是,在右侧显示了右侧,并且省略了嘴巴(ʖ ͡°)) 较深处,仅显示了头部和眼睛的侧面(( ͡°和͡°)。眼睛和头部的左侧之间有一个间隔,但尽管有出现,但右侧没有任何间隔。该间隔是由于͡字符有点混乱。 输入: n,显示要显示的面孔深度为几层。 n将始终在范围内0 <= n <= 500。您无需处理此范围以外的任何内容。 n可以偏移1,以便0表示一个面而不是没有面。但是您将需要处理-1。 输出: 字符串或字符数组,或任何可远程比较的东西(例如Python / Javascript中的单字符字符串列表)。也可以直接打印。尾随空格很好。 您可以提交完整的程序或功能。 由于很难看到涉及的字符,因此它是用Python布局的: >> [ord(c) for c in '( ͡° ͜ʖ ͡°)'] [40, 32, 865, 176, 32, 860, 662, 32, 865, 176, 41] >> …

15
任意间隔尺
制作一个程序,该程序需要一个长度和间隔列表,并使用线条图字符为每个间隔输出具有更长刻度线的该长度的标尺 ┌ ┬ ┐ │ ╵ 输出的第一行应以0的刻度开头,┌以的长度结尾的刻度结束┐,中间的┬每个字符都使用一个。length第一行总共有+ 1个线条画字符。 刻度应使用╵和│根据输入间隔在垂直方向上延长半字符。 相对于之前的间隔,间隔从最小到最大列出。详细说明: 第一个间隔告诉第二个最小间隔(最小间隔为1)中有多少个基本刻度(第一行-每个刻度一个字符)。例如,[3]将每三个刻度延长半个字符。 第二个间隔和后续间隔是下一个最小间隔。例如,[3,5]将每15个基本刻度增加一个完整字符,[3,5,2]将每30个基本刻度增加一个字符半。 子间隔为1是有效的,并且有效地表示最后一个间隔行以完整字符而不是半字符延长。 示例测试用例应有助于阐明其工作原理。 示例/测试用例 3,[]: ┌┬┬┐ 9,[3]: ┌┬┬┬┬┬┬┬┬┐ ╵ ╵ ╵ ╵ 30,[5,2]: ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ │ ╵ │ ╵ │ ╵ │ 32,[4,2,2,2]: ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ │ ╵ │ ╵ │ ╵ │ ╵ │ │ ╵ │ 48,[5,3,2] ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ │ ╵ …

30
画一些扩大的箭头
这个挑战是关于打印一系列不断增长的ASCII艺术箭头。我将用语言描述模式,但是看一下本系列开始的内容可能会更容易: > < -> <- --> <-- ---> <--- ----> <---- -----> <----- ------> <------ ... 长度为n的箭头包含箭头(<或>)和n-1破折号(-)。朝右的箭头先是破折号,然后是>。左箭头以开头<,后接短划线。该系列包括一个长度为n向右的箭头,然后是长度为n的左向箭头,其中n从1到无穷大。 要完成挑战,请编写一个程序或函数,该程序或函数接受一个输入,一个整数i >= 1并输出第一个i箭头。箭头是单独的,不是左右成对的,因此i=3您应该输出: > < -> 您可以返回字符串列表,或一个接一个地打印它们。如果要打印,则箭头必须由一些一致的定界符来定界,而不必像示例中那样是换行符。 这是代码高尔夫球,因此最少的字节获胜。

30
让我们设计一个数字马赛克
挑战 给定一个正整数,重复其数字一个,对应于它在位置。换句话说,每个数字应该重复次(对于每个,以1为索引),从而创建新的数字:NñNd1,d2,d3,⋯,dnd1个,d2,d3,⋯,dñd_1, d_2, d_3, \cdots, d_nNñNdkdķd_kkķk1≤k≤n1个≤ķ≤ñ1\le k\le n d1d2d2d3d3d3⋯dndndn⋯dnn times¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯d1个d2d2d3d3d3⋯dñdñdñ⋯dñ⏟ñ 次¯\overline{d_1d_2d_2d_3d_3d_3\cdots\underbrace{d_nd_nd_n\cdots d_n}_{n\text { times}}} 然后,将其水平和垂直记录下来,并在空白处填充数字的副本,该副本与空格的列索引和行索引之间的较大索引相对应。最终输出应如下所示: ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢d1d2d2d3d3d3⋯d2d2d2d3d3d3⋯d2d2d2d3d3d3⋯d3d3d3d3d3d3⋯d3d3d3d3d3d3⋯d3d3d3d3d3d3⋯⋮⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥[d1个d2d2d3d3d3⋯d2d2d2d3d3d3⋯d2d2d2d3d3d3⋯d3d3d3d3d3d3⋯d3d3d3d3d3d3⋯d3d3d3d3d3d3⋯⋮]\begin{bmatrix} \color{red}{d_1} \color{green}{d_2 d_2} \color{blue}{d_3 d_3 d_3} \cdots \\ \color{green}{d_2 d_2 d_2} \color{blue}{d_3 d_3 d_3} \cdots \\ \color{green}{d_2 d_2 d_2} \color{blue}{d_3 d_3 d_3} \cdots \\ \color{blue}{d_3 d_3 d_3 d_3 d_3 d_3} \cdots \\ \color{blue}{d_3 d_3 …

12
绘制轮廓
给定高程的矩形矩阵,绘制其轮廓。 任务 如果,则两个元素x和y处于同一轮廓线级别floor(x/10) == floor(y/10)。例如,52和58处于相同的轮廓级别,但是58和64不在同一轮廓级别。 绘制轮廓的行为定义如下:对于每个元素e,将其替换为如下选择的两个字符的字符串: 第一个字符是" "下面的元素是否与下面的元素处于e相同的轮廓线级别,e或者下面没有任何元素e,"_"否则 第二个字符是," "如果右边的元素与该元素e处于相同的轮廓线级别,e或者右边没有元素e,"|"否则 将行中的元素连接在一起,然后用换行符将这些行连接在一起。 例 假设输入为[[5,20],[3,6]],可视为 5 20 3 6 我们先来看一下5。由于3处于与相同的轮廓水平5,因此第一个字符为" "。由于20与的轮廓级别不同5,因此第二个字符是"|"。 现在我们来看20。由于6轮廓线级别与相同20,因此第一个字符为"_"。由于的右边没有元素20,因此第二个字符是" "。 现在我们来看3。由于下面没有元素3,因此第一个字符为" "。由于6与处于相同的轮廓水平3,第二个字符是" "。 现在我们来看6。由于下面没有元素6,因此第一个字符为" "。由于的右边没有元素6,因此第二个字符是" "。 基于这些两个字符的字符串,我们进行替换以获得[[" |","_ "],[" "," "]]。将这些结合在一起,我们得到的输出 |_ 规则 输入矩阵将始终为矩形,并由正整数组成。 尾随空格或换行符可以为任意数量(包括0),并且不必以任何方式保持一致。 只要产生相同的结果,就不必遵循相同的算法。 您的程序或函数可能会输出以换行符分隔的字符串,字符串列表或等效字符串。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 测试用例 input output [[1,5,8,9],[3,11,13,8],[7,14,10,9],[4,8,7,6]] _ _ | | |_ _| [[0,10,20,30,40,50,60,70,80,90],[0,0,10,10,20,20,30,30,40,40],[0,0,0,10,10,10,20,20,20,30],[0,0,0,0,10,10,10,10,20,20],[0,0,0,0,0,10,10,10,10,10],[0,0,0,0,0,0,10,10,10,10],[0,0,0,0,0,0,0,10,10,10],[0,0,0,0,0,0,0,0,10,10],[0,0,0,0,0,0,0,0,0,10],[0,0,0,0,0,0,0,0,0,0]] …

26
制作锯齿形
您的任务是接受一个整数输入,并使用斜杠和反斜杠打印锯齿形图案。 整数输入确定每个曲折和曲折的长度,以及曲折和曲折的数量 模式始终从右到左开始 测试用例 4-> / / / / \ \ \ \ / / / / \ \ \ \ 2-> / / \ \ 0-> 1-> / 8-> / / / / / / / / \ \ \ \ \ \ \ \ / / / / …

11
纸牌屋(第1版)
版本2 在这里。 简单的挑战:给定一个整数,用给定数目的故事画一张纸牌屋。如果数字为负,则将房子上下颠倒。例子: Input: 2 Output: /\ -- /\/\ Input: 5 Output: /\ -- /\/\ ---- /\/\/\ ------ /\/\/\/\ -------- /\/\/\/\/\ Input: 0 Output: <empty, whitespace or newline> Input: -3 Output: \/\/\/ ---- \/\/ -- \/ 输入可以是数字或字符串。输出必须与显示的完全一样,并允许前导和/或尾随空格和换行符。 这是代码高尔夫球,因此每种语言中最短的程序/功能可能会获胜!

10
加倍一些钻石
问题 给定一个正整数n,其中n < 100 输出菱形图案,如下所示: 输入项 n=1 /\/\ \/\/ 输入n=2: /\ /\ //\\/\/\//\\ \\//\/\/\\// \/ \/ 输入n=3: /\ /\ //\\ /\ /\ //\\ ///\\\//\\/\/\//\\///\\\ \\\///\\//\/\/\\//\\\/// \\// \/ \/ \\// \/ \/ 输入n=4: /\ /\ //\\ /\ /\ //\\ ///\\\ //\\ /\ /\ //\\ ///\\\ ////\\\\///\\\//\\/\/\//\\///\\\////\\\\ \\\\////\\\///\\//\/\/\\//\\\///\\\\//// \\\/// \\// \/ \/ …

8
为我的孩子搭建楼梯
前几天,我儿子让我用乐高积木为他建造一个楼梯。我想到了这样的事情: 然后我的孩子问我一个程序,该程序使用最少的字节数在计算机屏幕上生成了类似的阶梯。我不太擅长于代码高尔夫,所以我需要您的帮助。我需要一个程序: 接收带有楼梯所需的级别数的正整数。 输出带有您在图像中看到的图案的楼梯图。 输出将为文本格式,但可以将积木区分开。例如,您可以将'█'字符用作半个字块,并以所需的任何颜色对其进行绘制,或者仅选择您选择的任何字符。 限制条件: 块需要具有三种不同的颜色,并且将使用尽可能长的颜色(如果输入为1或2,则没有足够的块来使用所有三种颜色)。如果需要,可以使用'░▒░'字符,例如,也可以选择三个不同的字符。 同一行中不能有两个相同颜色或图案的块并排放置。 只要画上楼梯,我儿子就不会真正在意尾随空间或换行。 示例(对字符的错误选择表示抱歉): Input: 1 Output: ██ Input: 2 Output: ██ ▓▓ Input: 3 Output: ██ ▓▓ ██░░ Input: 5 Output: ██ ██ ██░░ ██░░ ██░░▓▓

3
Buzzby Berkeley机器人Hokey Pokey
Buzzby Berkeley机器人Hokey Pokey 任务 写一个程序或函数来产生ASCII艺术动画,描绘出一系列机器人以Busby Berkeley编号的风格随着Hokey Pokey(或Cokey,如果您愿意的话)的歌词跳舞! 示例输出 输入项 接受三个参数(假设是有效的): N =生产线上的机器人数量(最小值= 6) B =一次“拍子”的持续时间(以毫秒为单位)(最小值= 10) D =连续机器人之间的毫秒延迟(最小值= 0) (在上面的示例输出中:N = 8,B = 380,C = 75) 技术指标 舞台上连续显示N个机器人。 舞台下方一次显示“诗句”中的一行文本(居中到1个字符内,并用引号引起来)。 机器人对每行进行操作,直到每行重复5次为止。 通过使用一组ASCII字符描绘机器人并执行指定的持续时间,然后执行下一个动作,来执行动作。动作的持续时间以“节拍”为单位。1所拍的持续时间是一毫秒数,乙。 当第一个机器人显示一行经文时,它会立即开始对每一行经文执行动作。 随后的每个机器人都将其动作延迟到在其右侧(您的左侧!)机器人开始其动作之后的特定时间(D)为止。 机器人的描述因ASCII字符而异,ASCII字符代表机器人的“天线”,其中有5种可能的类型,每次运行程序时都会随机分布。 每种类型的天线必须至少由一个机械手使用,但是在少于3个其他机械手分开的任何机械手上都不得出现相同类型的天线。任意两种天线的数量相差不得超过1(例如1xType_4和3xType_5是非法的,因为3-1> 1) 诗句与动作 整节经文重复5次,一次重复1行... Line Text Action/Beats, ---- ----------------------------- ------------------------------------ 1 You put your ? in …

9
数字储物柜!
给定正整数<100(从1到99,包括1和99),输出那么多的储物柜。 储物柜的定义如下: +----+ | | | | | | | nn | +----+ 其中nn的储物柜号码以10为底。如果有1位数字,则其前面用0表示。例如,2号储物柜显示数字02。 储物柜可以堆放,但最多只能堆放2个: +----+ | | | | | | | on | +----+ | | | | | | | en | +----+ on表示奇数,en偶数。储物柜也可以彼此相邻放置。 +----+----+ | | | | | | | | | | 01 | …

21
雕刻一些ASCII珠宝!
3月13日被认为是“ 国家珠宝节”,这是这一挑战的主题。所以,给定一个整数n,其中n大于0,创建一个ASCII宝石。例如: n = 1 n = 2 n = 3 ______ ____ / \ __ / \ \ / / \ \ / \ / \ / \ / \ / \/ \/ \/ 底部定义为珠宝中最高的一对\/。其余的是顶部。对于上面的示例,其中n = 1: Bottom: \ / Top: __ \/ / \ 如您所见,底部由n + 1多层构成,\/中间各层之间有(1 * …

18
两条道路分叉成黄色的木头(第2部分)
这是系列中的第二部分,第三部分是两条道路在黄色的树林中分叉(第3部分) 这是基于两条道路在黄色木材中分叉(第1部分),这是我的先前挑战。这是相当受欢迎的,但也很琐碎(一个Java回答52字节!)所以我做了一些更复杂的事情…… 灵感来源 这一挑战的灵感来自罗伯特·弗罗斯特(Robert Frost)的著名诗作《未走的路》: 两条道路在黄色的树林中分叉, 对不起,我无法同时行进 ,成为一个行人,我站了很久,尽我所能地 低头看 向灌木丛中的弯曲处。 ... 2段落已删去... 我将叹息地告诉这个问题,它的 年代久远了: 两条路在树林中分叉,我- 我走过的路少了, 这一切都改变了。 请注意倒数第二行I took the one less traveled by,。您的目标是在字符串输入中找到行驶最少的道路。您必须输出彼此不同的2个值之一,以信号表明您应该转向哪种方式以减少行驶的道路。一旦路岔(六边形的轨迹变为数字),您就在交叉路口。从那里开始,将有2条由数字组成的路径。位数最低的路径将是未走的路。请注意,未走的道路的路径可能较大,但路径总和较低。下面是一些程序的示例/测试用例,这些程序针对未采用的路径打印“左”或“右”: 1 2 1 2 1 2 # # # left (3 < 6) 1 2 2 2 1 1 # # # left (4 < 5) …

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.