Questions tagged «ascii-art»

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

4
ASCII动画雪景
编写最短的程序,将任何ASCII艺术作品转换成动画的雪景,然后从下雪开始形成雪景(非高尔夫JavaScript示例最后更新于2011-12-19)。 输入规范:您的程序必须接受空格,星号和换行符的任意组合。输入最多包含23行,每行80个字符。将没有空行,但行可能仅包含空格。仅包含一个尾随的换行符,必须将其忽略。 输出:为您的操作系统的文本控制台或终端仿真器输出ASCII字符(空格,星号)和控制代码(回车,换行符,ANSI转义代码等),直到用户手动终止程序为止。如果操作系统允许该设置,则可以假定终端窗口为80x24个字符。 规则: 动画必须流畅且快速(首选15 fps)。 雪密度必须在5%到15%之间。 每秒最多滚动不超过一个屏幕的雪。(这意味着在任何一秒钟的时间内最多只能添加24行新雪。) 进入屏幕顶部时,雪花不得显示任何明显的图案;它必须看起来是随机的。 该程序启动时必须尽快将屏幕上的所有行都积雪。屏幕的各个行的初始填充对于查看者而言不应是显而易见的。 输入ASCII文字的左下角必须位于屏幕的左下角(图1进行了进一步说明)。 ASCII图形内部或下方的区域不得永久性地加星号。但是,星号可以(但不是必须)滚动通过该区域。 除输入内容外,雪不得堆积在屏幕底部或现有雪的顶部。 下部空间必须在上部空间之前填充,因为相反的填充空间使圣诞树动画看起来与原始代码的输出完全不同。(添加2011-12-20) 节日快乐! 图1:80x24屏幕的标记区域 ---------------------------New snow added on this line-------------------------- | | ----------------------------------------------------------+ | **** | | Snow MUST fall Snow MAY fall ----------------> **** | | through this through these **** **** | Snow MUST fall | …

5
填满湖泊,二维
这个问题的一维版本非常简单,因此这是一个更难的2D版本。 在标准输入上为您提供了2D的陆地高度阵列,您必须弄清楚下雨时湖泊的形成位置。高度图只是数字0-9(含)的矩形数组。 8888888888 5664303498 6485322898 5675373666 7875555787 您必须输出相同的数组,并用将所有在水下的位置替换*。 8888888888 566*****98 6*85***898 5675*7*666 7875555787 水可以沿对角线逸出,因此在这种配置下不会有湖泊: 888 838 388 最短的代码胜出。您的代码必须处理最大80宽和24高的尺寸。 另外三个例子: 77777 77777 75657 7*6*7 75757 => 7*7*7 77677 77677 77477 77477 599999 599999 933339 9****9 936639 => 9*66*9 935539 9*55*9 932109 9****9 999999 999999 88888888 88888888 84482288 8**8**88 84452233 => 8**5**33 …

13
兰顿的蚂蚁ASCII艺术。
画出兰顿蚂蚁的路。 描述 平面上的正方形被涂成黑色或白色。我们任意地将一个正方形标识为“蚂蚁”。蚂蚁在采取的每个步骤中都可以沿四个基本方向中的任何一个行进。蚂蚁按照以下规则移动: 在白色正方形处,向右旋转90°,翻转正方形的颜色,向前移动一个单位 在黑色正方形处,向左旋转90°,翻转正方形的颜色,向前移动一个单位 技术指标 输入:0到725(含)之间的整数N。 输出:一个17 x 17的网格,代表步骤N时蚂蚁的“路径”。 规则 蚂蚁开始朝右(3点钟)。 蚂蚁从网格的中心开始。 分别_#@用于白色方块,黑色方块和蚂蚁。 网格最初是完全白色的。 您可以使用解释语言制作完整的程序或函数。 通过标准输入或参数输入。 例子 更新:案例的N = 450输出错误。 N = 0 _________________ _________________ _________________ _________________ _________________ _________________ _________________ _________________ ________@________ _________________ _________________ _________________ _________________ _________________ _________________ _________________ _________________ N = 1 _________________ _________________ _________________ _________________ _________________ _________________ …

11
进行中的ASCII Hangman
(受到有关代码审查的问题的启发) 假设有两个人在玩《Hangman》,但您只是听错了游戏,想绘制当前状态。 给定两个单词作为输入,每个单词匹配[A-Z]+或[a-z]+(您选择)一个单词,按照以下规则将rules子手游戏的当前状态输出为ASCII艺术。 第一个单词是要猜测的单词,第二个单词是已经猜测的字母。这些可以按任何顺序作为输入。 要猜测的单词保证为非空,但已经被猜测的字母可能为空(即,好像是游戏的开始)。 该游戏将始终是有效的子手游戏(即,不会重复猜出的字母,不会在游戏结束时猜到字母,您只会收到字母作为输入,等等)。 子手图画下方必须是要猜的单词,用_空格隔开,以代替尚不为人所知的字母。例如,如果要猜的单词是BOAT,则在hangman图下面必须是_ _ _ _。如果这个词被BOAT用A猜,然后在下面的图必须_ _ A _。 下面这个词来猜测一定是已经猜到的字母是不是在这个词。它们可以按任何顺序排列,并且可以根据需要用任何非字母分隔符分隔。 从最初开始到游戏结束,这是the子手游戏的状态。每个错误猜出的字母都会使状态前进一个。因此,第一个错误猜出的字母使头部O出现,下一个使身体|出现,等等。 +---+ | | | | | | ========= +---+ | | O | | | | ========= +---+ | | O | | | | | ========= +---+ | | O | /| | | …

24
喝咖啡
画出这个Ascii咖啡杯: Ø Ø Ø __________ / \ __ | J | \ | A | | | V | | | A | __ / \ __________ / 咖啡脚本或Java的布朗尼点:) 以字节,函数或程序为单位的最短代码,结尾的换行符或空格是可以接受的,多喝点!

8
用跟随墙壁的蛇填充迷宫,直到被卡住
用蛇把迷宫填满(直到被卡住)。 蛇 蛇从给定的起点开始,指向EAST。它通过移动总是有墙壁或它的身体的一部分立即LEFT其头部(“的左手法则墙跟随 ”),直到它被卡住,因为它周围所有的头四个方向都被占用。(注意:卡住的蛇可能无法填满所有可到达的空间,但这不是目标!) 挑战 编写接受迷宫作为2D文本形式的输入的程序或函数: 输入可以采用任何合理的格式:例如,字符串列表,带换行符的单个字符串,文件。 迷宫有墙(“ #”),空白处(“ ”)和正好一个起点(“ o”)。 您可以选择 要么假设第一行和最后一行都是完整的墙; 或假设每个输入都具有隐式的外层墙 您可以假设起点在其正上方(北)具有一堵墙(或隐式墙),并且蛇可以在EAST或SOUTH方向上进行有效的起点移动。 您可以假定文本中没有其他字符(如果需要输入,则换行符除外)。 您可以假定所有行的长度都相同。 并打印/返回“填充的迷宫”作为输出,并附上蛇被卡住时的快照: 蛇的身体由>v<^指向其下一段的位置的字符表示 蛇的起点是其起点的方向(“ >”,除非必须立即转弯)或一个o字符(不需要保持一致) 蛇的终点是一个o角色 计分 常规代码高尔夫:最短代码胜出 例 in: ################################# # o # # # # ## ### ## # # ## ## ## ## # # ## ## ## ## # # …

11
将ASCII艺术旋转45度
您的任务是拍摄ASCII艺术图片,并将其输出顺时针旋转45度,并按缩放。缩放来自使用在字符之间引入间隔的格子图案。2–√2\sqrt 2 为了直观地进行说明,将按以下方式处理块:3 × 33×33 \times 3 123 456 789 变成 1 4 2 7 5 3 8 6 9 字符将不会变形,因此旋转后框会看起来很奇怪: +-+ | | +-+ 变成 + | - + + - | + 为了更清楚地说明该过程,输出由菱形格子图案组成,其中第一行对应于输入的左上角字符,下一行对应于右邻和右邻,下一行是邻邻,依此类推直到所有字符都已放置在晶格上。 例子 FISHKISSFISHKIS SFISHKISSFISHKISSFISH F ISHK ISSFISHKISSFISHKISS FI SHKISS FISHKISSFISHKISSFISS FIS HKISSFISHKISSFISHKISSFISHKISSFISH KISS FISHKISSFISHKISSFISHKISSFISHKISS FISHK SSFISHKISSFISHKISSFISHKISSFISHKISSF …

15
经典VCS ASCII Adventure
长大后,我的第一个主机游戏系统是Atari 2600,我将永远爱上我小时候喜欢的一些游戏。许多图形仍然令人难忘,甚至具有标志性。 事实证明,这些子画面是非常简单的位图,宽度为8个像素,高度可变,其中二进制表示形式是像素的排列。 例如,十六进制字节0x18、0x24、0x18将绘制一个粗略的圆圈,如下所示: 0x18: 00011000 0x24: 00100100 0x18: 00011000 由于8像素宽可创建相当小的图形(即使按Atari 2600标准),通常也可以将高度,宽度或两者都翻一番或翻两番,以创建同一图像的更大(虽然更块状和失真)的版本。对于玩家精灵和运动场,它们通常也会垂直或水平翻转。游戏《战斗》就是一个很好的例子。 挑战在于,编写代码以将这些精灵显示为ASCII形式的“图形”,包括能够垂直,水平或同时拉伸或翻转它们的能力。它必须采用完整程序或可调用函数的形式。 输入: 字节数组,每个字节代表该行的水平位。 水平和垂直每个方向的非零整数值,代表该尺寸的比例因子。 负值表示尺寸也应沿其轴翻转。 输出: ASCII表示为STDOUT或换行符分隔的字符串,对于黑色(0)像素使用空格字符,对于白色(1)像素使用您选择的任何可打印的非空格字符。 测试数据: bmp1 = [ 0x06, 0x0F, 0xF3, 0xFE, 0x0E, 0x04, 0x04, 0x1E, 0x3F, 0x7F, 0xE3, 0xC3, 0xC3, 0xC7, 0xFF, 0x3C, 0x08, 0x8F, 0xE1, 0x3F ] bmp2 = [ 0x07, 0xFD, 0xA7 …

5
5天天气预报
天气预报:错误经常依赖,正确经常忽略。 给定高温和低温以及每天四种天气条件之一,请输出ASCII艺术图形五天天气预报。四个图形指示器的结构如下所示。 \ / -O- Sunny / \ \ / -O(==) Partly Cloudy (====) (==) Cloudy (====) (==) (====) Rainy ///// 预测图表如下:每个图形指标位于其自己的9x5框的中央,整个图表上有5个框。每个框用|字符分隔。在图形指示符的下方是一周中的三字母缩写(MON, TUE, WED, THU, FRI, SAT, SUN),位于其自己的9x1框中。温度低于一周中的某一天,位于自己的9x2框内。一个例子如下所示。 --------------------------------------------------- | | | | | | | (==) | (==) | \ / | \ / | \ / | | …

8
创建剪刀动画!
尝试创建一个简单的ASCII美工剪刀动画! 挑战 所有输入将是-31至31的整数。 输出将是动画(要在某处输出,只要替换上一帧即可。允许使用GIF。),动画间隔为(大约)四分之一秒。 如果输入(n)为正: 动画应以开头8<,也就是打开剪刀。 下一个帧是8=。这显示了剪刀的“切割”。 在剪刀后面添加破折号(剪切标记),动画重复进行直到出现n破折号。 如果输入为负: 剪刀开始张开并朝向左侧(例如:),前方>8带有n空格。 剪刀合上并保持面向左(=8)。 随着空间的去除,剪刀重新打开,并且在剪刀后面添加了破折号。 如果输入为零: 仅输出剪刀的开合,为10帧。只要是一致的,它们就可以朝向任何一个方向。 这是代码高尔夫球,因此以字节为单位的最短提交胜出。(即使您的参赛作品显然由于某种新颖的“高尔夫语言”而无法获胜,我们仍然希望看到它。) 只要错误消息本身不干扰动画,就允许出现错误消息。 输入和输出对示例: (为了清楚起见,我将帧分开,但是每帧之间应该大约有0.25秒) Input: 1 Output: 8< 8= -8< Input: 2 Output: 8< 8= -8< -8= --8< Input: 5 Output: 8< 8= -8< -8= --8< --8= ---8< ---8= ----8< ----8= -----8< Input: 0 Output: 8< …

5
将HTML页面转换成山峰
任务:将HTML页面转换成山峰! 当HTML页面缩进时,它们看起来像: <div> <div> <div> </div> <div> <div> </div> </div> </div> </div> 但老实说,一座山更能代表这种结构。 因此我们可以将其重写为: /\ /\/ \ / \ / \ 左侧和右侧的最外面的斜线对应于外部div-每对HTML标签都应分别代表/开始标签和\结束标签-内部所有标签都“较高”,并具有相同的结构。 输入: 将没有 <!DOCTYPE> 将没有自动关闭标签,例如<img />或<br /> 标签内可能有属性或内容 可能有空格或制表符-您的程序应忽略这些 <或</与标记名称之间将没有空格。 所有输入均为有效HTML 输出 -代表上述标记的山脉。 更多测试用例: 输入: <div id="123"> HI </div><a><span></span></a> 输出: /\ /\/ \ 输入: <body id="<"></body> 输出: /\

3
解码人造盲文
⢣⠃⢎⠆⣇⡇⡯⡂⠈⡏⢰⢵⢐⡭⢸⠪⡀⢸⢐⡭⠀⢹⠁⢎⠆⢸⣱⢸⡃⢎⠰⡱⢸⣱⢸⡃⠈⡏⢸⡃⡱⡁⢹⠁⢸⡀⡇⡗⢅⢸⡃⠈⡏⢸⢼⢸⢐⡭⠀ ⣇⢸⡃⢹⠁⢹⠁⣟⢸⢕⢐⡭⠀⡮⡆⡯⡂⣟⠀⡯⠰⡱⢸⣸⢸⢕⠀⣏⡆⢎⠆⢹⠁⣪⠅⢸⢼⢸⠰⣩⢸⢼⠀⡮⡆⡗⢼⢸⣱⠀⢎⠆⡯⠀⢇⠇⡮⡆⡯⡂⡇⡮⡆⣟⡆⣇⢸⡃⠸⡰⡸⢸⢸⣱⠈⡏⢸⢼⠀ ⢎⠆⡗⢼⢸⡃⢸⡃⡗⠔⡇⡯⠂⢹⠁⢣⠃⠸⡸⢸⡃⡯⡂⢹⠁⡇⢎⢰⢵⢸⡀⢸⡀⡇⡗⢼⢸⡃⢐⡭⢸⡃⡯⠂⡮⡆⡯⡂⡮⡆⢹⠁⣟⢐⡭⠀⢎⢸⢼⢰⢵⢸⢕⢰⢵⠰⡁⢹⠁⣟⢸⢕⢐⡭⠀ ⡮⡆⢐⡭⢸⠕⢰⢵⠰⡁⣟⠀⡇⣪⠅⢈⣝⢸⡃⡯⡂⢎⠆⠸⡰⡸⢸⢸⣱⠈⡏⢸⢼⠀ ⣪⠅⢎⠆⢸⠈⡏⠀⣇⠰⡱⠰⡱⢸⠪⡀⣪⠅⢸⡀⡇⡗⢅⢸⡃⠸⡰⡸⠰⡱⢸⢕⢸⣱⢐⡭⠀⡮⡆⡯⡂⣟⠀⣪⠅⣟⢸⠕⢰⢵⢸⢕⢰⢵⠈⡏⢸⡃⣏⡆⢸⣳⠘⡜⠀⢹⠁⢇⢆⠇⢎⠆⢸⡀⡇⡗⢼⢸⡃⣪⠅ ⡇⡗⢼⢸⠕⢸⣸⠈⡏⠀⡇⣪⠅⢰⢵⠀⣪⠅⢹⠁⡯⡂⡇⡗⢼⠰⣩⠀⢎⠰⡱⢸⠢⡇⢹⠁⡮⡆⡇⡗⢼⢸⢸⠢⡇⢎⡅⢸⠅⡮⡆⣇⡇⡱⡁⢸⣳⢸⢕⢰⢵⢸⢸⡀⣇⢸⡃⠰⡱⢸⠅ ⢎⠆⡗⢼⢸⡀⢣⠃⢸⡃⡗⢼⠰⣩⢸⡀⡇⣪⠅⡧⡇⢸⣸⢸⠕⢸⠕⢸⡃⡯⡂⢎⢰⢵⢐⡭⢸⡃⢸⡀⣟⠈⡏⠈⡏⢸⡃⡯⡂⣪⠅⢰⢵⢸⠢⡇⣏⡆⢐⡭⢸⠕⢰⢵⠰⡁⣟⢐⡭⠀ ⡮⡆⣟⡆⢎⢸⣱⢸⡃⡯⠰⣩⢸⢼⢸⢀⠇⡗⢅⢸⡀⡗⠔⡇⡗⢼⠰⡱⢸⠕⠰⣩⡆⡯⡂⣪⠅⢹⠁⣇⡇⢇⠇⢇⢆⠇⡱⡁⢣⠃⣩⡃ ⢎⠆⣇⡇⢹⠁⡯⠂⣇⡇⢹⠁⢸⠢⢺⢰⢵⠘⡜⠀⣟⡆⣟⠀⣇⡇⡯⠂⡯⠂⣟⢸⢕⠀⢎⠆⡯⡂⢸⡀⢎⠆⢇⢆⠇⣟⢸⢕⠰⡁⡮⡆⣪⠅⣟⠀ ⣪⠅⡧⡇⢎⠆⡯⡂⢹⠁⣟⢐⡭⠈⡏⠀⢇⢆⠇⡇⡗⢼⢐⡭⠀ ⡗⢼⠰⡱⠀⣇⠰⡱⠰⡱⢸⠕⢸⢼⠰⡱⢸⡀⣟⢐⡭⠀ 上面的ASCII版本 ⡯⡂⣟⢸⡀⡮⡆⢹⠁⣟⢸⣱⠀ 关于盲文字符 盲文字符将4 x 2的矩形点封装在一起,可以将其视为布尔矩阵。 所有这些矩阵的串联是一个4 x 2 * n布尔矩阵,其中n是输入字符串的长度。 您应该寻找没有任何点的垂直线,并使用它们作为分隔符将每个字符的大矩阵分解为较小的矩阵。 然后,寻找将其转换为英文字母或空格的模式。请注意,删除分隔符(垂直的空线)后,空格为4 x 0矩阵。 以下是ASCII字母的说明: A | B | C | D | E | F | G | H | I | J | K | L …

16
还有一个程序,我出去了!
给定一个正整数嵌套级n和字符串s的打印的ASCII字符(到~,输出一个。方案,其中,以相同的语言运行时,输出一个程序,其输出程序输出该串s。 总计 n应该生成程序,所有程序都应以与您的答案相同的语言运行。 注意:您可以输出程序或函数-默认情况下,您可以将任何内容作为提交提交。 您可以s使用转义字符输入,以您的语言编写的程序或函数通常会如何输入字符串。 例 例如,给定n=1和s="recursion",Python 2程序可能输出: print "recursion" 运行此命令将输出: recursion 给定n=2和s =“ PPCG”,Python 2程序可能输出: print "print \"PPCG\" " 运行此输出: print "PPCG" 运行此输出: PPCG 相关(+标题灵感):还有一个LUL,我出门了 也相关(在沙箱中-现在已删除,但仍然可以以足够的信誉查看):源代码递归 测试用例 确保您的代码适用于以下测试用例(每行一个): n s 2 PPCG 4 Robert'); DROP TABLE Students;-- 17 Deep 2 Spaces In Here 3 "Don't forget quotes!" 5 'Backt`cks …
21 code-golf  recursion  code-golf  kolmogorov-complexity  board-game  code-golf  number-theory  polynomials  code-golf  code-golf  array-manipulation  polyglot  alphabet  answer-chaining  code-golf  sequence  math  atomic-code-golf  abstract-algebra  proof-golf  code-golf  internet  code-golf  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  ascii-art  number  integer  code-golf  decision-problem  binary-matrix  code-golf  number  sequence  number-theory  code-golf  math  decision-problem  matrix  abstract-algebra  code-golf  string  keyboard  code-golf  fractal  code-golf  math  sequence  combinatorics  hello-world  vim  code-golf  sequence  code-golf  graphical-output  image-processing  code-golf  decision-problem  matrix  linear-algebra  code-golf  ascii-art  code-golf  math  code-golf  ascii-art  graphical-output  code-golf  string  code-golf  string  substitution  code-golf  string  ascii-art  code-golf  arithmetic  code-golf  number  array-manipulation  decision-problem  code-golf  kolmogorov-complexity  code-generation  fractal  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  code-golf  string  array-manipulation  code-golf  music  code-golf  array-manipulation  code-golf  internet  stack-exchange-api  math  fastest-algorithm  code-golf  binary  bitwise  code-golf  date  code-golf  string  code-golf  sequence  integer  code-golf  arithmetic  number-theory  code-golf  string  random 

8
你能算出矩形的数量吗?
我最喜欢的数学消遣之一是绘制一个矩形网格,然后找到该网格中所有可见的矩形。在这里,提出这个问题,为自己冒险! 你能算出矩形的数量吗? +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ 此4 x 4 …

9
单词越过
输入: 两个字符串(注意:输入顺序很重要)。 输出: 两个单词/句子都从一行开始,中间有一个空行。他们“水平”“彼此相邻”行走。但是,当他们在同一位置有相同的性格时,他们会互相交叉,然后继续“彼此相邻”行走。 令您困惑?让我们举个例子: 输入:Words crossing over&Ducks quacking: Word quack n s i g Duck cross n over 不好意思的MS油漆。 挑战规则: 在“越过”之后,我们总是总是先走直线,然后才能再次越过(请参见{1}上方的测试用例- ing相等,但是在越过之后i,我们首先必须回去笔直走(因此忽略n),然后我们才能再次跨过g)。 输入的长度可以不同,在这种情况下,较长的输入将继续沿直线行走(请参见测试用例1、2、4和6)。 两个输入可以相同(请参见测试用例3)。 输入将不包含任何选项卡或换行符。 空格将被视为相同的字符(如边沿情况)而忽略,在这种情况下,其后的下一个(非空格)字符(如果有的话)将相交(请参见测试用例3、5和6)。 输入在同一位置上完全不能有相邻(非空格)字符,在这种情况下,它们都只能水平地走直线(请参见测试用例2)。 即使第一个字符相等,我们也总是分开两行(请参见测试用例3和6)。 尾随空格和一条尾随换行符是可选的。 您可以假定输入将仅包含可打印的ASCII字符(不包括换行符和制表符)。 输入是区分大小写的,所以A和a是不相等的,并且不会相交(请参见测试用例7)。 两个输入长度都将始终至少为2。 输入和输出可以采用任何合理的格式。可以是带有换行符的单个String;字符串数组/列表;打印到STDOUT;2D字符数组;等等 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于您的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接。 另外,如有必要,请添加说明。 测试用例: 1. Input: "Words crossing over" & …

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.