Questions tagged «grid»

对于涉及网格的挑战。

3
飞船去哪儿了?
基于Zgarb提出的想法。 宇宙飞船在规则的3D网格周围移动。网格的单元格在右手坐标系xyz中用整数索引。太空飞船从原点开始,沿x轴正方向指向,z轴正方向向上。 飞船将沿着由非空运动序列定义的轨迹飞行。每个运动要么是F使飞船朝其朝向移动一个单元的(向后)方向,要么是六个旋转之一UDLRlr。这些对应于以下的俯仰,偏航和横滚: 感谢Zgarb创建该图。 Up和D自己将飞船的俯仰改变90度(方向对应于飞船鼻子的运动)。 L和 R左右将飞船的偏航角改变90度。它们只是常规的左转和右转。 l和 r向后是90度的侧倾运动,方向指示哪个机翼向下运动。 请注意,应该始终相对于飞船解释这些内容,以便相关的轴随之旋转。 用数学术语来说,宇宙飞船最初位于位置(0, 0, 0),沿着(1, 0, 0)矢量(0, 0, 1)指向,指向上方。旋转对应于应用于坐标系的以下矩阵: U = ( 0 0 -1 D = ( 0 0 1 0 1 0 0 1 0 1 0 0 ) -1 0 0 ) L = ( 0 -1 0 R …

3
标记基于堆栈的语言
我一直在研究另一种称为Stackgoat的基于堆栈的高尔夫语言。在这个挑战中,您将为Stackgoat(或实际上是任何通用的基于堆栈的语言)编写Tokenizer。 例子 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 规格 您需要处理的三种类型是: 弦乐,什么内"" 数字,任何数字序列 运算符,除空格外的任何其他单个字符 除非将其留在字符串中或将两个数字分隔开,否则实际上将忽略空格。 字符串/字符规范: 字符串以分隔",当\遇到时,下一个字符应转义。 字符前面加a ',后面的字符'应转换为字符串文字。'a->"a" ' 后面总会有一个角色 右引号应自动插入 规则: 没有形式eval允许 输入输出: 可以通过STDIN,函数参数或您的语言等效输入。 输出应为数组或您的语言最接近的等效数组。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

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

2
我如何在生活中获得更多的Klotski?
我真的很喜欢滑动拼图,但是最近,我没有时间去做。因此,我需要一个程序来解决滑动砖块难题,特别是Klotski难题。 您的输入将采用以下格式: ####### #001gg# ##.222# .###### 其中#代表墙壁,.代表开放区域,g代表目标,相邻数字代表不同的方块。您可以假设: 不会超过10个街区 不会有两个号码相同的方块 所有街区将被围墙包围 网格是矩形 该0块是大到足以覆盖所有的目标方格。 有一个有效的解决方案 您需要返回一系列移动步骤,以放置0方块,使其覆盖所有目标方格。方块不能穿过墙壁或其他方块。对于上述难题,适当的顺序是 2L,1R,1R,1D,0R,0R,0R while代表将2方块向左移动1方块,1方块向右移动2方块(在球门顶部),然后向下移动1方块,再0向右移动3方块。 实际上,有几个序列可以解决上述问题,并且产生其中的任何一个都是可以接受的。您的解决方案应该是最佳的,这意味着它应该产生一个序列,以尽可能少的步骤解决难题。 序列应如上打印,但可以用逗号,换行符或空格分隔。我不在乎是否有逗号或空格。您应该在合理的时间内产生输出(在以下难题中最长为120秒)。 难题1: ..####.. ..#00#.. ###00### #......# #.1122.# ##3124## .#3344#. .##55##. ..#gg#.. ..####.. 难题2: ###### #1002# #1002# #3445# #3675# #8gg9# ###### 难题3: .####. ##1g## #22g3# #4255# #4.56# #.006# #7008# ###### 难题4: .####. ##00## #.00g# …

8
离散贝克地图
介绍 在贝克的地图是一个重要的动力系统表现出混沌行为。它是从单位平方到其直观定义的函数,如下所示。 将正方形垂直切成两半,形成两个大小为的矩形0.5×1。 将右半部分堆叠在左上方,形成一个矩形大小 0.5×2 将矩形压缩回1×1正方形。 在此挑战中,您将实现此转换的离散版本。 输入输出 您的输入是2D数组,可打印的ASCII字符和2m×2n某些字符的空白空间m, n > 0。您的输出是使用数组按以下方式获得的类似6×4数组 ABCDEF GHIJKL MNOPQR STUVWX 举个例子。首先,将数组的右半部分堆叠在左半部分的顶部: DEF JKL PQR VWX ABC GHI MNO STU 然后,将这些列拆分为成对的字符,并分别将每对字符顺时针旋转90度,将高矩形“压缩”回原始形状: JDKELF VPWQXR GAHBIC SMTNUO 这是上述阵列的正确输出。 规则 输入和输出格式灵活。您可以使用换行符分隔的字符串,字符串列表或2D字符数组。但是,输入和输出必须具有完全相同的格式:您必须能够对任何有效输入进行任意次数的提交迭代。 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 Input: 12 34 Output: 42 31 Input: Hell ! o d - lroW Output: lol …
15 code-golf  string  grid 

20
生成求和网格
生成一个7 x 7的网格,其中填充了随机数。但是,在具有奇数行和列编号(从0开始)的单元格中,必须使用周围单元格的总和。这是一个3 x 3网格的小示例(加粗平方和): 2 2 2 2 16 2 2 2 2 这是一个7 x 7网格的示例: 6 5 4 3 7 2 5 6 43 3 50 8 43 8 4 7 8 8 9 3 1 4 36 1 43 6 40 5 3 3 6 1 4 …

5
高尔夫代码:熄灯!
传递所有可能性的最短代码获胜 已经开发出许多基于网格的游戏,它们以打开的灯光网格开​​始。按下任何一个灯都会导致该灯和与其相邻的四个灯切换。切换灯光时,灯光是关闭还是打开,这取决于它是最初打开还是关闭。目标是按顺序击中灯光,导致所有灯光最后都关闭。 “ X”表示已打开的灯。“ O”表示关闭的灯。“ P”代表被按下的那个正方形。 XOO XOO XOX XOX XXX XOX XOP -> XXO -> OPO -> XOX OOX OOX POO XXO XOO Intial Grid Press 1 Press 2 Press 3 Ending Grid 输入可以直接从作为参数传递的文件或标准输入中获取。输入的第一行将包含x(1 <= x <= 20),即灯光网格的大小,即x乘x。第二行将包含y(0 <= y <=(x * 3)2),即最初点亮的灯数。接下来的y行包含网格上照亮的灯光的坐标,格式为“行列”。应该重新关闭已经打开的灯(之前已切换过)。下一行将包含z,即按下的灯光数量。最终z 行以“行列”的格式包含按其按下顺序的按下的灯光的坐标。 没有输入将是不正确的。所有数字都将在网格的给定边界内。 切换所有灯光后,输出将是最后一个网格。它应该是一个n × n的网格。对于每个点亮的区域,均应使用大写字母“ X”。对于每个灯光都熄灭的区域,应使用大写字母“ …

10
周边环圈包围的区域
给定其周长环为90度转弯的序列,找到单位晶胞区域的面积。 例如,以三格区域为例 XX X 我们画出谁的周长环 L<S<L v ^ S R>L v ^ L>L 每转标记为左(L),直(S)或右(R)。从R开始,转弯为RLLSLSLL。因此,给定输入RLLSLSLL,我们应该为该区域输出3。 确保输入序列能找出一个循环,该循环将左侧的单个区域包围起来。 路径在起点处开始,面向初始方向,形成一个循环。 循环不会交叉或接触自身。 循环围绕一个区域逆时针旋转。 输入输出 您可以将输入作为一个列表或字符串LSR,或者作为-1, 0, 1左,直,右的数字。输出是一个正整数。漂浮物还可以。 测试用例 输入以两种格式给出,后面分别是它们的输出。 RLLSLSLL LLLL SLLSLL LSRRSLLSSLSSLSSL SSSSSLSSSSSLSSSSSLSSSSSL [1, -1, -1, 0, -1, 0, -1, -1] [-1, -1, -1, -1] [0, -1, -1, 0, -1, -1] [-1, 0, 1, …

7
我的孩子的字母垫是否按颜色正确分组?
我的孩子有一个字母垫可以玩,就像这样: 经过数月的随机放置地垫瓷砖后,我累了,并根据其背景颜色按部分分组放置了所有地垫瓷砖。因此,如果字母代表背景色,我会得到一个像这样的垫子: AABBCDDDE ABBCCCDEE ABCCCCDDE AACCCDDEE AAAACCCCE AAAAAACCC 因此,对于颜色A,B,C,D和E,总有一种方法可以在垫子中水平或垂直连接具有相同背景颜色的所有图块。这就是我所说的按颜色正确分组的垫子。您可以在下表中看到上一个示例的组: AA A A AA AAAA AAAAAA BB BB B C CCC CCCC CCC CCCC CCC DDD D DD DD E EE E EE E 此外,每种颜色只有一组,因此这是无效的: ABA ABA 因为颜色A磁贴不仅仅分为一组。这也将无效,因为这些图块既不水平连接也不垂直连接: AB BA 挑战 给定一个可打印ASCII范围内的二维字符数组(只要两个维度的大小均等于或大于1,就不必是正方形),请检查该数组是否表示按颜色正确分组的垫子(数组中的每个字符都代表不同的颜色)。输入可以采用任何合理的格式,只要它表示二维字符数组(2D char数组,相同长度的字符串数组,依此类推),并且输出必须是一对真值和假值(0 / 1,'t'/'f',true / false,无论返回什么,并且返回值在输入中都保持一致)。 这是代码高尔夫,因此每种语言中最短的程序/函数/方法/ lambda可能会获胜! 例子 A …

2
找到循环的内部
任务 给定循环的ASCII图 例如 .................... ......@@@@@......... ......@...@......... .....@@...@@@@@..... ....@@........@..... ....@........@@..... ....@@@@@@@@@@...... .................... .................... 和循环上的位置 例如 (7,1) 您必须找到循环的内部和外部 例如 00000000000000000000 00000011111000000000 00000011111000000000 00000111111111100000 00001111111111100000 00001111111111100000 00001111111111000000 00000000000000000000 00000000000000000000 技术指标 您可以将图表的输入作为由换行符或明显等效的字符串分隔 作为输入的一部分,您将在循环上收到一个坐标(0或1索引)。您可以将自己的血统放在任何您想要的地方。您可以借此协调(<row>, <column>),(<column>, <row>)或弦上的线性位置。您可以通过任何合理的方式接收这些数据。循环上的所有字符将与该索引处的字符相同。 优选的输出是truthy和falsy值的2维阵列,但是串1和0通过换行或后两种的任何明显的等效接受分离。内部和外部必须具有不同的真相值,但这与哪个无关紧要。 循环被定义为一组字符,以使它们全部是相同的字符(例如@),从而循环中的每个字符都具有到原始字符(输入坐标处的字符)的路径,该路径仅通过相同的字符字符(出租车几何图形没有对角线)。 内部是所有循环本身,以及不跨越循环就无法到达图边缘的位置。 外面无处不在 这是代码高尔夫球 测试用例 粘贴框

1
旧金山的出租车
您是旧金山的出租车司机。正如出租车司机的典型做法一样,您正在浏览一个网格,在该网格中,您只能移动的有效方向是左,右,上和下。但是,圣弗朗西斯科(San Fransisco)非常丘陵,因此两个相邻交叉路口之间的距离不一定相同。更具体地,在海拔处的交叉点与在海拔处a的相邻交叉点之间的距离b将是1 + |a - b|。您的目标是找到从地图左上角的起点到右下角的目的地的所有最短路径。 输入值 整数高度的二维网格,采用最方便的格式(二维数组,具有宽度和/或高度的一维数组等)。 输出量 方向行进的顺序以给定的距离,高度的两个相邻交叉点之间的距离留在最短的距离可能顶部的输入的右下角到达a和b由下式给定1 + |a - b|。如果有多个解决方案,请输出所有解决方案。 虽然我使用U,D,L,和R为上,下,左,右在你的程序可以使用任何四个不同的字符串来表示的方向上,只要它是与他们一致,并在所有输入下面的例子。 例子 Input: 0 3 0 0 0 0 2 0 2 0 0 0 0 3 0 Output: D D R R U U R R D D Input: 3 Output: <empty> Input: 11 11 …

1
跳棋:国王吗?
挑战: 给定棋盘格,如果可能的话,输出将花费最少的移动量(假设黑色根本不移动)为红色棋子。 规则: 红色的一面总是在底部,但是它们的碎片可以从任何行开始(甚至需要到达国王的行)。黑色棋子是静止的,这意味着它们不会在红色棋子之间移动,而在捕获时会从棋盘上移开。请注意,片段可以在板上的任何空间开始,包括彼此相邻。这不是播放普通跳棋的方式,但是您的程序必须能够解决这些问题。(请参阅输入5)但是,方格件只能对角移动(请参阅输入3)。如果第一个捕获在链中是向前的,则允许向后捕获(请参见输入7)。 输入: 一个8x8的棋盘格,其棋盘空间定义为以下字符(只要它们是一致的,可以随意使用替代项): 。-空 R-红色件 B-黑色件 输出: 的最小的移动号码,将采取一个红色片是“kinged”通过输入在板(黑侧)的顶行王的行,0如果不需要移动(开始红色片上王的行),或如果不可能加红色,则为负数(即黑色占据整个第一行)。 输入1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …

10
查找最大列中的每个数字
这对您来说是一个相对简单的挑战: 给定一个正整数列表: 将它们排列成网格,然后对每一列求和。例如,如果输入为[123, 7, 49, 681],则网格将如下所示: 1 2 3 7 4 9 6 8 1 每列的总和为[18, 19, 4]: 1 2 3 7 4 9 6 8 1 -------- 18 19 4 查找这些总和的最大值,在这种情况下为19,然后 输出与此最大列在同一索引处的每个数字。在这种情况下, 2 9 8 您不必以任何特定顺序输出这些数字。请注意,即使我们有4个输入,也只有3个输出。如果是平局,请选择最早的索引。例如,如果输入为[25, 223, 302],则您的网格为: 2 5 2 2 3 3 0 2 ------- 7 7 …
14 code-golf  math  grid 

9
代码高尔夫ABC:ASCII Box挑战赛
给定两个正整数'a'和'b',输出一个ascii-art“ box”,它是一个字符宽而b个字符高的字符。例如,使用“ 4”和“ 6”: **** * * * * * * * * **** 简单吧?这是一个转折点:框的边框必须是交替的“ a”和“ b”字符​​。此操作从左上角开始,并以顺时针螺旋线继续。例如,前面的示例4和6应该是 4646 6 4 4 6 6 4 4 6 6464 A和B 可以是两位数字。例如,输入“ 10”和“ 3”应输出以下内容: 1031031031 1 0 3013013013 为了使输出保持相对较小,您不必支持三个或更多数字。同样,由于输入被限制为正数整数,因此“ 0”是无效输入,您不必处理。 这是更多测试用例: Input: (3, 5) Output: 353 5 5 3 3 5 5 353 …

5
确定乔木满意的点集
一个arborally满意点集是2D点集,使得对于可在所述一组作为相对的角通过两个点来形成,该矩形包含或触摸至少一个其它点的任何轴对齐矩形。这是维基百科的等效定义: 如果具有以下属性,则可以说是满足点集要求的点:对于不都位于同一条水平线或垂直线上的任何一对点,都存在第三个点,该点位于前两个点所跨的矩形中(在边界内或边界上)。 下图说明了矩形的形成方式。不能任意满足此点集,因为此矩形还需要再包含至少一个点。 在ASCII技术中,此点集可以表示为: ...... ....O. ...... .O.... ...... 稍作修改就可以使它满足: ...... ....O. ...... .O..O. ...... 在上方,您可以看到所有矩形(其中只有一个)至少包含三个点。 这是乔木满足的更复杂点集的另一个示例: 对于可以跨越两个点绘制的任何矩形,该矩形至少包含一个其他点。 挑战 给定的点的矩形网格(其余与代表O)和空的空间(我所代表与.),输出一个truthy值,如果它是arborally满足,或falsey值,如果它不是。这是代码高尔夫球。 附加规则: 您可以选择使用这些字符,O并.与任何其他可打印的ASCII字符对互换。只需指定程序使用哪个字符映射即可。 网格将始终为矩形。尾随换行符是允许的。 更多例子 乔装满意: .OOO. OO... .O.OO .O..O ....O ..O.. OOOO. ...O. .O.O. ...OO O.O. ..O. OOOO .O.O OO.. ... ... ... ... ..O ... O..... O.O..O .....O OOO.OO …

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.