Questions tagged «ascii-art»

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

3
生成牙签序列
什么是牙签序列? 根据维基百科 在几何形状中,牙签序列是一个二维图案序列,可以通过将线段(“牙签”)重复添加到序列中的先前图案来形成。 设计的第一阶段是单个“牙签”或线段。第一阶段之后的每个阶段均采用先前的设计,并针对每个裸露的牙签末端,在该末端以直角居中放置另一个牙签。 此过程导致增长的模式,其中阶段n的段数以分形模式在0.45n2和0.67n2之间振荡。如果T(n)表示阶段n的段数,则当n接近2的幂时,出现T(n)/ n2接近其最大值的n值。发生在大约是2的幂的1.43倍的数字附近。牙签序列中各阶段的结构通常类似于T平方形或Ulam-Warburton细胞自动机中的细胞排列。 该图案中所有被牙签包围的边界区域(但不能被牙签交叉)必须是正方形或矩形。据推测,牙签图案中的每个开放矩形(即,一个完全被牙签包围但内部没有牙签的矩形)的边长和面积为2的幂,其中边长之一最多两个。 任务 您必须制作一个程序或函数,使其从STDIN,函数自变量或命令行自变量中获取输入,并在该阶段进行嘟嘟分形。除不可避免的情况外,禁止在行尾使用换行符。边界框必须最小,包括前导和尾随空间。对于初始线,我们\在空间中设置两个对角线。输入保证小于2000。至少一行具有非空格字符。允许尾随空格。 测试用例 1 \ \ 5 \ /\ /\ / /\ \/\/\ \ \ \ \ \/\/\ \/ / \/ \/ \

8
感恩节火鸡
(希望它仍然是您的感恩节) 您在感恩节晚餐上得到了火鸡,但您不知道如何均匀分配。问题是,有些人比其他人吃得更多,所以您需要找到解决方案 输入值 将有两个输入。首先将是各种人的ASCII艺术。 o o \|/ \|/ | | | / \ / \ 技术规格 每个人占用3列的宽度。每个人都由一列空格分隔。每个人的最上层是一个o。在下方,分别o以1和偏移-1x \和/。从输入o到的第二行到最后一行,|每人这些的数量即为它们的“高度”。您需要从每个人中提取的唯一数据是他们的“身高”。 总会有至少一个人。每个人的身高至少为 2。程序应处理的最大高度至少为64。 如果您想用空格填充输入以形成矩形,请在答案中指定。 第二个输入是土耳其。火鸡并不是真正的火鸡,而是更大的NxM火鸡尺寸。如果第二个输入为3x2,则土耳其的尺寸为3 * 2,总面积为6。 输出量 输出可能是列表,或者是您语言最接近的替代项(例如Array)。您也可以输出一个字符串,其值之间用空格分隔。 每个人的值应按输入顺序输出。 挑战 您的目标是在人们之间划分火鸡的面积。 一个示例场景: 假设他们是两个人,身高分别为3和6。如果有火鸡5x3。土耳其需要分配的总面积为15。 现在,您将如何在所有人之间分配它?就是这样: the_persons_height TurkeyForAPerson = -------------------- * turkey_area sum_of_all_heights 这意味着,对于第一个身高为的人3,他们将得到3/9*15火鸡,或5,对于第二个身高为的人,6他们将获得6/9*15或10火鸡。 输出量 输出必须仅由数字和组成.,除非您选择获得奖金。在这种情况下,它只能由数字,空格()和斜杠(/)组成。 完整的例子 输入: 6x5 o | o \|/ \|/ …

7
在下雨吗?我不知道
这些是雨滴: ! | . " : 这些是云粒子: ( ) _ @ $ & 我想让您验证一下,是否有文本在下雨。如果在每个雨滴上方都存在一个云团,则在下雨。每个雨滴都必须有一个云粒子。输出表示您的结论的真实或虚假值。 有效的例子 (@@@@@@) ( $ & ) Q ( ) .. . ! : . |" ! . ()()() ...... @_$ & errrr h_r-5 .:. . " 无效的例子 ! () $$$$$ ( ) ::::: ..... 这是一个代码高尔夫球,因此最短的字符程序胜出。

2
傍的ASCII游戏
乒乓球 挑战在于以尽可能短的代码重新创建ASCII字符的经典游戏“ pong”。 要求/规格 “屏幕”应为45x25字符。 空格实际上应该是空格。 球拍应为9个等号:=========并且应位于最上面和最下面的行中(我知道原著是左右并排演奏,而不是上下演奏,但我认为这对ascii pong更好)。 球可以是小写或大写o或零。 任何类型的两个输入按钮(如果用户按下使输入中显示字母的键也很好,也可以),以一次左右移动播放器的一个或两个字符。 球在击中桨或壁时需要以适当的角度跳动(提示:取反x或y差值)。 分数应显示在输出中的某处。得分是玩家成功击球的次数。 如果球未击中球员的球拍,请终止程序。 应该有某种AI(即使AI的球拍刚好与球的x值匹配)。 球不能垂直或水平直线移动。 开始屏幕/第一帧应如下所示: ========= o ========= score: 0 计分 这是代码高尔夫球,因此最短的代码获胜...但是,有一些好处可以减少字符数: -30个字符:根据球在球拍上的击打位置来改变球的轨迹 -10个字符:使游戏随着时间的推移而加速 -20个字符:使AI出色 -20个字符:避免出现任何情况,即玩家保持静止并且游戏永远进行而不会输赢(由某些轨迹和AI模式引起) -20个字符:使球开始以(半)随机轨迹运动 -25个字符:添加重置选项 这是一个在JavaScript中没有奖金的简单例子: //init var x = 22, y = 12, xd = Math.random() < 0.5 ? -1 : 1, yd = 1, …

8
打印英国国旗!
受到美国国旗印刷的启发!这是直接复制,但带有英国国旗,因为它具有一些对称性,但仍然相当复杂! 您面临的挑战是如何以尽可能少的字节产生以下ASCII艺术!将您的头部/屏幕(不要同时!)旋转90度以正确观看。 __________________________________________ |\ \XXXXXXXXXXXX 000000 XXXXXXXXXXXX//0/| |0\ \XXXXXXXXXXX 000000 XXXXXXXXXXX//0/ | |\0\ \XXXXXXXXXX 000000 XXXXXXXXXX//0/ | |\\0\ \XXXXXXXXX 000000 XXXXXXXXX//0/ /| |X\\0\ \XXXXXXXX 000000 XXXXXXXX//0/ /X| |XX\\0\ \XXXXXXX 000000 XXXXXXX//0/ /XX| |XXX\\0\ \XXXXXX 000000 XXXXXX//0/ /XXX| |XXXX\\0\ \XXXXX 000000 XXXXX//0/ /XXXX| |XXXXX\\0\ \XXXX 000000 XXXX//0/ /XXXXX| |XXXXXX\\0\ \XXX 000000 …

1
和臭气-第一部分
设置 考虑一个包含29个编号单元格的奇怪形状的盒子,如下图1所示。 在此2D盒子内有两种正方形动物:粗毛和臭鼬。图1(a)用蓝色显示了一些粗枝,用红色显示了一些臭味。每个生物恰好占据一个网格单元。该盒子可能包含0到26个粗线之间的任何位置,但始终只包含两个臭鼬。 在重力作用下,碎片和臭气坐在盒子的底部,堆积在它们下面的任何物体的顶部。这两个物种都非常懒惰,并且永远静止不动。 该框还包含一个圆点,用黑色正方形表示,恰好占据一个网格单元。该STOT是不受到重力。 如图所示,该盒子具有位于单元28底部的一个开口。 为了以文字形式表示框中的粗线,阴茎和茎的配置,我们使用29个字符的字符串(每个网格单元一个字符),按枚举顺序.表示,表示一个空单元格,o表示一条粗线,x表示一个污点,并@代表矮胖。例如,图1(a)的配置由字符串表示.........@...o....ooo..xox...。 操作方式 盒子可以旋转 90°的任意倍数。当盒子旋转时,叶屑和臭虫在它们的网格内保持静止。旋转完成后,它们会直接向下掉落,直到i)它们被下面的墙壁堵住;ii)它们被下面的小树枝,sm茎或草梗堵住;或者iii)它们掉落到单元格28的孔中并退出框。矮脚不会掉下来;即使生物停留在其当前细胞上,它也保持固定在其当前细胞中。 在生物掉落并达到新的稳定状态之前,不能再次旋转盒子。 从字面上看,框旋转表示+为顺时针旋转90°,旋转|180°和-逆时针旋转90°。 此外,可以在四个罗盘方向上以一个网格单元为增量移动笔杆。举动可能不会:i)引起桩与生物之间的碰撞(即,目标网格单元必须为空),ii)导致桩与壁之间的碰撞,或者iii)导致桩通过以下方式离开箱子单元格28中的孔。 另外,如果小脚上有任何生物(相对于当前重力),小脚也可能不会移动。 以文字,STOT移动被记<左,>右,^对了,v对了。总是相对于图中所示的“标准”(非旋转)框架指定点移动。也就是说,如果该笔杆位于单元格10中,则移动^将始终将其移动到单元格5中,并且该移动>将始终将其移动到单元格11中。框的方向不会影响移动的方向。 使用从左到右的字符串对操作序列进行编码。例如,字符串+<<^-表示盒子顺时针旋转90°,然后针杆左移两次并向上移动一次(相对于标准框架),然后盒子逆时针旋转90°回到其原始方向。 挑战 出于非常好的原因(我无法透露),我们希望从包装盒中拔出所有胡扯,而又不拔出一个sm子。为此,我们可以使用上面具体描述的操作。 在解决此问题之前,我们应该模拟一下各种操作将如何影响包装盒的内容,这是此挑战的重点。 您必须编写一个程序,该程序接受来自stdin(或等效)的两个参数: 描述盒子初始状态的字符串 一系列的操作 您可以假设这两个参数在语法上都是有效的,该框以标准方向开始,并且该框的初始状态是稳定且合法的。 程序必须输出到stdout(或等效的)以下之一: (情况1)如果移动顺序合法(不违反短杆移动规则)并且不导致任何臭味离开盒子,盒子的最终状态,用字符串表示。盒子的最终方向并不重要。 (案例2)单个感叹号!,如果移动顺序不合法或导致任何臭味离开盒子 计分 获胜的程序是按字节数计算的最短程序,它受制于一些非常有利可图的奖金乘数: 如果不是为情况1打印编码的输出,则声明为0.65的乘数,程序将使用包装字符,臭味,臭脚和空单元格的规范字符,以最终状态和方向输出盒子的ASCII图片,而不是输出情况1的编码输出,并放置一个*单元格中位于孔28外部的单元格中。前导和尾随空格将被忽略。 例如,如果将图1(a)旋转90°,则输出为 . . ..... .o... xo.@. *ooo.. x . 如果不是为情况1打印编码的输出,则程序要求输出0.22的乘数,该程序将输出图像文件或显示GUI窗口,并以最终状态和方向显示框的图片。图片应采用图1(a)的样式,并使用彩色框显示网格单元,墙壁和生物/脚架。 如果不是为情况1打印编码输出,则程序声明0.15的乘数,该程序将输出动画的.gif或动画的GUI窗口,以1秒的间隔显示模拟中的所有中间状态。适用与0.22乘数相同的图像规则。动画的第一帧应描绘模拟的初始状态。此外,动画应显示“隐藏”的中间状态,即 旋转后,每动画帧中的小球/ mols进入稳定配置的状态 盒子在180°旋转的中间90°旋转状态 如果程序产生上述样式的动画.gif或动画GUI窗口,但以20 fps的速度运行并显示,则声明乘数为0.12 盒子旋转的平滑连续动画 平滑,连续地动画显示小脚移动,以及滑倒的小草/臭虫处于稳定状态 穿过盒子28孔掉落的碎片应显示为从盒子中出来,并且应该完全消失在外面。您可以为动画选择自己的时间,只要执行不超过1次/秒即可。 总分是floor( base …

15
创建一个尽可能靠近正方形的网格
创建使网格尽可能靠近正方形的函数或程序 您将得到一个整数N作为输入,整数(1、2、3、25等) 输出必须是N个字母的完美矩形网格,并尽可能接近正方形 (wannabe)方块必须由用户指定的字母O或X之一组成 要点: 硬编码为仅O或X:+1 一个param(0/1,true / false,类似的东西)以旋转输出(例如5或8):-10 设计正方形(以某种方式同时使用O和X):-5 如果图案包含两种类型的字符(其中x / y轴> = 3)并且在水平或垂直翻转时保持不变(允许将Xs与Os交换),则该图案被视为有效 例子 INPUT: 4 INPUT: 5 INPUT: 8 INPUT: 9 OO OOOOO XXXX XOX OO XXXX OXO or rotated 90deg XOX 不允许的示例(行或列的长度不一样) BAD RESULT: 5a BAD RESULT: 5b BAD RESULT: 8 OOO OO OOO OO OO …

2
写书作家
这是一本打开的书的相当简单的ASCII描述: |\ | \ | \ | \ | \__________ | || | | || Lorem i | \ || psum do | \ || lor sit | \ || amet, | \ || consect | \||_________| 请注意,文本部分仅在右侧页面上,宽7个字符,高5个字符。另请注意,该书的顶部边缘有5个反斜杠和10个下划线。10来自文本宽度加3,而5是10的一半。 使用相同的缩放格式,我们可以调整书的大小以使其文本区域的宽度为w个字符,高度为h个字符,其中w为任何奇数正整数,h为任何正整数。 一些w × h的书:1×1、1×2、3×2 |\ |\ | \ |\ | \____ | …

4
减少Ascii艺术
这个挑战是来自Enlarge ASCII art的剪切粘贴,但是使用基于PetSCII的半块字符反转了: string=" ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█" 所以,我们的目标是通过减少1/2submited ASCII艺术。对于示例,从字符串中: OOOOOO OOOOOO OOOOOO OOOOOOO OOOOOO OOOOOO OO OOOOOOO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OOOOO OO OOO OO OO OO OOOOO OO OO OO OO OO OO OO OO OO OO OO OO …

4
圣诞南瓜!
用您选择的语言编写一个程序,该程序以圣诞树的形状排列,并以相同的形状打印。 不允许的内容: 打印出源文件 只是因为语句是文字而被解释器回显的语句(例如,仅使用python中的树形列表塔)

5
今天(9月24日)是本田的生日[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 4年前关闭。 今天(9月24日)是本田公司的生日。他们最初的公司名称是 本田技研工業株式会社 我想要求给本田做个礼物。任务是使程序打印公司名称。您可以根据需要进行任何操作,但是只有一个规则,即不允许使用Unicode。它应该是ASCII艺术。 我想问一下代码和输出。一如既往地确定优胜者,我将研究代码的长度,但是在这种情况下,肖像也很重要。 编辑:输出必须看起来与此类似:本田技研工業株式会社

1
ASCII艺术方程式可视化器
在没有好的方程编辑器的情况下处理方程是混乱且令人不愉快的。例如,如果我想表达一个积分及其解决方案,它可能看起来像这样: 积分[x ^ 3 e ^(-mx ^ 2 b / 2),dx] =-((2 + b m x ^ 2)/(b ^ 2 * e ^((b m x ^ 2)/ 2) * m ^ 2)) 在积分.wolfram.com上,这称为“输入形式”。没有人喜欢看到“输入形式”的方程式。可视化此方程式的理想方式是: (Wolfram称之为“传统形式”) 对于此代码高尔夫球,编写一个程序,该程序将采用“输入形式”的某些方程作为输入,并以“传统形式”的ascii表示形式可视化该方程。因此,对于此示例,我们可能会得到以下内容: /\ 3 | x | ------------ dx = | 2 \/ (m x b)/2 e …

7
文字圈
在控制台中找到一种使用字符制作给定半径的圆的方法。请指定字体名称和大小。另外,请至少提供一个输出示例。 例如: 输入: 3 输出: ****** ** ** ** ** * * ** ** ** ** ****** ...嗯,比半径为3的“手绘”“圆”看起来更好的东西。 奖励问题:椭圆。:)

13
画一个BCD二进制时钟
用ASCII 创建一个BCD 二进制时钟。如所暗示的,它将以六点点显示时间: (来源:Wikimedia Commons) 每列都是二进制编码的数字,从左到右读取小时,分钟和秒。小时以24小时格式给出。 显示时间是从命令行或从stdin(以更合适的为准)中读取的。如果为空,则应使用当前时间。 这里的输出大小受到一些限制,我们只能容纳两行文本。因此,您需要将点仅放入两行。字符.,:并'在方便的来到这里。 输入值 以ISO-8601格式显示的时间,即HH:MM:SS无小数秒。强制性的24小时制。输入可以为空,在这种情况下将使用当前时间。 输出量 上图的两行代表BCD二进制时钟。每行正好是六个字符长,并且只能使用空格,句点,冒号和撇号。 优胜者 以字节数为单位的最短代码获胜。在平局中,解决方案取得了第一个胜利。 样品输入1 (空) 样品输出1 . ''. :: 样品输入2 17:59:20 样品输出2 ..' .:..' 样品输入3 01:08:01 样品输出3 ' . .

4
权衡你的话!
挑战 给定两个字符串,每个字符串的长度最多为30个,由可打印的ASCII字符(代码)组成,以最小的代码字节数将它们放在天平上!这包括以下步骤:[ 32 ,126 ][32,126][32, 126] 计算并比较琴弦的重量 选择适当倾斜的ASCII艺术比例 将两根弦放在秤上 字符串可以作为数组,两个参数或任何其他合理的方法传递。 的一个字符串的重量被定义为的该字符串的字符,其中权重的总和: 空格的权重为0() 小写字母的权重为2(abcdefghijklmnopqrstuvwxyz) 大写字母的权重为4(ABCDEFGHIJKLMNOPQRSTUVWXYZ) 所有其他符号的权重为3(!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~) 秤看起来像这样: 。_ | _- * / \ |-* / \ _- * | / \ _- * | / \ / \ | * ------ * / \ | / \ | / \ | …

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.