Questions tagged «ascii-art»

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

11
醉酒主教
在公共密钥密码术中,公共密钥指纹是用于标识较长公共密钥的一小段字节序列。 特别是在SSH中,它们可以用来验证服务器是否实际上是我希望与之通信的服务器,并且不受中间人攻击的攻击。 它们通常表示为十六进制数字字符串,因此将其与我期望的指纹进行比较可能相当无聊且乏味: 37:e4:6a:2d:48:38:1a:0a:f3:72:6d:d9:17:6b:bd:5e 为了使操作更简单,OpenSSH引入了一种将指纹可视化为ASCII艺术的方法,如下所示: +-----------------+ | | | | | . | | . o | |o . o . S + | |.+ + = . B . | |o + + o B o E | | o . + . o | | .o | +-----------------+ …

11
让我们演奏陶笛
众所周知,《塞尔达传说》系列是有史以来最好的游戏系列之一。为此,让我们在ocarina上播放一些歌曲。 挑战: 编写一个程序,给定一首歌曲,将特定歌曲的乐谱输出到stdout。 输入: 您必须输出乐谱的歌曲将由唯一的三个字符组合给出,如下所示: zel - Zelda's Lullaby sas - Saria's Song eps - Epona's Song sos - Sun's Song sot - Song of Time sst - Song of Storms 奖励歌曲,每首-7%: mof - Minuet of Forest bof - Bolero of Fire sow - Serenade of Water nos - Nocturne …

30
垂直打印正弦波
打印在终端上垂直滚动的连续正弦波。该程序不应终止,而应连续向下滚动该波形(除非以某种方式被中断)。您可能会认为溢出不是问题(即,您可以使用带有递增计数器的无限循环或无限递归)。 该波应满足以下特性: 幅度= 20个字符(峰值幅度) 期间= 60至65行(含) 输出应仅包含空格,换行符和 | 每行输出后,暂停50ms 样本输出: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | …

6
可视化眼睛
您可能记得也可能不会记得Xeyes,它是X窗口系统附带的演示程序(据我所知,仍然附带)。其目的是在鼠标光标后画一双眼睛: 您的挑战是用ASCII艺术重新创建Xeyes。编写一个程序或函数,无论用户单击什么,它都会画出两只ASCII艺术眼(在下面指定),然后移动他们的瞳孔以指向光标的方向。 上面的GIF记录了这种非Golf的Ruby实现,可以与任何最新版本的Ruby一起运行。您可能还会发现它对于Xterm控制序列很有用。 技术指标 这是代码高尔夫球,因此以字节数最少的解决方案为准。 这是一个ASCII艺术的挑战,让你的程序必须提醒使用ASCII字符特异性,人物-,.,|,',0,空间和换行符。1 2 这是一个交互式的挑战,因此您的程序必须接受输入并实时绘制其输出。3 在程序开始接受输入之前,它应初始化至少20行20列的空白画布。除非用户单击画布,否则它不应绘制任何内容。 每当用户在画布上单击4时,程序应清除任何先前的输出,然后在画布上以最靠近鼠标光标位置的字符为中心绘制这些ASCII眼睛。5 6(以下✧表示鼠标光标,不应绘制。) .---. .---. | | | | | 0|✧|0 | | | | | '---' '---' 注意瞳孔如何“指向”光标。 每当鼠标光标在画布上移动时,程序应重新绘制瞳孔,使它们继续指向光标,例如7: ✧ .---. .---. | 0| | 0| | | | | | | | | '---' '---' 学生指点 假设我们枚举每只眼睛的内部九个字符的位置,如下所示: .---. |678| |591| …

6
ASCII迷宫渲染3000
我不喜欢打字,所以我用一种非常简单的格式画迷宫: # ##### # # # ### # # # # # # # # ##### # 它不是迷宫吗?当然,我认为所有迷宫都应看起来像3d,与这个挑战相似但不相同,以最大程度地提高迷宫感,所以我(勉强地)手动更新了迷宫,使其看起来像这样: +-----+ +-----------------------------+ |\ \ |\ \ + \ \ + \ \ \ \ \ \ +-----------------------+ \ \ \ \ \| |\ \ \ \ \ +-----------------------+ \ \ \ \ …

30
这个数字是-2的整数次幂吗?
有很多聪明的方法来确定数字是否为2的幂。这不再是一个有趣的问题,因此让我们确定给定的整数是否为-2的整数次幂。例如: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² 规则 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您的输入是一个整数,如果该整数是-2的整数次幂,则输出必须是一个真实值,否则,则必须是一个虚假值。不允许其他输出(例如警告消息)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 获奖条件 这是一场代码高尔夫球比赛:字节数最少(在您选择的编码中)的答案是获胜者。

10
方形,钻石,方形,钻石
任务 给定一个非空的小写ASCII字母字符串a- z,请使用第一个字符,并: 用第二个字符的副本方块围住它, 用第三个角色的副本菱形包围它, 用第四个字符的副本方块围住… …在正方形和菱形边框之间交替,直到字符串结尾。边框之间的空白应由ASCII空格()表示。 要添加正方形边框,请在整个当前“工作数组”周围精确绘制一个正方形: sssssssssss t s t s t t s t t s t t s t t s t aaa t s t aaa t s t aca t => st aca ts t aaa t s t aaa t s t t …

30
天哪,吉萨高尔夫!
“吉萨数”(俗称“ 蒂米数”)是指数字代表金字塔的任何数字(A134810)。例如,“ 12321”是一个吉萨数字,因为它可以像这样可视化: 3 2 2 1 1 但是,“ 123321”之类的字符不是吉萨币,因为金字塔的顶部有两位数字 33 2 2 1 1 换句话说,如果满足以下所有条件,则数字为吉萨数: 它的位数是奇数,中间的数字是最大的 它是回文的(相同的向前或向后读取),并且 数字的前半部分严格增加一个。(由于必须是回文,这意味着数字的后半部分必须严格减少一位) 您必须编写一个采用正整数作为输入的完整程序或函数,并确定它是否为吉萨数。您可以将输入作为字符串或数字。如果它是吉萨数,则输出真实值。否则,将产生虚假的值。 共有45个吉萨数字,因此这些输入中的任何一个都应产生真实值: 1 2 3 4 5 6 7 8 9 121 232 343 454 565 676 787 898 12321 23432 34543 45654 56765 67876 78987 1234321 2345432 3456543 4567654 5678765 …

12
在ASCII艺术中绘制渐变
任务描述: 编写尽可能短的程序以绘制ASCII艺术中的径向渐变。输出网格的大小是预定义的。提供渐变的中心点和字符作为程序的输入。 渐变大小为70×25个字符单元格,具有以下规格 网格的左上角具有坐标(0,0)。 包含所提供字符的渐变被映射为35个长度单位。长度单位是一个字符高和两个字符宽(因为monospaced fonts通常字符的高度是宽度的两倍)。 在这35个LU中,当前距中心点的距离乘以渐变字符数 / 35即可得到该点要绘制的字符的索引。索引的小数在此处四舍五入。长度单位应保留为实数。(当然,如果结果相同,则实现无关紧要。) 超过这35 LU,仅出现最后一个渐变字符。但是,由于最后一个梯度“带”已经在 35 LU 之内开始,因此最后一个字符开始已经出现在35 LU之内。 输入: 输入在标准输入上给出,由三行组成,每行以换行符终止: 渐变中心点的x坐标 渐变中心点的y坐标 用于绘制渐变的字符。这些可能包括空格。 输出: 输出是上面标准输出上的规则所定义的渐变。标准错误流将被忽略。渐变的每条线均以换行符终止。除输入定义的字符外,不能出现其他字符。 样本输入1: 58 14 .:;+=xX$& 样本输出1: &&$$$$$$$$XXXXXXXXxxxxxxxxx===========++++++++++++++++++++++++++++++++ &$$$$$$$$XXXXXXXXxxxxxxxxx=========+++++++++++++;;;;;;;;;;;;;;;;;;;;;+ $$$$$$$$XXXXXXXXxxxxxxxx=========+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;; $$$$$$$XXXXXXXXxxxxxxxx========++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $$$$$$XXXXXXXXxxxxxxxx========+++++++++;;;;;;;;;;;;;:::::::::::::;;;;; $$$$$XXXXXXXXxxxxxxxx=======+++++++++;;;;;;;;;;;:::::::::::::::::::::; $$$$$XXXXXXXxxxxxxxx=======+++++++++;;;;;;;;;::::::::::::::::::::::::: $$$$XXXXXXXXxxxxxxx=======++++++++;;;;;;;;;::::::::::::::::::::::::::: $$$$XXXXXXXxxxxxxx========+++++++;;;;;;;;::::::::::...............:::: $$$XXXXXXXXxxxxxxx=======+++++++;;;;;;;;:::::::::...................:: $$$XXXXXXXxxxxxxx=======++++++++;;;;;;;::::::::....................... $$$XXXXXXXxxxxxxx=======+++++++;;;;;;;::::::::......... ........ $$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::........ ...... $$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::....... ..... $$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::....... ..... $$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::....... ..... $$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::........ ...... …

4
地牢爬行者
输入项 表示地牢壁的二进制矩阵中号中号M 玩家在地牢中的位置(x ,y)(X,ÿ)(x,y)。 玩家当前面对的方向ddd(0 =北,1 =东,2 =南,3 =西) 输出量 播放器视场中墙壁的伪3D表示形式,为30 × 1030×1030\times 10字符的ASCII艺术。 下面是几个可能的输出框架,以及相应的地图和指南针,以帮助您掌握其窍门(但绘制地图和指南针并不是挑战的一部分)。 规格 视场 玩家在其视野中有131313面墙,从一种一种A到中号中号M标记。以下是在所有可能的方向上墙相对于播放器的位置(黄色)。 画墙 墙壁应该从一种一种A画到中号中号M任何部分都可能被更靠近的墙壁覆盖,则应按照此精确顺序绘制墙壁。只要最终结果相同,您当然可以实施不同的方法。 整个输出画有7点不同的字符:" ","'",".","|","-","_"和":"。 由于详细说明此挑战主体中的墙壁形状会使其过长,因此可以在以下TIO链接中提供它们: 在线尝试! "?"在这些图中,不属于给定墙的字符用标记。必须将它们视为完全不绘制的“透明”字符。另一方面,墙内的所有空间都是“实体”,并且必须覆盖以前可能在此绘制的任何其他字符。 规则 关于输入 您可以采用任何合理格式的中号中号M,XXx,ÿÿy和ddd。 您可以使用0索引或1索引的坐标。 您可以为指示使用4个不同的值。 保证矩阵至少为3 × 33×33\times 3。 您可能会假设边缘上总是有围墙。 保证播放器位于一个空的正方形上。 输入保证有效。 关于输出 墙壁必须完全按照描述绘制。 但是,输出格式也很灵活:单个字符串,字符串数组,字符矩阵等。 只要前后空格一致,就可以接受。 这是代码高尔夫球。 测试用例 所有测试用例都使用以下矩阵: [ [ 1, 1, 1, 1, …

30
布置地毯
受到这个SO问题的启发。 挑战: 输入: 字符串sss 角色ccc 输出: 在所有四个方向上创建字符串的菱形正方形ASCII艺术作品,字符串的第一个字符在中心并向外。在方形ASCII艺术地毯中,该字符用作填充物。这听起来可能很模糊,所以这里有个例子: 输入:sss = string,ccc = . 输出: ..........g.......... ........g.n.g........ ......g.n.i.n.g...... ....g.n.i.r.i.n.g.... ..g.n.i.r.t.r.i.n.g.. g.n.i.r.t.s.t.r.i.n.g ..g.n.i.r.t.r.i.n.g.. ....g.n.i.r.i.n.g.... ......g.n.i.n.g...... ........g.n.g........ ..........g.......... 挑战规则: 输入字符串也可以是字符列表 输出也可以是字符串列表或字符矩阵 输入字符串和字符保证为非空 该字符串保证不包含字符 字符串和字符都只能是可打印的ASCII(unicode范围[32,126],空格''到波浪号'〜'并包括波浪号'〜') 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法以及返回类型的完整程序。您的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例: 输入:sss = 11111,c=c=c= = 0 输出: 00000000100000000 00000010101000000 …

30
打印物理乘法表
矩形具有这个不错的属性-一个矩形正好由字符组成!n × 米n×mn \times mn × 米n×mn \times m A ..更有趣的属性是矩形可以在乘法表中很好地对齐-例如表:3 × 33×33 \times 3 # ## ### # ## ### # ## ### # ## ### # ## ### # ## ### 您面临的挑战是,给定数字(),输出格式化的乘法表。ñnnn > 1n>1 n > 1n × nn×nn \times n 规则 您可以在上方或下方输入一个ñnn 默认的I / O规则适用 您可以选择任何非空白字符来表示块。其他字符(尽管换行符很特殊)都被认为是空格。对于不同的输入,所选字符可以不同,但​​是在整个输入中必须相同 只要表格对齐,结果就可以有不需要的字符,并且不会出现不属于所需输出的所选字符 …

6
检测失败的城堡
据我所知,引力的有趣方面之一是,您不能只让物体漂浮在空中。 但是,似乎并不是每个城堡建设者协会的人都知道这一事实,导致了像这样的城堡的出现: # # # # # # ### #### #### # # #### # # #### ### ############## ### ###### ###### ### ##### ##### ### ### `````````````````````````````` 还有这个: # # # # # # ############## ### #### ### # # # # # # # # ### #### ### …

21
培根节快乐!
今天是培根日,这可能就是为什么今天参加比赛的帽子的名称是“ Mmmm Bacon”。还有什么更好的方式来庆祝用培根制成的充满乐趣的二维矩阵来庆祝培根的一天!一条1根培根条表示如下: ----- )===) (===( )===) ----- 您的目标是在元组(x,y)中获得两个坐标,其中x和y是非零正整数,您将创建培根并以某种格式(列表,数组,字符串)返回。 输入和输出: Input: (2, 1) Output: ---------- )===))===) (===((===( )===))===) ---------- Input: (1, 2) Output: ----- )===) (===( )===) ----- )===) (===( )===) ----- Input: (2, 2) ---------- )===))===) (===((===( )===))===) ---------- )===))===) (===((===( )===))===) ---------- 规则: 从第二个测试用例中可以看到,如果将多个培根堆叠在一起,则-----每根培根上方和/或下方只有一个分开。这意味着像这样堆叠培根是无效的: ----- )===) (===( )===) …

13
ASCII框的数量
介绍 在此挑战中,将为您提供矩形长方体(3D框)的网(展开的表面)的ASCII表示作为输入。格式是这样的: ....+--+....... ....|##|....... ....|##|....... ....|##|....... +---+--+---+--+ |###|##|###|##| +---+--+---+--+ ....|##|....... ....|##|....... ....|##|....... ....+--+....... 长方体的每个面都是#s 的矩形,由- +-|字符包围。网的外部充满.s。网络将始终具有相同的方向:有一个中间面被其四个相邻面围绕着,中间面的对应部分位于输入的右边界。输入用.s 填充为矩形,并且不会包含.s的额外行或列。 任务 您的任务是将上述图表作为输入,并计算它表示的长方体的体积,这只是其长,宽和深的乘积。您可以将输入作为换行符分隔的字符串或字符串数​​组。 每个边的长度是- +两端字符之间的距离。例如,水平边缘的+--+长度为3,垂直边缘的长度为3 + | | | + 的长度为4。边的最小长度为1。上面的示例长方体的体积为2 * 3 * 4 = 24。 规则和计分 您可以编写完整的程序或函数,最低的字节数为准。 测试用例 .++.. +++++ +++++ .++.. 1 ...++.... ...||.... ...||.... +--++--++ +--++--++ ...||.... ...||.... ...++.... 3 …

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.