Questions tagged «ascii-art»

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

7
微小的探索者
您是一位探险家,正在绘制一个未知的世界。你的船在风中航行。哪里知道,谁知道? 每天,在望远镜中,您都会看到北,南,东和西的特征。您始终会看到四个与基本方向相对应的功能。您的望远镜会报告如下ASCII符号: ~~.*,~~~~,~.^^,~#~# 这些符号按顺序排列(北,南,东,西)。 这些符号是:~=海洋,.=海岸,^=山脉,*=树木,#=无效(无观测,只要您看到世界的边缘或地貌被雾遮盖,就会发生这种情况)。您的望远镜在各个方向上只能看到一个单位。 每天晚上,您抬头仰望星星,以了解您旅行了多远。看着星星会报告这样的ascii符号: n,s,e,w 分别对应于北部,南部,东部和西部。每天晚上,您总是只向北,南,东或西移动一个单位。因此,作为浏览器的您将收到无穷无尽的符号流: ~~.*n~~~~s~~.*s~.** 您的任务是输出世界的2D地图(地图的?未知部分在哪里,北朝上,东朝右): ?~~~?????? ?~~~?????? ?~~~.^^.?? ?~~.***.~~ ~~.*^^*.~~ ~~~..~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ 为了简单起见,我们假设您从地图的左下角开始。假设所有地图均为8x8。 这是一个简单的3x3示例。假设地图看起来像这样: ~.~ ~^~ ~.~ 输入以下内容: ~#.#n~~^#s 您将获得以下输出: ~?? ~^? ~.? 更多示例输入和输出: 输入 ~#~#n~~~#n~~~#n~~~#n~~~#n~~.#n~~.#n#~~#e#.~~e#.~~e#.~~e#.~~e#~~~e#~~~e#~#~s~~#~s~~#~s~~#~s~~#.s~~#~s~~#~s~##~w~#~~w.#~~w^#~~w.#~~ 输出 ~~~~~~~~ ~....~~~ ~.????~~ ~~????~~ ~~????.~ ~~????~~ ~~?.^.~~ ~~~~~~~~ 输入: ~#~#e~#~~e~#~~e.#~~e^#~~n.~..n~^~.n~.~~n.~~.n.~~*n~.~.n#.~~w#.~~w#.~~s~*..s..*.s*~.~s.~~~s 输出: ?~~~~~?? ?....~?? ?.**.~?? ?~..~~?? ?~~~~~?? ?~~..~?? …

24
IHIH金字塔
我发现字母“ H”和“ I”非常相似很着迷。“ H”是由两个垂直笔划包围的水平笔划;“ I”是一个垂直笔画,周围有两个水平笔画(取决于您的字体)。我敢打赌,这可能是嵌套的...你知道让我想起什么吗?分形!!! 让我们定义“ IHIH”金字塔如下:第一个迭代是字母“ I”的ASCII表示形式: --- | --- 下一次迭代的任一侧都有一个垂直笔触。 | | |---| | | | |---| | | 如果将中间的“ I”视为单个水平笔划,则第二个迭代基本上就是“ H”。第三次迭代在顶部和底部添加了水平笔划 ------- | | |---| | | | |---| | | ------- 同样,如果将中间的“ H”视为单个垂直笔划,则此迭代基本上就是“ I”。这种模式继续,在每次迭代中在“ H”和“ I”之间交替。供参考,这里是前6个迭代: 1: --- | --- 2: | | |---| | | …

19
在空的Go板上放置一块石头
另请参阅:在Go板上移动。 任务 Go是一种棋盘游戏,两名玩家(黑白)将石头放在19×19棋盘的网格线相交处。黑色先行-例如,在D4上: 在此挑战中,您必须像D4输入棋盘一样进入棋盘坐标,并输出棋盘的ASCII表示,并在给定点进行第一步移动。 请注意,没有列I。从历史上看,这是为了减少与J和L的混淆。 此输出包含19行,每行包含19个字符。标有石头的点已标记O。在板空点被示出为.,除了九个星点(在D4,D10,D16,K4,K10,K16,Q4,Q10,和Q16),其被标记*。 例如,F5作为输入,您答案的输出必须为: ................... ................... ................... ...*.....*.....*... ................... ................... ................... ................... ................... ...*.....*.....*... ................... ................... ................... ................... .....O............. ...*.....*.....*... ................... ................... ................... 而鉴于Q16作为输入,你的输出必须是: ................... ................... ................... ...*.....*.....O... ................... ................... ................... ................... ................... ...*.....*.....*... ................... ................... ................... ................... ................... ...*.....*.....*... ................... ................... ................... 规则 您可以编写将坐标作为参数的函数,或者编写从命令行或从中读取坐标的程序STDIN。 您可以选择以小写或大写形式接受输入,但是您的答案不需要同时处理这两种情况。 输入始终是单个字符串,例如a1或T19,决不能是字符串+数字或两个字符串。 …

10
从ASCII的位模式生成分形
总览 编写一个程序,在给出编码分形的位模式后,再打印出简单的分形模式,再加上分代的每代比例因子和世代数。 说明 这是Sierpinski地毯的ASCII表示形式: 第0代: # 第1代: # # # # # # # # 第2代: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # …

22
画心形
挑战 画一个心形 ...作为ASCII艺术! 您的艺术不必看起来完全像我的,但必须看起来像心形。 心脏内部必须至少包含20次“爱”字样 规则 该程序必须将美术作品写入控制台。 最短的代码(以字节为单位,任何语言)均获胜。 获胜者将在2月14日情人节那天被选中

5
沿XYZ对称地拉伸立方体的面
沙盒 出于当前任务的目的,单位长度的多维数据集以ASCII符号的斜投影方式呈现,如下所示: +-----+ / /| +-----+ | | | + | |/ +-----+ + 用于顶点。 -X边缘。沿X的单位长度由-两个顶点之间的五个表示。 |为Y边缘。沿Y的单位长度由|两个顶点之间的两个表示。 /Z边缘。沿Z的单位长度由/两个顶点之间的1表示。 仅在所有三个平面相交的位置绘制顶点。 仅在恰好两个平面相交的位置绘制边缘。 拉伸单位面时,它会从其原始位置偏移单位长度,并为每个方向(正方向和负方向)创建四个新边。 您可以将拉伸视为绘制3D笛卡尔坐标系的轴,其中每个轴都表示为长方体,其横截面为1x1,长度n为(0,0,0) 沿X拉伸1: +-----------------+ / /| +-----------------+ | | | + | |/ +-----------------+ 任务 给定XYZ轴的三个数字,按指定的数量对称拉伸单位立方体的面,并使用上面指定的ASCII符号呈现结果。 输入项 x,y,z –非负数–各个轴的挤出长度。0表示不挤出。输入可以是三个数字,三个数字的列表,三个字符,一个字符串或任何您方便使用的东西。 输出量 挤压后立方体的ASCII图。允许前导和尾随wihtespace。 测试用例 X Y Z 0 0 0 +-----+ / …

9
“排序”算法
有一种“排序算法”,有时也称为Stalin排序,在该算法中,为了对列表进行排序,您只需从列表中删除元素,直到其按升序进行排序即可。例如清单 [1, 2, 4, 5, 3, 6, 6] 当使用斯大林排序进行“排序”时 [1, 2, 4, 5, 6, 6] 这三个被删除,因为它故障。 现在显然有许多方法可以删除元素以对列表进行排序。例如,任何少于两个元素的列表都必须进行排序,因此只要盲目地删除足够的元素,我们就可以对列表进行排序。既然是这种情况,我们只在乎斯大林排序可能的最长结果。 您的任务将是获取一个正整数列表,并输出可以通过从原始列表中删除元素而得出的最长排序(递增)列表的长度。那就是找到最长排序的(可能是非连续的)子列表的长度。 排序的列表可以连续多次具有相同的元素。除非程序本身为空,否则不需要支持空列表。 计分 您的答案将根据其可能的最长斯大林排序长度进行评分。程序将被解释为字节序列而不是字符序列,并且它们的顺序将是通过将字节解释为数字而产生的自然顺序。分数越低越好。 这不是代码高尔夫 这是一个简洁的工具,可帮助您对答案进行评分。 测试用例 [1, 2, 4, 5, 3, 6, 6] -> 6 [19, 2] -> 1 [3, 3, 4, 3] -> 3 [10] -> 1 [1, 2, 4, 9] …

21
字母直方图
给定一个包含一个或多个单词[a-z]+和零个或多个空格的输入句子,输出该输入句子的字母分布的ASCII艺术直方图(条形图)。 直方图必须水平放置,即字母键沿底部从左到右按字母顺序排列,Y轴标记为1-每5个单位。Y轴必须是5的最小倍数,且至少与最高的钢筋一样高,并且必须右对齐。X轴标有输入字母,两者之间没有间隙。例如,输入a bb dd应带有标签,abd而不要带有标签ab d,跳过c。条形图本身可以由任何一致的ASCII字符组成-我将X在示例中使用它们。 test example 5- X X X 1-XXXXXXXX aelmpstx 由于存在三个e,两个t和一个almsx。 更多示例: the quick brown fox jumped over the lazy dogs 5- X X X X XX X X X XX 1-XXXXXXXXXXXXXXXXXXXXXXXXXX abcdefghijklmnopqrstuvwxyz now is the time for all good men to come to the aid of …

1
微重力球
您正在使用先进的星际空间站。你们中一个在重力研究中成年的朋友刚刚创建了一个游戏,其中涉及使用微重力作为移动球的一种方法。 她递给您一个小型控制器,上面带有四个方向箭头,一个像迷宫一样的结构,左侧有一个球。她开始解释游戏的运作方式。 您有2个方向按钮,向左<和向右>。 您还具有^上下两个重力按钮v(至少从您的参照系来看) 您将使用这些箭头按钮在屏幕上四处移动球。 “现在有一些规则需要遵循。” 她说 到达杯子之前,必须遍历所有平台 \ / 箭头< > ^ v将用于指定球的运动 重力是^ v(上下)。这会将球一直沿该方向移动到下一个平台。(不计算上下距离) 丢球不好!请勿掉落边缘,也不要过早切换重力,以使您的球永远不会到达平台 运动以步长计算 < > 只要遵循规则1,球就可以从任何方向进入杯子 您必须指定重力方向,以使您的球不会漂浮 只要遵循规则1和规则4,移动可能是随机的 对于无法解决的情况,输出False或Invalid 球,平台和杯子的简单示例: v o ---\ / v> o ---\ / v>> o ---\ / v>>> o ---\ / v>>>> ---\o/ 再次遍历同一平台的示例。 v o ---- \ /------- v> …

12
我爱沙丁鱼
我喜欢沙丁鱼,我吃不完,所以我的计算机Omnilang 5000也是如此,它与语言无关。 为了让我的计算机体验沙丁鱼的乐趣,我决定向他提供许多程序,这些程序可以在屏幕上以各种方向显示沙丁鱼罐头,并最多显示十个沙丁鱼。 在此挑战中,您将负责根据以下参数创建程序: 输入 一个数字(介于0到10之间)和以下“ LR”之一的字母(分别表示“左”或“右”),例如:3L或5R;如何将此输入到程序中取决于您。 输出量 打开的沙丁鱼罐头,沙丁鱼面朝指示的方向,其键(用“ %”字符表示)和去皮的盖子(用“ @”字符表示的末端卷起锡)位于锡的顶部。 所有沙丁鱼必须面向输入所指示的方向。 所有沙丁鱼的bodies体(“ )”或“ (”)与尾巴“ ><” 之间将有五个字符长的身体。 钥匙和去皮的盖卷将始终与沙丁鱼相反。 锡必须具有3-D外观,如下例所示。 锡的最小高度为3个沙丁鱼。因此,如果数字小于3,则必须显示锡罐高度为3的沙丁鱼,并在其中输入沙丁鱼的数量。否则,锡必须是输入中指示的高沙丁鱼数量。因此,输入0R或0L将显示一个空的沙丁鱼罐头。 其他无法验证的输入将不会显示任何内容。 例如,对于“ 3L” __________ (__________@% |<*)_____><|| |<*)_____><|| |<*)_____><|| '=========='' 对于“ 7R” __________ %@__________) ||><_____(*>| ||><_____(*>| ||><_____(*>| ||><_____(*>| ||><_____(*>| ||><_____(*>| ||><_____(*>| ''==========' 对于“ 2L” __________ (__________@% |<*)_____><|| |<*)_____><|| | || '=========='' …

13
生日快乐,拉斐尔·塞科(Raffaele Cecco)!
拉斐尔切科是谁制作了一个程序员的一些的最好的视频游戏为ZX频谱在八十年代末计算机。他开发了广受赞誉的Cyber​​noid和Exolon。 Raffaele 将于2017年5月10日满50岁。挑战对他是微不足道的,对于我们许多人度过了那些精彩的游戏所带来的欢乐时光,以及他们带来的动力。 挑战 目的是产生一个矩形的字幕,该字幕的灵感来自Cyber​​noid 主菜单屏幕,但采用ASCII艺术。 具体来说,将显示字符串"Happy birthday Raffaele Cecco "(注意最终空间)沿12×5矩形的边缘旋转,并且快照之间的暂停时间恒定。 例如,假设文本按顺时针方向显示并逆时针旋转(请参见下面的选项),则这是矩形选框的三个连续快照: Happy birthd a o y c ceC eleaffaR 然后 appy birthda H y o R cceC eleaffa 然后 ppy birthday a H R a occeC eleaff 等等。 规则 没有输入。输出将通过STDOUT或等效输出,或在图形窗口中。 输出实际上应该描述旋转的文本。也就是说,每个新快照都应覆盖前一个快照,以给人留下动感的印象。这可以通过任何方式完成,例如,编写适当数量的换行符以有效清除屏幕。如果这仅对给定的屏幕尺寸有效,则可以接受;只需在答案中指定即可。 接受以下选项: 文本可以顺时针或逆时针显示,也可以顺时针或逆时针旋转(上面的示例快照假定顺时针显示,逆时针旋转)。 旋转应无限循环进行(直到程序停止),并且可以在任何阶段开始。 快照之间的暂停时间应大致恒定,但可以在0.1到1 s之间自由选择。在显示第一个快照之前的初始暂停是可以接受的。 字母可以是大写,小写或混合大小写(如上例所示)。 允许前导或尾随空格。 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 …

28
创建一个二进制墙
给定以10为底的正整数数组,其中n > 0输出二进制墙的表示形式。 这是如何运作的? 将每个数字转换为其二进制表示形式。 用前导零填充表示形式到最长的零,即1, 2-> 1, 10-> 01, 10。 在1s为砖块而0s为砖块的情况下创建墙。 墙是一个字符块,其中任何可打印的字符代表一块砖块,而空格(32)代表丢失的砖块。您可以为砖块选择任何字符,只要它不是空白字符,就不必在墙上有区别。缺少的砖块字符必须为空格。对于下面的示例,我使用*了积木。 例 输入: [ 15, 7, 13, 11 ] [ 1111, 111, 1101, 1011 ] [ 1111, 0111, 1101, 1011 ] 输出: **** *** ** * * ** 规则 输入必须以10为基数,如果您的语言接受其他基数,则您可能不使用它们。 允许前导和尾随新行。 输入可以视为整数列表,单独的参数或任何合理的格式。 输出可以采用任何合理的格式:新行分隔的字符串,行数组,二维数组等。 不允许出现标准漏洞。 测试用例 请注意,在第一个测试用例中,所有层的末尾都有一块空砖。 [ 14, …

20
我超过速度限制了吗?
给定一个ASCII艺术道路,我花了时间去跨过它,告诉我,如果我是超速行驶。 单位 距离以的任意单位表示d。时间以的任意单位表示t。 马路 这是一条简单的路: 10===== 的10装置10 d每t。那是道路的速度极限。这条路有5 =s,所以它d是5。因此,如果我以0.5越过那条路t,我d每10条走10条t,因为5 / 0.5 =10。那条路的速度限制是10,所以我一直在速度限制之内。 但是,如果我越过该道路在0.25 t,我去20 d每t,因为5 / 0.25 = 20。即道路的速度限制是10,所以我去10超速。 实例与计算 请注意,输入1是我花在道路上的时间,输入2是道路本身。 这是一条复杂的路: Input 1: 1.5 Input 2: 5=====10===== 在第一条道路上(最初的5 =秒钟),我本可以(合法)行驶的最快速度是5 d分t。因为5(距离)除以5(速度限制)是1,所以我在那条路上走得最快的速度是1 t。 在下一条道路上,速度极限是10,距离也是5,我可以越过的最快速度是0.5(5/10)。最小时间总计为1.5,这意味着我完全达到了速度极限。 注意:我知道,我在一条道路上的行驶可能确实非常快,而在另一条道路上的行驶速度确实很慢,但仍以1.5交叉,但此处假定最佳。 最后一个例子: Input 1: 3.2 Input 2: 3.0==========20=== 第一条道路为10长,速度限制为3,因此最短时间为3.33333 ...(10/3)。 第二条路长3,速度限制为20,因此最短时间为0.15(3/20)。 总的时间结果是3.483333333 ...我在3.2中越过了,所以我不得不超速行驶。 笔记: 如果我毫无疑问要超速行驶,则必须输出一个不同的值,如果我可能不是,则必须输出另一个不同的值。 您的程序或函数可能需要输入或输出以尾随换行符,但请在您的提交中说明。 您的第一个输入将是我的速度。这将是一个正浮点数或整数或字符串。 …

9
画一些山峰
编写一个程序或函数来绘制山脉,在该山脉中,每个随后的较大山峰都在前面的“后面”,并交替显示哪一侧。 这是山脉的大小 1 /\ 这是山脉的大小 2 /\ /\ \ 这是山脉的大小 3 /\ / /\ / /\ \ 这是山脉的大小 4 /\ /\ \ / /\ \ / /\ \ \ 这是山脉的大小 5 /\ / /\ / /\ \ / / /\ \ / / /\ \ \ 等等。 输入项 任何方便格式的一个正整数,n > …

24
这是Loeschian号码吗?
正整数k是Loeschian数,如果 k可以表示i*i + j*j + i*j为i,j整数。 例如,第一正Loeschian号码为:1(i=1,j=0); 3(i=j=1); 4(i=2,j=0); 7(i=2,j=1); 9(i=-3,j=3); ...注意i,j对于给定k的不是唯一的。例如,9也可以与产生的i=3,j=0。 这些数字的其他等效特征是: k可以表示i*i + j*j + i*j为i,j非负整数。(对于每对整数i,j都有一对给出相同值的非负整数k) 有一组k连续的六边形在六边形网格上形成网格化(请参见k = 4和的插图k = 7)。(由于这个属性,这些数字可在移动蜂窝通信网络中找到应用。) 在序列的OEIS页面中查看更多特征。 挑战 给定一个正整数,如果它是Loeschian数,则输出真实结果,否则,则输出虚假结果。 程序或函数应处理(例如不到一分钟)最多达1000或数据类型限制的输入。 代码高尔夫。最短的胜利。 测试用例 以下数字应输出真实结果: 1, 4, 7, 12, 13, 108, 109, 192, 516, 999 以下数字应输出虚假结果: 2, 5, 10, 42, 101, 102, 128, 150, 501, …
33 code-golf  math  number  number-theory  decision-problem  code-golf  kolmogorov-complexity  code-golf  sequence  code-golf  path-finding  chess  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  math  arithmetic  code-golf  code-golf  number  code-golf  geometry  code-golf  math  code-golf  code-golf  kolmogorov-complexity  alphabet  code-golf  regular-expression  hexagonal-grid  king-of-the-hill  path-finding  java  code-golf  string  sorting  code-golf  string  grid  code-challenge  compression  code-golf  random  code-golf  sequence  arithmetic  code-golf  number  grid  tiling  code-golf  tips  code-golf  sequence  number-theory  recursion  code-golf  string  grid  code-golf  math  number  combinatorics  permutations  string  code-challenge  code-golf  sequence  number-theory  subsequence 

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.