Questions tagged «maze»

应对迷宫挑战。

5
走迷宫
也许它不是真正的迷宫,但仍然如此。 规则: 输入是一个两行字符串,包括*,1,x和X。那根绳子是迷宫。线的长度相等。 您可以将输入作为带有,(逗号)的字符串或这两行之间的任何方便的分隔符。或者,您也可以将这两行作为函数的单独参数。 输出是退出字符串必须执行的步骤数(最后一步是将您移出字符串的步骤)。 您从左上角(较高的线)开始,在第一个符号之前。 对于每一步,您将向前移动一个符号(从第n个位置到第(n + 1)个位置)。然后,根据您所踩的角色,结果是不同的。这是每个字符的作用: *- 没有。您通常只是踩到它。 x-踩到它后,切换线路,但与起点保持相同的水平距离。例如,您踩到较高行的第三个位置,并在x此处遇到了一个小写字母。然后,您立即移至下一行,但再次移至第三位置。 X-切换线路并转到下一个位置。此处的示例相同,但您也从第三位置移至第四位置(因此,第二行位于第四位置)。 1 -向前移动另一个位置。 每个角色完成工作后,将替换为空格,不再“有效”。 示例如下。 输入: x * 如前所述,您从第一行的第一个符号开始。第一步将您移至字母上x,此字母将您切换至第二行。该字母x不再用作x,而是由代替*。在后面的示例中,这将更有意义。您现在位于底行的星号上,对您没有任何作用。 第二步是将您向前移动,然后退出弦线,因此迷宫完成了,并且花费了2个步骤。 输出 2。 输入: xX* x1* 第一步:继续前进x,这会将您移至x下一行的。这是一条规则,该规则说使用的字符替换为星号。然后,您移回第一行,但x由于它已被使用并成为星号,因此不再存在。因此,您可以安全地在该星号上移动,并且该步骤已完成(您现在位于第一行的第一个位置)。 第二步:继续前进X,它会将您推到较低的线,然后再将您向前推。您现在位于第二行的第三个位置(星号),而从未访问过第二个位置(包含1)。 第三步:向前移动,退出字符串。 输出:3。 测试用例: 输入: *1* xxx 输出:3。(因为1使您跳到第三位置)。在那里您永远不会访问第二行,但这是输入的必需部分。 输入: *X*1*x x*1xx* 输出:4。 输入: 1x1x ***X 输出:3。 输入: 1*x1xxx1*x x*x1*11X1x 输出:6。 输入: xXXXxxx111* …

3
迷宫产生一个内胆
著名的C64基本型内胆 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 打印斜杠和反斜杠的迷宫。 \\/\\\//\/\////\\/\/ \/\///\\///////\//\/ /\\\//\//\////\\//\\ \////\//\//\/\\\\\\/ /\/\\///\\\\/\\\\/\\ \/\//\\\\\\//\/\//// /\//\\///\/\///\//// \/\\\//\\/\\\//\\/\/ //////\\/\\/\/\/\/// \\/\/\\////\/\/\\/\/ 从stdin读取由对角线墙组成的迷宫,并打印出水平和垂直的迷宫,其中水平和垂直墙由墙字符“#”组成 例如小迷宫 /\\ \\/ /// 转换为 ##### # # # # # # # # # # ##### # # # # # ######### ##### 确切地说,每个隔离的墙段的长度为五个字符,相邻的墙段共享一个角。在斜杠和反斜杠的矩阵中向右/左/上/下移动一个字符,对应于#矩阵中垂直两个字符和水平两个字符的对角线平移。

2
建立老鼠迷宫的程序
您已被聘为研究助理,并被要求创建一个小程序来构建老鼠迷宫。老鼠盒始终为62x22,并具有老鼠的入口(a)和出口(A),如下所示(输入1): #######a###################################################### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #################################################A############ 您的程序必须在方框中填充块(#),为老鼠留下路径,如下所示(输出1): #######a###################################################### ####### ###################################################### ####### ###################################################### ####### …
15 code-golf  grid  maze 

5
二进制卷积
二进制卷积由数字描述M,并应用于数字N。对于的二进制表示形式中的每个位M,如果将该位设置为(1),则通过将与相应位中的相应位相邻的两个位进行XOR N(在必要时进行环绕)来给出输出中的相应位。如果未设置该位(0),则输出中的相应位由中的相应位给出N。 一个有效的示例(具有8位值): 让N = 150,M = 59。它们的二进制表示形式分别为10010110和00111011。 根据M的二进制表示形式,卷积0、1、3、4和5。 位0的结果由对位1和7进行XOR运算得出(因为我们进行了环绕),得出1。 位1的结果由位0和2的XOR运算得出0。 位2的结果由原始位2给出,即1。 第3位的结果由第2位和第4位的XOR运算得出0。 位4的结果由位3和5的XOR运算得出0。 第5位的结果由第4位和第6位的XOR运算得出1。 位6和7的结果由原始位6和7给出,得出0和1。 因此,输出为10100110(166)。 挑战 给定N和M,输出执行Mon上描述的二进制卷积的结果N。输入和输出可以采用任何方便,一致且明确的格式。N并且M将始终在(包括)范围内[0, 255](8位无符号整数),并且应将其二进制表示形式填充为8位以执行二进制卷积。 测试用例 150 59 -> 166 242 209 -> 178 1 17 -> 0 189 139 -> 181 215 104 -> 215 79 214 -> 25 190 207 -> 50 61 …
15 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 

3
多级免费停车位查找器
与孩子相关的介绍 每当我带孩子去游乐园时,我们离公园越近,孩子们就会变得越紧张,当我们在停车场而找不到停车位时,就会感到神经紧张。因此,我决定我需要一种方法来找到最近的免费停车位,以最大程度地减少停车时间。 技术介绍 想象一下这样的停车场的示意图: ***************** * * * ··CC··C··CC·· * * ************* * * ··CCCCCCCCC·· * * * **********E****** 在此表示中,是*指墙壁,·免费停车位,E入口和C已经停放的汽车。每个空白处都是要停放的汽车可用于在停车场周围移动的位置。现在让我们将此概念扩展到3D以创建多层停车场: 1st floor 2nd floor 3rd floor 4th floor ***************** ***************** ***************** ***************** * 1 * 2 * 3 * * * CCCCCCCCCCCCC * * CCCCCCCCCCCCC * * ····C··CCCCCC * * …

2
棋盘迷宫
棋子(国王,皇后,新人,主教和骑士)和棋子在板上,但不在a1或h8广场上。您的任务是从空的a1到空的h8正方形,仅通过空正方形。行动规则如下: 您可以从任何空白方块继续到其旁边的空白方块(相同等级,下一个或上一个文件;或相同文件,下一个或上一个文件)。 您可以从任何一个空方块到对角线旁边的任何一个空方块(下一个或上一个等级,下一个或上一个文件),条件是每斤角方块包含(a)两个棋子或(b)相反的棋子/棋子颜色。(两个颜色相同的非典当棋子,或一个非典当棋子与典当棋子的强度足以阻止您过弯,但两个典当棋子都不行;相反颜色的棋子/棋子在例如,如果您在c4上并且d5为空,则可以继续进行下去,前提是c5和d4包含典当或包含相反颜色的棋子/棋子。有关图片,请参见下面的“对角线示例”部分。 输入值 FEN的板说明。即:输入将是一个字符串,其中包含等级8的描述,斜杠(/),等级7的描述,斜杠…和等级1的描述。每个等级的描述都包含数字和字母,从文件a到文件h,其中字母表示棋子和棋子(黑色的棋子是p= pawn,n= knight,b= bishop,r= rook,q= queen,k= king和白色1是相同的大写形式),数字表示连续的空方块数。例如,rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBN移动一层后的木板(国王的棋子到e4)在国际象棋游戏中。 输入中a1和h8为空;即,第一个斜杠前面有一个数字,最后一个斜杠后面有一个数字。 输出量 真假,表明是否有可能成功传递到h8。 如果输入不是有效的FEN板描述(即与我上面的解释相符的描述),或者如果a1或h8被占用,则输出可以是任何东西或什么都不是。(换句话说:您可以假设输入满足以上要求。) 计分 这就是代码高尔夫:最少的字节数获胜。 输入和输出示例 请注意,您的代码必须适用于所有有效输入,而不仅仅是示例。 w在每个FEN之后添加一个空格和一个以使其可视化http://www.dhtmlgoodies.com/scripts/chess-fen/chess-fen-3.html。(请注意,其他一些在线FEN可视化工具不允许使用棋类中非法的棋盘,例如,棋子的等级为1或8,因此不能用于我们的目的。) 真实的例子 8/8/8/8/8/8/8/8 —空板 1p1Q4/2p1Q3/2p1Q3/2p1Q3/2p1Q3/2p1Q3/Q1p1Q3/1q3q2—有一条路径a1,b2,b3,b4,b5,b6,b7,c8,d7,(不是 e8,但被遮挡了)d6,d5,d4, d3,d2,d1,e1,f2,f3,f4,f5,f6,f7,f8,g8,h8 8/8/KKKKK3/K3K3/K1K1p3/Kp1K4/K1KK4/2KK4 —一个示例,其中稍后必须通过在某个点被遮挡的正方形(以确保您不会将正方形设置为不可通过) K1k1K1K1/1K1k1K1k/K1K1k1K1/1k1K1K1k/K1k1K1k1/1K1k1k1K/K1K1k1K1/1k1k1K1k—只有一条路可以走(只要顺着鼻子走:每一步只有一个正方形,除非向后走一步);这也是一个正方形在某个点被阻塞但稍后需要的示例 虚假的例子 6Q1/5N2/4Q3/3N4/2Q5/1N6/2Q5/1N6 —任何尝试在路径上的操作都必须穿过两个对角线放置的相同颜色的片段 N1q1K1P1/1R1b1p1n/r1B1B1Q1/1p1Q1p1b/B1P1R1N1/1B1P1Q1R/k1k1K1q1/1K1R1P1r-穿过a8-h1对角线的唯一方法是在f2-g3处,但这将需要穿过e1-d2或f2-e3,这都是不可能的。 4Q3/4q3/4Q3/5Q2/6Q1/3QqP2/2Q5/1Q6 4q3/4Q3/4q3/5q2/6q1/3qQp2/2q5/1q6 对角线示例 如果上面的散文不清楚,这里有一些图片。 可通过对角线 不可逾越的对角线
14 code-golf  chess  maze 

1
箭迷宫逃生
题 您有一个50 x 50的字符数组。每个单元格都有一个箭头,指向四个方向中的任何一个。没有单元格为空。输入单元格时,必须按箭头指定的方向退出它。箭头也可能指向您来自的方向,从而导致死角。 您可以从迷宫最外边界的任何单元开始,找到一条进入迷宫的路径,并导致您从其他某个单元退出。输入将以包含<,>,^和v的数组的形式给出。输出将是一位数字(布尔值,整数或字符,将执行任何操作),其值为0(表明该任务是不可能的)或1(表明您拥有完成了任务)。 示例(实际数组将大于此) ^ v < > > < v < v > v ^ 输出将是 1个 因为您可以从右侧的<输入,这将导致您通过路径“ <v v”从底部v退出 任务是编写最短的代码,将迷宫作为输入,并确定规则中指定的路径,并输出一位数字0或1 也允许输出TRUE和FALSE而不是实际数字。
14 code-golf  maze 

1
计数坎宁安链
素数总是让人着迷。2300年前,欧几里得在他的《元素》中写道 质数是仅由一个单位测量的质数。 这意味着素只能被 1(或本身)。 人们一直在寻找素数之间的关系,并提出了一些非常奇怪的东西(如“有趣的”)。 例如,一个索菲·热尔曼质数是一个主要p针对2*p+1也是素数。 一个安全素是一种主要p用于哪些(p-1)/2也是黄金,而这正是一个索菲·热尔曼质数的倒退状态。 这些与我们在此挑战中寻找的东西有关。 一个坎宁安链型我是一系列素数,其中除了最后一个的每一个元素是的索菲·热尔曼质数,而除了第一个的每一个元素是一个安全的黄金。该链中元素的数量称为它的length。 这意味着我们从素数开始p计算q=2*p+1。如果也q为质数,则我们有长度为2的I型Cunnigham链。然后进行测试2*q+1,以此类推,直到下一个生成的数字为复合数为止。 II型坎宁安链是按照几乎相同的原理构造的,唯一的区别是我们检查了2*p-1在每个阶段。 坎宁安链的长度可以为1,这意味着2 * p + 1和2 * p-1都不是素数。我们对这些不感兴趣。 坎宁安链的一些例子 2启动长度为5的I型链。 2, 5, 11, 23, 47 下一个构造的数字95不是素数。 这也告诉我们,那5,11,23和47不启动类型的任何链我,因为这将有前述的元素。 2也开始长度为3的II型链。 2, 3, 5 接下来是9,这不是素数。 让我们尝试II11型(之前我们将其排除在I型之外)。 好吧,接下来是下一个,它不是素数,因此该“链”的长度为1,我们不将其计入此挑战。21 挑战 写一个程序或功能,给定一个号码n作为输入,写入/返回的起始数第n个的坎宁安链I或II型的至少长度为2,后跟一个空格,随后链的类型它开始(我或II),然后是冒号,然后是该类型链的长度。万一素数同时启动两种类型的链(类型I 和型 II型),则首先计算型链。 例: 2 I:5 请记住,这n可能是任何类型的先前启动链的一部分,在这种情况下,不应将其视为该类型链的起始编号。 让我们看看这是如何开始的 我们从开始2。由于它是第一个素数,因此我们可以确定没有链从包含的较低素数开始2。 类型I中的下一个数字将是2*2+1 == 5。5是素数,因此我们已经有了至少长度为2的链。 我们将其视为第一条链。那II型呢?下一个号码是2*2-1 == 3。3是素数,因此II型的链长也至少为2。 …

1
设计和解决迷宫[在沙箱中暂停]
你的任务是扮演的角色都在角色这一幕从成立。在其中,Cobb给Ariadne带来了挑战: 您有两分钟的时间设计一个迷宫,需要一分钟的时间来解决。 该描述将有一些自由。最重要的是,这种挑战不是基于时间的,而是基于迷宫和迷宫求解器的效率来得出分数。 对于此挑战的许多修改,我们深表歉意,因为我们正朝着一种简单而公平的格式过渡。 第一部分:迷宫格式 所有的迷宫都是正方形。迷宫中的一个单元表示为零索引元组row column。 墙由两个二进制字符串表示:一个用于水平墙(阻止行之间的移动)和用于垂直墙(反之亦然)。在NxN迷宫中,Nx(N-1)每种类型的墙壁都有可能。让我们以一个3x3的示例为例,其中标记了单元格: A B | C --- D | E F --- G H | I 所有可能的垂直墙为:AB BC DE EF GH HI。转换为字符串,显示的墙壁011001用于垂直墙壁和010010水平墙壁。另外,“二进制字符串”是指“字符'0'和'1'”。 完整的迷宫格式是一个字符串,其中包含以下顺序: 宽度 开始元组 末端细胞元组 水平墙 垂直墙 例如,这个迷宫: 0 1 2 3 4 _________ 0 | | E| _| 1 | _|_|_ | …

5
文字迷宫求解器
给定stdin上的迷宫和入口点,编写一个程序,在stdout上打印到出口的路径。只要您的程序不会为每个迷宫生成平凡的路径(穿过迷宫中的每个点),任何路径都是可以接受的。 在输入中,墙壁用a标记,#入口点用a 标记@。您可以使用任何字符在输出中绘制迷宫和路径,只要它们完全不同即可。 您可以假设: 入口和出口点在输入的边缘 输入的每一行都具有相同的长度 迷宫可解且无循环 只有一个出口 最短的(Unicode)字符计数解决方案获胜。 例子 (请注意,输入用空格填充) #### # # @ ##### # # # ####### #### # # @*##### #* # #****** ####### ### ################### ### # # ## ######### # # # ##### # ############### #@## ###*################### ###*********#*********# ## *#########* # *# # *********** …

1
交互式迷宫求解器
鲍勃被绑架,被困在迷宫中。您的工作是帮助他找到出路。但是由于这是一个非常黑暗和可怕的迷宫,他什么都看不到。他只有在碰到墙壁时才能感觉到墙壁,并且知道何时找到出口,但仅此而已。 由于他必须通过内存运行您的程序,因此它必须尽可能短。 注意:我从http://acmgnyr.org/year2016/problems.shtml中解决了这个问题,但略加修改,并亲自编写了法官程序/测试案例。 规格 这是一个交互式问题,因此您的程序将把输出输出到stdout,并接收来自stdin的响应。 招式您的程序可以输出一个right,left,down,up。 然后它将获得以下之一作为输入: wall-这意味着鲍勃撞墙了。鲍勃将留在同一个地方。 solved-鲍勃找到了出口!您的程序现在也应该退出而不打印其他任何东西。 ok -鲍勃能够朝着给定的方向移动。 如果迷宫没有出口,那么您的程序应该输出,no exit以让Bob知道他应该放弃。然后,您的程序应退出而不打印其他任何内容。 由于Bob急于离开,因此您的程序不应做任何无关紧要的动作。换句话说,您的程序不允许从相同的正方形向相同的方向移动两次。 这是代码高尔夫球,所以最短的程序胜出! 例子 在以下示例中,S是起始正方形,X是出口,#是墙,并且空格是有效正方形。由于没有一个正确的答案,因此这些只是解决方案的示例。还要注意,迷宫的图形就在那儿供您查看,您的程序不会将其作为输入。 ######## #S # ###### # # # #X# right ok right ok right ok right ok right ok right wall down ok right wall down ok right wall down solved ##### # S …

7
迷宫中的切点
迷宫以任何方便的格式表示为0(墙壁)和1(可步行空间)的矩阵。每个单元都被视为连接到其4个(或更少)正交邻居。阿连接成分是一组可行走单元中的所有传递地彼此连接的。您的任务是确定切入点 -可行走的单元格,如果将它们变成墙壁,将改变连接的组件数。仅在这些位置输出带有1-s的布尔矩阵。我们的目标是用最少的代码字节做到这一点。 输入矩阵将至少包含3行和3列。它的至少一个单元将是一堵墙,至少一个将是可步行的。您的函数或程序必须能够在一分钟内在TIO上(或在您自己的计算机上,如果TIO不支持该语言)处理下面的任何示例。 in: 11101001 11011101 00000001 11101111 11110101 00011111 10110001 11111111 out: 01000000 00001001 00000001 00000101 00110000 00010000 00000000 11100000 in: 1111111111111111 1000000000000001 1111111111111101 0000000000000101 1111111111110101 1000000000010101 1011111111010101 1010000001010101 1010111101010101 1010101111010101 1010100000010101 1010111111110101 1010000000000101 1011111111111101 1000000000000001 1111111111111111 out: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 …

12
生成单路径迷宫
给定一个奇数N(5 <= N <= 51),生成一个边长为N的迷宫,其遵循以下要求: 迷宫必须由字符 | -和组成+。它必须将|角色用作垂直墙,将-角色用作水平墙,并且如果该墙转弯,+则应使用角色。 路径的宽度必须是一个字符。 迷宫必须转动至少四次。 迷宫必须具有外壁,该壁在两个点处断裂:起点和终点。 从头到尾,迷宫必须包含一条不间断的路径。 例如,以下是有效的迷宫:(N = 5) +---+ | | | | | | --+-- 对于N = 7: --+---+ | | | | | | | | | | | | | | | | +---+-- 请记住,这是code-golf,所以字节数最少的代码将获胜。

1
有效迷宫数
给定一个WxH网格,有多少种可能的迷宫? 您对迷宫的了解: 网格正好是H正方形,W正方形是正方形。 共有三种类型的正方形:“开始”,“完成”和“空”。迷宫必须正好包含1个开始点和1个结束点,所有剩余的方块均为空。 整个迷宫周围都有墙壁。 除非违反以下规则,否则墙可以存在于任意两个正方形之间的边缘上: 从开始方块到完成方块必须存在一条路径。 因此,给定两个数字W和H,您必须返回一个数字,代表可能的正方形/墙壁配置的数目。您保证W*H > 1 例如,2x2迷宫具有完全100不同的可能配置。 这是一个代码高尔夫球,所以最短的答案是成功的!

3
仅用一个解决方案创建一个多级5x5x5迷宫
这项挑战的目的是创建最短的代码(以字符为单位),以成功执行以下操作: 规格: 必须5x5x5 labyrinth精确地创建一个1 possible solution(不多不少) 必须创建迷宫 randomly 如果运行多年,它必须能够生成每个现有解决方案 该start和finish必须放在*opposite corners 地图output必须采用以下格式之一: 选项输出格式1 strings, printed or alerted: xxxxx,xxxxx,xxxxx,xxxxx,xxxxx/ xxxxx,xxxxx,xxxxx,xxxxx,xxxxx/ xxxxx,xxxxx,xxxxx,xxxxx,xxxxx/ xxxxx,xxxxx,xxxxx,xxxxx,xxxxx/ xxxxx,xxxxx,xxxxx,xxxxx,xxxxx 选项输出格式2 arrays: [[xxxxx,xxxxx,xxxxx,xxxxx,xxxxx], [xxxxx,xxxxx,xxxxx,xxxxx,xxxxx], [xxxxx,xxxxx,xxxxx,xxxxx,xxxxx], [xxxxx,xxxxx,xxxxx,xxxxx,xxxxx], [xxxxx,xxxxx,xxxxx,xxxxx,xxxxx]] 输出说明: 使用0了empty和1用于squares 换行是不是必要的 您决定什么index是什么,但请务必将其解释清楚 *以下是我在相反的角落所指的例子: 说明: 能不动的diagonal 能不相同的路径上通过两次 有inaccessible areas被允许 您可以go up/down连续超过一个级别 提示: 不要将它们视为墙,而应将它们视为5x5x5一堆正方形,其中一些缺失,您可以遍历缺失的正方形

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.