Questions tagged «ascii-art»

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

4
绘制任意大小的平铺立方体
用ASCII艺术画一个任意大小的平铺立方体。 您将得到三个数字a,b和c,程序将输出一个a * b * c大小的立方体。 例子 3 3 3 -> ____ ____ ____ /____/____/____/| /____/____/____/|| /____/____/____/||| |____|____|____|||/ |____|____|____||/ |____|____|____|/ 5 2 3 -> ____ ____ ____ ____ ____ /____/____/____/____/____/| /____/____/____/____/____/|| /____/____/____/____/____/||/ |____|____|____|____|____||/ |____|____|____|____|____|/ 4 6 5 -> ____ ____ ____ ____ /____/____/____/____/| /____/____/____/____/|| /____/____/____/____/||| /____/____/____/____/|||| /____/____/____/____/||||| |____|____|____|____|||||| |____|____|____|____|||||/ |____|____|____|____||||/ …

3
实施图形计算器
涉及计算器的问题很多。但是,似乎没有涉及实现图形计算器的事情。 挑战 您将要编写一个完整的程序,该程序将多个公式用作来自STDIN的输入并将其图形化到STDOUT。输入将采用形式f1(x)=x^2-x-1。f后面会有一个数字0-9(含0-9),然后是(x)=,然后是要绘制图形的公式。您的程序应该能够接受输入,图形,接受更多输入,图形等。 这是代码高尔夫。 您的图表的X轴范围应为-5到5,每1/2单位至少有一个点的分辨率。Y轴要求相同。与现代计算器相比,这似乎是一个很小的范围,但增加此数量很可能是微不足道的。该图应在其上绘制轴,并带有+整数形式的刻度线。 应按正常的操作顺序对公式进行评估。这些公式中将没有任何垂直渐近线/未定义区域。该变量将始终为x。如果使用相同的方程式编号输入两个公式,则最旧的一个应被擦除并用新的公式替换。空白公式的计算结果应为零。由于公式可能不会总是给出1/2的整数倍,因此您需要四舍五入到最接近的1/2。 绘制公式的图形时,其线应由公式的数字组成。当一条线与某个轴相交时,该轴应在顶部绘制。当两条线相互交叉时,显示的内容无关紧要。 输入示例 f1(x)=x+1 输出量 + 1 | 1 + 1 | 1 + 1 | 1 + 1 |1 + 1| +-+-+-+-+-+-+-+-+-+-+ 1 | 1 + 1 | 1 + 1 | 1 + 1 | 1 + | + 输入值 f2(x)=(x^2)^0.25 输出量 + …

2
用四色的三聚氰胺平铺棋盘
任务: 考虑一下问题:“给一个棋盘一个正方形不见了的棋子,切成21个L-三聚氰胺”。有一个众所周知的建设性证明,即可以对任何大小为2的幂的方形棋盘进行此操作。它的工作原理是将棋盘分割成一个较小的棋盘,棋盘上有一个孔和一个大的Triomino,然后观察该Triomino可以递归地切成四个Triomino。 在此任务中,您需要将8x8棋盘切成L形的三角骨,然后用四种颜色着色,以使两个相邻的三角骨都不具有相同的颜色。 规格: 您输入的是孔的位置,以一对整数形式给出。您可以选择哪一个是列索引,哪个是行索引。您可以选择是从0还是从1开始,然后从哪个角开始增加。您可能需要A..H作为第一个坐标,而不是0..7或1..8。您也可以接受按字典顺序打包成单个整数0..63或1..64(行主要或列主要,从左到右或从右到左,从上到下或从上到下)的两个坐标。您可以编写完整的程序或函数。 您可以将图块输出为ASCII,彩色ASCII或图形图元。如果选择ASCII输出,则可以选择任何四个可打印的ASCII字符来表示四种颜色。如果选择彩色ASCII,则可以选择任何四个可打印ASCII字符,或者仅选择一个空格以外的字符。孔必须用空格字符表示。如果您的角色之一是空格字符,则靠近该孔或棋chess边缘的三聚氰胺可能不是这种颜色。 如果选择彩色ASCII或图形输出,则可以从环境中可用的#000,#00F,#0F0,#0FF,#F00,#F0F,#FF0,#FFF中选择任意四种颜色。如果选择图形输出,则您的图形基元必须以至少32x32像素的正方形填充,并以不超过两个其他颜色的像素分隔。如果以上超出您的环境的屏幕分辨率,则将最小尺寸要求放宽到仍然适合屏幕的最大正方形尺寸。 您可以选择给定棋盘的任何有效平铺。您可以选择任意四种平铺颜色。您在所有输出中选择的四种颜色必须相同,但是并不需要在每个输出中使用每种颜色。 例子: 输入的可能输出= [0,0](左上角) #??##?? ##.?#..? ?..#??.# ??##.?## ##?..#?? #.??##.? ?..#?..# ??##??## 同一程序的另一个可能的输出(输入= [0,7]): ??#??#? ?##?##?? ..xx..xx .?x#.?x# ??##??## ..xx..xx .?x#.?x# ??##??## 对于输入“ D1”(注意非标准但允许的棋盘方向),也可能会产生不同的程序, AABBCCAA ACBACBAC CCAABBCC ABBAADD AABDABDC BBDDBBCC BABBACAA AABAACCA

1
用ASCII绘制Recamán的序列
Recamán的序列(A005132)是一个数学序列,定义如下: A (n )= ⎧⎩⎨0A (n − 1 )− nA (n − 1 )+ n如果 n=0如果 甲(ñ-1)-ñ 为正,并且尚未在序列中除此以外一种(ñ)={0如果 ñ=0一种(ñ-1个)-ñ如果 一种(ñ-1个)-ñ 是正数,尚未在序列中一种(ñ-1个)+ñ除此以外A(n) = \begin{cases}0 & \textrm{if } n = 0 \\ A(n-1) - n & \textrm{if } A(n-1) - n \textrm{ is positive and not already in the sequence} \\ % …

1
疯狂的化学家和聪明的程序员
背景故事 您在化学实验室醒来时头昏眼花,并且意识到自己被一位老疯子化学家绑架了。由于他的年龄使他看不清视线,因此他希望您为他工作,只有这样,您才可以逃脱实验室。 任务 您的任务是返回分子的结构式,其化学式将作为输入给出。请注意,只有碳(C),氧(O)和氢(H)原子将用作输入。与化学公式不同,a 0是有效的量词,1不能省略a(例如C1H4O0,有效输入,但CH4不是)。 为了避免歧义,我们假设分子中不存在双键和三键。所有碳原子需要4个单键,所有氧原子需要2个,氢原子需要一个。我们还假设O-O债券也不存在。该分子不必存在也不是稳定的。 输入中的3碳原子绝不能超过以确保输出显示中的亮度。 您只应显示碳原子排列成直线而不中断的分子。嗯,没有C-O-C债券。 您必须返回之前规则未排除的所有可能分子。您不需要处理无效的输入。 以下示例显示了该分子必须处理的所有解决方案。 在分子式之一的页面平面上旋转180度被认为是多余的,不需要显示。 在下面的示例中,我将显示一个分子的所有可能的分子式,然后指出不需要显示的分子式。 例 输入: C2H6O2 首先,这里是此输入的所有可能公式(谢谢@Jonathan Allan) 01 H | O H | | H - O - C - C - H | | H H 02 H | H O | | H - O - C - …

7
绘制XNOR数字时序图
下面是一个(示意图)数字时序图,对于XNOR逻辑门。 ┌─┐ ┌─┐ ┌─────┐ ┌─┐ ┌─┐ ┌───┐ A ──┘ └─┘ └─┘ └─┘ └─┘ └─┘ └── ┌───┐ ┌───┐ ┌─┐ ┌─────┐ ┌─┐ ┌─┐ B ┘ └─┘ └─┘ └─┘ └───┘ └─┘ └ ┌─────┐ ┌─┐ ┌─┐ ┌───┐ X ──┘ └───┘ └───┘ └───┘ └──── 您的目标是完全按照图示复制它。 规则: 您可以打印它或返回多行字符串。 允许任意数量的配对和/或前导换行符; 允许尾随空格(但不能开头!); 如果您不能使用扩展的ASCII框绘图字符,则可以用它们代替unicode等效字符(不损失字节数)。 这是代码高尔夫球,因此最短的答案以字节为单位。 二进制表示 为了您的方便,上图的二进制表示如下: INP A=0101011101010110 …

3
ASCII艺术棋盘
在此挑战中,您将在下面绘制棋盘,并允许进行移动。 1.图纸 每个白色正方形都有5x9的空间。 每个黑色正方形都有5x9冒号。 木板被冒号的边界包围。 这些作品宽5个字符,位于中央广场的最底行。 棋子有4个字符宽。它们的位置略偏离右侧中心,左侧有3个空白方块,右侧有2个空白方块。他们坐在正方形底部上方一行。 除可选的尾随换行符外,董事会区域之外不得有空格。 棋盘和西洋棋棋子的绘制应严格按照所示,但: 您可以:用黑色方块和边框中的代替不同的符号,也可以用@黑色部分中的字母替代不同的符号(但黑色方块所用的符号不能相同)。 如果愿意,可以将棋子向左移动一个字符。 。 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : ::::::::: :::www::: _+_ ::::::::: :::::::::: : |_|_| :: _,,::: (/) :::)@(::: )@( :::(/)::: _,, ::|_|_|::: : |@| ::"- \~:: |@| :::|@|::: |@| :::|@|::: "- \~ :::|@|:::: : |@| :::|@|::: |@| :::|@|::: |@| :::|@|::: |@| :::|@|:::: : …

9
标记信号量编码器
您的目标是编写一个标志信号量编码器,根据Wikipedia上描述的信号量系统,它将给定的句子转换为相应的标志信号量字符。 假设输入是通过stdin(或等效输入)提供的单个句子。您的输出应该是一系列的信号量字符,每一行代表该句子中的一个单词。您只需要处理字母(AZ),并且应该忽略所有其他非空格字符,但是您必须能够处理大写和小写字母。您的输出允许包含额外的空格。 信号量字符必须显示为3x3的正方形,O中间是,标记位置由字符表示| - / \。每个信号量字符必须与相邻字符之间用空格分隔,并且每一行必须由空白行分隔。不必担心包装可能对于您的显示而言太长的单词-假装您的行有无限长。 输入样例: abcdefg hijklmn opqrstu vwxyz 样本输出: \ | / O -O O O O O- O /| | | | | | |\ \ | | / -O O O- O O O- O / / / / / / \ \ | / …

2
数论解释器,模n
一个句子数论(我们的目的)的是下列符号序列: 0和'(后继) -后继手段+1,所以0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加法)和*(乘法) = (等于) (和)(括号) 逻辑运算符nand(a nand b是not (a and b)) forall (通用量词) v0,v1,v2等。(变量) 这是一个句子的示例: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) 这not x是简写x nand x-实际的句子会用到(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

9
奎因大金字塔
该任务是一个非常简单的带有缠绕的quine挑战,您必须以金字塔形状输出源代码。金字塔的形状定义如下: 1 234 56789 ABCDEFG HIJKLMNOP QRSTUVWXYZa bcdefghijklmn ......etc...... 此挑战的主要局限性是您的Quine必须包含足够多的字节,以免阻碍金字塔的样式。例如,以下程序长度将起作用: 1-byter: 1st layer of the pyramid (not allowed by definition of a quine). 4-byter: 1st and 2nd layers of the pyramid. 9-byter: 1st, 2nd and 3rd layers of the pyramid. etc... 因此,如果您的程序是: QWERTY 这将是无效的,因为它将安排为: Q WER TY 但是,如果您的程序是QWERTYUIO,那就可以了: Q WER …

5
ASCII日历计划器
给定活动列表及其开始时间/日期,请输出一个ASCII艺术日历,显示相应日期的活动。保证所有活动都在同一个月内进行,没有两个活动可以在同一天进行,并且保证所有活动都可以放在日历框中。 日历的日期在每个框的左上角,这些框宽9乘5高,由-和包围|。星期几的两个字母的缩写位于第一行的上方,而星期几则从星期日开始。 例如,给定以下活动: 10/5/2018 - 9:00am - Sandbox calendar challenge 10/9/2018 - 9:00am - Post challenge to main 10/10/2018 - 10:00am - Profit 10/31/2018 - 7:30pm - Halloween party 输出此相应的日历: Su Mo Tu We Th Fr Sa ----------------------------------------------------------------------- | |1 |2 |3 |4 |5 |6 | | | | | …

5
追踪2D空间中的物体
描述 这项挑战的任务是设计一个程序或函数来跟踪n×nn×nn×n空间中的给定对象。 输入输出 您的程序将获得3个输入,可以以任何明智的方式获取: n将是飞机侧面的大小。(因此,对于n=5n=5n=5,您的平面将为5×55×55×5)。您可能会假设n它将始终是一个奇数整数。 s将是对象的起始位置,以一对(x,y)(x,y)(x, y)坐标给出。 D将是有序对的向量。D将遵循格式D=[(d0,t0),(d1,t1),...,(dn,tn)]D=[(d0,t0),(d1,t1),...,(dn,tn)]D = [(d_0,t_0),(d_1,t_1),...,(d_n,t_n)],其中dkdkd_k将始终是一个的'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW',对于基数和初级intercardinal方向,和tktkt_k将是的“滴答”的数量的整数。 有了这些输入,您的程序必须输出对平面中对象的跟踪。 规则 输出必须包含平面的边界。例如: -21012 + +┌─────┐ 2││ 1││ 0││ 1││ 2││ -└─────┘ 将是一个空的5×55×55×5平面的示例。上方和侧面的数字仅供参考,不需要打印。 您可以使用任何字符作为边界,只要它不是空格(或呈现为空格)即可。您选择的字符必须描绘整个平面,这意味着它们之间不能有间隙。 一些可接受的飞机包括: ┌──┐.... ---- +-+ ││。。| | | | ││。。| | | | └── ....; ----; +-+ 不可接受的飞机包括: .... .... …

4
挖掘采石场游戏中时光倒流
您喜欢在几分钟内观看完建筑或其他大型工作的时光倒流吗?让我们在这里做一个。 我们将看挖掘机的采石场,每天拍摄照片以查看整个进度。您的任务是向我们展示此过程! 采石场由其第一层的宽度定义。 挖掘机的定义是一天之内的挖掘能力。 输入值 采石场的宽度。整数,始终> =1。 挖掘机挖掘速度。整数,始终> = 1。 输出量 每天采石场的进度。从平坦的未接触地面开始,直至完成采石场。 规则 在最后一天,挖掘的单位可能少于挖掘机的能力。过多的工作不会在任何地方使用,因此您应该只输出完全挖掘的采石场。 必须整天都在输出中显示进度。您无法清除或覆盖输出中的前一天进度。 每天输出的尾随换行符和前导换行符的数量均可接受。 这是代码高尔夫,因此请使代码尽可能紧凑。 澄清说明 工作从平坦的地面开始。所显示地面的长度是采石场的宽度+2。因此,在采石场的两侧始终会有一个下划线字符。 __________ 挖掘采石场的宽度看起来像这样: _ _ \ / \ / \ / \/ 像这样的奇数宽度 _ _ \ / \ / \ / V 以下是采石场进度的示例: _ _______ V dug 1 unit _ ______ \/ …

6
数羊入睡
大多数人都熟悉这种数羊入睡的方法。有一群绵羊,其中一些在篱笆上跳跃,而您在绵羊跳跃时数数。据说,这可以使您的思维平静下来,并使您进入类似睡眠的状态,从而使您入睡。 这是一个面向右侧的ASCII绵羊,等待被计数: '00^> || 这是跳过篱笆的ASCII绵羊: '00^> /\ ++ 这是一个已被数过的朝左的人: <^00' || 挑战 给定两个输入整数,n和m,n > 2描述总共有多少只绵羊,并m > 0说出已经计数了多少只绵羊,输出一个ASCII艺术表示形式来计数要入睡的绵羊。 现在来看一下: 由于绵羊所处的围栏大小,第一排只能容纳最多的10绵羊,这还不包括当前跳跃的绵羊,绵羊也必须始终位于第一排。 随后的各行不能将羊放在各自的笔外(第二行的左边羊不能比第一行的羊多,右边的羊也不能多)。 如果11绵羊总数超过或等于总数,则第一行中必须包含10跳跃的绵羊。 前导/尾随空格和绵羊之间的空格无关紧要,只要: 绵羊之间至少要有一个空白字符 所有字符都正确排列。 只要符合这些规则,绵羊的实际安排就取决于您的实现。 例子 例如,这是n=3和m=1,是最简单的情况。 '00^> '00^> /\ <^00' || ++ || 这是n=11和m=6,可以容纳在一条水平线上的最多的绵羊。 '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00' <^00' <^00' <^00' <^00' || || || …

8
可视化包含-排除
包含-排除使您可以在知道其他一些值的情况下计算集合之间的某些并集和相交的大小。我不会确切解释,但是您的挑战是在维恩图上可视化包含-排除。 因为我很好,所以您将使用矩形,而不是圆形。 您将获得一个以任何合理格式(由4元组组成的列表,成对的列表,成对的列表等)表示的矩形列表,这些矩形由左上角和右下角的坐标表示。您可以假定所有坐标都是非负数,并且在您的语言的(合理的)数字范围内(请指定小于128的坐标)。您可以选择是左包含或左包含以及右包含或右包含。无论选择哪种格式,都可以假定所有矩形至少为1x1。 然后,您将使用一个非空白字符绘制屏幕上的每个矩形(ASCII画布)k,这是您可以选择的。 但是,每当两个矩形重叠时,重叠区域应使用另一个非空白字符绘制l != k,您也可以选择。 每当3个矩形重叠时,重叠区域应与被绘制k,以及用于奇数矩形的覆盖,k以及偶数,l。 背景应为单个空格(0x20)。 测试用例(k = "#", l = ".") 0 0 9 9 1 1 10 10 2 2 11 11 ######### #........# #.#######.# #.#######.# #.#######.# #.#######.# #.#######.# #.#######.# #.#######.# #........# ######### 1 1 3 3 2 2 4 4 ## #.# ## 1 …

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.