Questions tagged «maze»

应对迷宫挑战。

3
冰高尔夫挑战赛
这项挑战的目标是编写一个程序或函数,以返回完成给定课程所需的最少罢工量。 输入项 课程的布局可以采用您喜欢的任何合适方式和格式。(从控制台读取,作为输入参数传递,从文件或任何其他多行字符串,字符串数组,二维字符/字节数组读取)。 球的起始位置和球洞也可以作为输入传递,不必从输入中解析。在测试用例中,它们包含在课程中,以确保对实际位置没有混淆。 您可以将输入字符重新映射到其他字符,只要它们仍可识别为不同的字符(例如,可打印的ASCII字符)。 输出量 对于以合理格式(字符串,整数,浮点数或描述结果的ku句)作为输入传递的任何路线,程序必须返回最低的得分(到达空洞所需的最少击球次数) 如果该课程无法克服,则返回-1(或您选择的其他任何不正确的值,对于可击败的课程都不会返回)。 例: 在此示例中,位置以从0开始,X / Y,从左到右,自上而下的方式标记-但是您可以使用任何喜欢的格式,因为结果无论如何都与格式完全无关。 输入: ########### # ....# # ...# # ~ . # # ~~~ . # # ~~~~ # # ~~~~ # # ~~~~ o # # ~~~~ # #@~~~~ # ########### Ball (Start-Position): 1/9 Hole (End-Position): 8/7 输出: 8 …

15
跟着我重复!
给定一个字符串作为参数,输出最长的不重叠重复子字符串的长度;如果没有这样的字符串,则输出零。 您可以假设输入字符串不为空。 例子 abcdefabc:子字符串abc在位置1和7处重复,因此程序应输出3 abcabcabcabcab:abcabc或bcabcaor cabcab重复,因此程序应输出6。(子字符串abcabcabcab也被重复,但是出现的部分重叠,因此我们不接受它)。 aaaaaaa:aaa例如在位置1和4处重复,因此程序应输出3 abcda:a重复,因此程序应输出1 xyz:没有重复的字符串→ 0 ababcabcabcabcab:应返回6 这是代码高尔夫球,因此最少的字节获胜。
23 code-golf  string  code-golf  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  hexadecimal  code-golf  code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

2
带有炸药的鼠标
你是老鼠 您的鼠标朋友全部被捕获,失去知觉,被困在只有一个入口/出口的迷宫中。您恰好有一张完美的迷宫图,因此您可以制定一种解决方案,以赶紧进入并安全携带。但是,迷宫装有安全系统,1000一旦达到阈值,就会触发警报,导致您被抓获并无法执行救援任务。 根据您先前对迷宫的调查,您走过的每个正方形(即,每个水平或垂直移动- 鼠标都不能对角移动)会增加1安全系统的计数器。但是,如果您要负重(一块炸药或一个昏迷的老鼠朋友),它会增加重量,2因为它会检测到额外的压力。入口/出口广场没有此安全系统,因此也不会添加到柜台上。 您带到入口的炸药数量无限制,因此您只需炸毁所有墙壁即可释放朋友。但是您必须谨慎,因为每次爆炸都会增加50震荡压力。此外,您一次只能携带一件东西,无论是一只鼠标还是一块炸药。由于炸药块只能爆炸一个墙面空间,因此,如果连续有多堵墙面,则需要空手返回入口以获取更多空间。 通例 假设我们的迷宫如下所示: ###### #M# E# ###### 我将c用于柜台。我们从E入口开始,一边携带炸药一边向左移动一格c=2。我们引爆炸药炸毁墙壁c=52。我们空手向左移动两个正方形以得到c=54,现在我们站在鼠标的正方形上。我们接起朋友,将3个正方形移回Exit,但是最后一个正方形不计数,因为它没有任何传感器,所以只有2个正方形,背面有东西。这意味着,当我们使用最后一个鼠标c=58(小于)到达出口时1000,因此任务成功。 挑战 在输入迷宫的情况下,无论您是鼠标英雄,还是可以在上述限制范围内成功营救所有被困鼠标,或者任务是否失败,都可以输出。 输入项 任何可接受格式(多行字符串,字符串数组等)的2D迷宫。 对于这一挑战,我将同时使用#内墙和外墙,M鼠标朋友和E入口。 入口永远不会紧邻内墙(始终至少有一个空间可以自由移动)。 您可以替换任何希望的可打印ASCII字符,只要它们是一致的即可。只要您保持一致(例如,如果您选择改用内墙,而选择外墙,则每个内墙都必须是,每个外墙都必须),这确实允许您对内墙和外墙使用两个不同的符号)。@#@# 迷宫将始终被墙壁完全包围,但不一定是矩形。如果需要,您可以假定迷宫用空格填充以进行矩形输入(可选)。 迷宫中的部分可能没有炸药就无法到达。 您无法炸开迷宫的外墙。 输出量 甲truthy / falsey值。对于“是,鼠标可以拯救其他所有鼠标”,为True;对于“否,警报系统将被触发”,为Falsey。 规则 完整的程序或功能都是可以接受的。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 例子 真实示例,用空白行分隔。 ##### #M E# ##### ###### #M# E# ###### ######## #E # M# # # # # # # …

20
查找路径上的所有坐标
给定2D字符串作为输入,可以是带有换行符的字符串,也可以是行列表,输出列表(x, y)中所有哈希(#)的坐标。输入将仅包含哈希和空格。(和换行符,如果您选择将输入作为2D字符串) 如果没有哈希,则可以输出任何内容。 输出应该明确地确定哪些数字与哪些配对。 例: ## 应该输出: (0,0), (1,0) 假定从左上方开始基于0的索引。您可以从任何角度开始,使用基于0或1的索引,和/或y首先输出。(例如形式y,x)。 更多测试用例(同样,全部使用基于0的左上(x, y)索引): # ##### # (4, 0), (0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (0, 2) # ### ### # (0, 0), (2, 0), (3, 0), (4, 0), (0, 1), (1, 1), (2, 1), (4, 1) 请注意,这些测试用例全部按行列出,而不是按照路径列出。 …

30
用给定的宽度绘制空心的#
我从Codingame那里获得了这一挑战,并且对比我的更好的解决方案感到好奇: 通过标准输入给定宽度,在给定的宽度和长度上绘制一个空心的#号正方形。 例: 5结果 ##### # # # # # # ##### 我用python解决了这个问题,所以我对其他python代码特别感兴趣。但是,请随时以所需的任何语言发布您的解决方案。
21 code-golf  string  ascii-art  number  code-golf  grid  code-golf  string  ascii-art  code-golf  alphabet  cipher  code-golf  math  number  code-golf  quine  code-golf  palindrome  polyglot  code-golf  number  array-manipulation  counting  logic  code-golf  string  primes  binary  decision-problem  code-golf  ascii-art  kolmogorov-complexity  popularity-contest  code-golf  probability-theory  code-golf  string  code-golf  python  polyglot  programming-puzzle  c++  code-golf  math  code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

1
生成图片迷宫
挑战 编写接受“图像”并输出由该图像形成的图片迷宫的程序/功能。 输入值 您的程序应接受两个参数: 我,形成迷宫的形象 S,一个布尔值,指定是否显示迷宫的解 我的格式如下: ....... .#####. .#####. ####### .#####. .#####. ....... 其中#的是要包含在解决方案路径.中的单元格,而的是要排除的单元格。您可以用任意选择的字符替换.,,#和换行符,只要它们彼此不同即可。或者,您可以接受输入图像的实际位图。 输出量 产生的迷宫应采用以下形式: ############### # # # ### ####### # # #.........# # # #.#######.# # # #.#.......# # ###.#.######### ....#.#........ #####.#.####### # ...#..... # # #.#######.# # # #.........# # # ####### ### # # …

10
迷宫可以解决吗?
难题 如果迷宫n * m无法解析,则打印0 如果可以解决迷宫n * m(以1种或多种方式),则打印1。 (所以我不是在问路径,但是是否有可能解决!!!) 输入数组(2d): [[0,0,0,0,0,0,1],[0,0,0,0,0,1,0],[0,0,0,0,1,0,0],[1,0,0,0,0,0,0]] XXXXXXXXX XS XX X X X X X X XX FX XXXXXXXXX 0 = can pass through 1 = can not pass trough [0][n] is the last block of the first line [m][0] is the first block of the last …

2
解决冰迷宫
冰迷宫一直是我最喜欢的主食之一的神奇宝贝,因为他们的神奇宝贝黄金和白银登场比赛。您的任务是编写一个解决这些类型问题的程序。 顾名思义,冰迷宫主要由冰组成。一旦玩家在冰上向某个方向移动,他们将继续向该方向移动,直到与某个障碍物碰撞为止。还有可以自由移动的土壤,将阻止任何玩家在其上移动。最后的障碍是石头。石头不能与玩家占据相同的空间,如果玩家尝试进入其中,他们将停止移动,然后才能移动。 您将收到一个二维的值容器,例如列表列表或用换行符分隔的字符串,其中包含3种地板类型(冰,土壤和石头)中的每种的3个不同值。您还将收到两对(或其他等效的两个值容器),它们指示迷宫中的起点和终点坐标。这些可以是零或一个索引。 您必须输出一个动作列表(在N,E,S,W上有两个双射的4个不同值),这将导致玩家在执行时到达终点。 输入始终在迷宫周围有一个封闭的石头周界,因此您不必担心玩家退出迷宫 这是代码高尔夫球,因此最少的字节获胜 测试用例 这里.代表冰,~代表土壤,O代表石头。坐标为1索引。解决方案中的每个字母代表以该字母开头的方向(例如N=北) 输入项 OOOOO OO.OO O...O OOOOO Start : 3,3 End : 3,2 输出量 N 输入项 OOOOOOOOOOOOOOOOO O........O.....OO O...O..........OO O.........O....OO O.O............OO OO.......O.....OO O.............OOO O......O.......~O O..O...........~O O.............OOO O.......O......OO O.....O...O....OO O..............OO OOOOOOOOOOOOOO~~O OOOOOOOOOOOOOOOOO Start : 15,12 End : 16,8 输出量 N,W,N,E,N,E,S,W,N,W,S,E,S,E,N,E,N 输入项 OOOOOOOOOOOOOOOO O~~~~~OOOOO~~~~O O~~O~OOOOOOO~~OO O...O..........O …

3
啊!野兽在这里!
正如我们从IBM PC AT,YouTube(请参阅视频),Wikipedia(请参阅文章)和芝麻街所了解的: 字母H是字母表中最无情的字母! (即使实际上是由代码页437中的两个元素组成的,实际上,这种方式更无情。) 就像外星人一样,呃...呃... 外星人,野兽不懈地追求所有敢于靠近卵子的人。他们没有理由。如果不灭,就必须压扁它们。 对于这种情况,我们将假设您已经到了最后一生,并且您在没有卵的地形中遇到了野兽(如Wikipedia屏幕快照中所示)。您没有数字键盘,只能直接向上/向下/向左/向右移动...但是这些野兽显然有一个,可以在转弯时对角移动。 野兽在其选择中的移动选择将是使与玩家的距离最小化的选择。如果距离相等,则完成平局决胜,偏爱向左+向上胜于向右+向下,但这是明确的消歧矩阵...最低的平局决胜数: 1 3 4 2 H 5 6 8 7 野兽从不睡觉,但幸运的是,它们比玩家还慢。他们每隔一圈移动一次(通过在第二个回合开始他们的交替来让玩家领先。)如果可能的话,他们必须移动,无论这是否使他们离玩家更远。 如果将一列可移动的墙壁移动到封闭的缝隙中,则可以将其压碎。这些普通的野兽每头值2点。 输入项 一对整数,指示列大小,然后按行大小。 输入行的行数,每列大小...包含实心壁​​(#),活动壁(~),野兽(H),播放器(O)或仅一个空格。 输入将是U,D,L,R,表示玩家尝试移动...或等待等待的W。请注意,尝试推动被阻塞的可移动墙是合法的输入,只会导致不采取任何措施。 输出量 aHHHH! 如果野兽杀死了玩家...或者如果玩家赢了而没有剩下的野兽则一无所获 比分 (注意:出于调试目的和/或娱乐目的,您可能希望能够在每个步骤中输出状态;但这太长了,无法在此处发布。) 澄清说明 确保地图被实心墙包围。 谁依次移动的顺序对结果很重要。因此:玩家总是先走,然后如果您从左上到右从屏幕上扫过,则根据野兽的初始地图位置对其进行排序。(第1行的野兽移动到第2行的野兽之前,并且同一行上的两个野兽将是具有最低列号的野兽,然后移动到另一行) 对角移动的野兽可以移动到任何相邻的对角线开放空间中,而不管是否需要在墙壁之间挤压。 只要另一端有空间或野兽,玩家就可以将任何数量的可移动墙沿一条线推入。但是,尝试将一列墙壁推入没有固定在墙壁之间的野兽中时,会将野兽视为墙壁,并且不允许移动。 野兽在回合中的移动决定取决于玩家在回合开始时的位置。它对“玩家距离”的理想优化是通过“乌鸦飞翔”计算。从其正方形的中心到玩家正方形的中心测得的结果相同的任何近似值都可以。 如果由于较高优先级的野兽而无法将其作为第一顺位的行动,那么它将选择其第二个最佳选择,而不是保持原状(如果仍然可以采取行动)。 样品盒 简单粉碎 输入项 5 3 ##### #O~H# ##### R 输出量 2 偏好矩阵->死亡 输入项 5 …
19 code-golf  game  maze 

3
地牢建筑套装
小时候,我玩了Intellivision游戏Advanced Dungeons and Dragons:Tarmin of Tarmin。3D图形使您以令人震惊的真实感进入第一人称视角: 但是后来我得到了一架C-64。然后,我可以通过在屏幕上游标,使用Ctrl键和数字设置颜色以及将符号放置在所需的任何位置上来绘制40x25字符网格(为什么bash不让我这样做呢?)。字符集具有三角形成分和实心块成分。因此,我能够推理出如何通过该媒介在网格中生成一个人的视角的渲染。 我在本周的螺旋装订笔记本纸中找到了将近三十年的规格,关于“地下城建筑套装”: (更新:细心的读者会注意到,这在倾斜的部分上并不能完全解决。下面提供了更正的数字。) 尽管Tarmin of Tarmin是在网格上播放的,但墙壁仅存在于网格正方形的边缘。了解了字节是多少之后,我意识到,如果我用字节来制作地图,那么地图上的每个方块的每个边缘可能都有四个可能的状态: 通畅 壁 门 还有吗? 我从来没有去写它(直到昨晚)。我认为其他人尝试可能会很有趣。 因此,您的任务是实现一个基于字符模式的迷宫渲染器,该渲染器实现我的(更正!)规范...但是使用2013年的技术。 输入项 由于规范未定义门的渲染,因此我们仅假设唯一的选择是壁挂式和非壁挂式。为了简单起见,您的输入是一个由几行字符串组成的映射,如下所示: WN.. .N.. .N.. .N.. .N.E W... .... .... ..S. ...E W... .N.E W... .N.. ...E W... .... .... .... ...E W.S. ..S. ..S. ..S. ..SE 那将是一张5x5的地图。左上角(1,1)具有West和North墙设置。右下角(5,5)的S外墙和East墙固定。 如果没有地图导航,则乐趣会大大减少。因此,至少要将您的玩家放在(1,1)朝北的位置,并为他们提供: [F]orward, [B]ackward, turn …

5
打印随机迷宫
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 编写一个程序,使用您选择的算法生成并打印随机迷宫。对于程序的多次运行,迷宫应该不同。高度和宽度作为命令行参数给出。使用|垂直墙,-用于水平壁和+拐角。迷宫被墙壁所包围,入口被缺少的墙壁所标记。迷宫中的宝藏#必须从至少一个入口进入。 $ python2 random-maze.py 4 5 +-+-+ |#| | | +---+

5
生成一个ascii-art不相交的路径
给定2个代表该字段大小的整数输入,x并y输出通过该字段的路径。 输出示例5, 4: # # # ### ### # 整个字段是5 x 4,并且有一个由井号组成的路径穿过该字段。 路径应始终从左上角开始,然后到右下角。每次运行程序时,应将整个路径随机化。每个有效路径都应该是可能的输出。 路径规则为: 由井号组成 每个哈希仅连接到其他2个哈希(即路径不相交或与之并行) 非哈希空格可以用其他任何字符填充,但必须一致(即所有空格,所有句点等)。 例子: 2, 2 ## # 3, 4 ## ## # # 5, 5 ##### # # # # 6, 5 ## ### # # # ## # # # ## # ### # …

7
一维跳跃阵列迷宫
受我们启发,我们跳塔,并且与2D Maze Minus 1D相关 介绍 您的任务是找到遵循指定规则的最短路径,以摆脱阵列迷宫。 挑战 具有n个元素的一维数组a可以看作是由n个点组成的迷宫,其中索引k的点与k + a [ k ]和k - a [ k ]的点以单向方式连接。换句话说,可以向前或向后跳恰好一个 [ ķ从与索引点]步骤ķ。索引超出数组范围的点被视为迷宫之外。 为了说明这一点,请考虑以下数组, [0,8,5,9,4,1,1,1,2,1,2] 如果我们现在位于第5个元素,则由于元素为4,我们可以将第4步向前跳到第9个元素,或者将第4个步向后跳到第一个元素。如果执行后者,我们将以元素0结束,这表明不可能进一步移动。如果执行前者,由于第9个元素为2,因此我们可以选择跳到第11个元素,它又是2,然后我们可以再次跳至“第13个元素”,这超出了阵列,并认为是迷宫的出口。 因此,如果我们从中间的元素开始,一种摆脱迷宫的方法是向后跳1步,向前4步,向前2步,再次向前2步,这可以表示为array [-1,4,2,2]。另外,您也可以使用数组来表示它,该数组[4,8,10,12]记录所有中间点和最终点的从零开始的索引(也可以从1开始的索引),也可以只是符号[-1,1,1,1]。 从低折射率端逃脱迷宫也可以。 使用第一种表示法并从同一元素开始[1,1,1,2,2]也是一种解决方案,但由于不是5步而是4步,所以它不是最佳的。 该任务是找出最短路径以走出阵列迷宫并输出该路径。如果有多个最佳路径,则可以输出其中的任何一个或全部。如果没有解决方案,则应输出从有效路径中可以辨别的,由您选择的虚假值(完全不产生任何输出也是可以的)。 为了简单起见,数组中的元素数始终是奇数,我们总是从中间的元素开始。 测试用例 测试用例说明了各种形式的输出,但是您不限于这些。 Input Output [0,8,5,9,4,1,1,1,2,1,2] [-1,4,2,2] [2,3,7,1,2,0,2,8,9] [2,9] (or [2,-5] or [[2,9],[2,-5]]) [0,1,2,2,3,4,4,4,3,2,2,3,0] [1,-1,1,1] [0,1,2,2,4,4,6,6,6,6,6,4,2,1,2,2,0] [] 眼镜 您可以编写函数或完整程序。 该数组仅包含非负整数。 您可以通过任何标准格式进行输入和输出,但是请在您的答案中指定使用的是哪种格式。 这是代码高尔夫球,赢得的最低字节数。 …

1
正则表达式验证正则表达式[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 构建一个将接受正则表达式字符串作为输入的正则表达式,并检查其是否有效。基本上,您的正则表达式应该能够验证自己。(任何无效的正则表达式都不应进行验证,因此您不能使用.*。;)) 您的风味必须得到众所周知的实现(Perl,sed,grep,gawk等)的完全支持,并且必须完全支持那些实现所支持的功能。[不用担心律师说话;我只是想消除所有可能导致智能***的漏洞。] 我会对此进行编码,但是我担心它会给那些知道和使用非功能丰富的风味的人带来优势。还是我的担心没有根据?
17 code-challenge  code-golf  code-golf  game  sudoku  code-challenge  math  ai-player  code-challenge  sorting  rosetta-stone  code-challenge  code-challenge  programming-puzzle  code-golf  number  code-golf  maze  code-golf  math  regular-expression  code-golf  sequence  code-golf  graph-theory  code-golf  string  word-puzzle  natural-language  brainfuck  metagolf  optimized-output  fastest-algorithm  code-golf  game-of-life  cellular-automata  code-golf  puzzle-solver  grid  code-golf  combinatorics  binary-tree  popularity-contest  code-challenge  code-golf  ascii-art  kolmogorov-complexity  brainfuck  metagolf  code-golf  c  date  code-golf  word-puzzle  crossword  word-search  code-golf  code-golf  quine  code-golf  string  random 

9
门户迷宫最短路径
您的目标是编写一个程序,使用0,1和创建一个随机的10x10映射,并2假定从左上到右下的最短路径: 0代表草地:任何人都可以在上面行走; 1代表一堵墙:您不能穿过它; 2代表门户:输入门户时,您可以移至地图中的任何其他门户。 眼镜: 左上角元素和右下角元素必须为0; 创建随机映射时,每个字段应有60%的机会成为0; 30%的机会成为1; 10%的机会成为2; 您可以在任何相邻字段(甚至对角线字段)中移动; 您的程序应输出地图和最短路径的步数; 如果没有通向右下字段的有效路径,则您的程序应仅输出地图; 您可以使用任何您想使用的资源; 最短的代码获胜。 计算步骤: 步骤是实际运动;每次更改字段时,都会增加计数器。 输出: 0000100200 0100100010 1000000111 0002001000 1111100020 0001111111 0001001000 0020001111 1100110000 0000020100 9

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.