Questions tagged «hexagonal-grid»

对于涉及六角形网格上的数据的挑战。将此标签也用于三角形网格,即六角形网格的对偶(即,六角形网格的顶点形成三角形网格的面,反之亦然)。

9
Hexplosive ASCII艺术挑战
在策略游戏“ Hexplode”中,玩家轮流将令牌放置在六角形板上。一旦令牌的数量等于相邻图块的数量,该图块h就会爆炸,并将其上的所有tokes移至周围的邻居。您可以在此处在线玩游戏。 我喜欢这个游戏,但有时很难确切知道在特定图块上有多少令牌。我一直在计算邻居的数量。如果我有ASCII艺术来帮助我记住每个图块上有多少令牌,那将真的很方便。 您需要编写一个程序或函数,将正整数作为输入,并生成大小为N的六边形的ASCII表示形式。每个图块将是该图块具有的邻居数。由于1是一个奇怪的极端情况,邻居数为零,因此您只需要处理大于1的输入。 您可以采用任何合理的格式(例如STDIN,函数参数,命令行参数,来自文件等)的数字。输出也可以采用任何合理的格式,例如打印至STDOUT,写入文件,返回字符串列表,换行符分隔的字符串等。 这是前5个输入的一些示例输出: 2) 3 3 3 6 3 3 3 3) 3 4 3 4 6 6 4 3 6 6 6 3 4 6 6 4 3 4 3 4) 3 4 4 3 4 6 6 6 4 4 6 6 6 6 4 …

22
建立字母金字塔
今天,我们要用字母建造一座金字塔!这是前5个字母的示例字母金字塔: 在前5个字母之间写下一个空格,先升后降。 A B C D E D C B A 对上面一行的前四个字母执行相同的操作,但是要有两个额外的前导空格: A B C D C B A A B C D E D C B A 重复相同的步骤,直到最后一行只是'A' A A B A A B C B A A B C D C B A A B C D E …


3
蜂箱的奇特生活
研究人员最近发现了一个有趣的蜂群,它生活在无限的蜂窝区域中: 每个牢房可以容纳一只蜜蜂或不能容纳一只蜜蜂。实际上,这些生物的生活似乎有点……混乱。可以计算出一个殖民地总是以以下模式开头: (蜂绘制由 灵光布泰 上维基共享资源。这个蜂窝和蜜蜂图像从而被下发布的 CC-BY-SA。 牢骚) 之后,蜜蜂的生命周期分为几代。每一代老蜜蜂死亡而新的蜜蜂孵化,这主要取决于它们细胞的邻居: 如果一只蜜蜂的邻居少于两个,它会因孤独而死亡。 如果一只蜜蜂有三个以上的邻居,则会因拥挤而死亡。 如果一个小区在相邻小区中有两只,三只或四只活蜂,那么下一代会在那里孵化出一只新蜜蜂。 垂死的蜜蜂直到世代末期才死亡,因此它们仍会影响可能会孵化下一代的周围细胞。 现在我们知道了这样一个殖民地的工作方式,我们可以通过任何数量的世代对其进行模拟。 输入项 输入是标准输入给定的单个数字N,以换行符终止。0≤ Ñ ≤150。这是代模拟的数量。 输出量 输出是单个数字,在标准输出上,并且可以选择跟在一个换行符之后,该换行符表示N 代后的活蜂数量。 标准错误的附加输出将被忽略。 样本输入 0 5 42 100 样本输出 6 44 1029 5296 获奖条件 最短的代码胜出,这是高尔夫界的惯例。如果出现平局,则以较早的解决方案为准。 测试用例 有两个测试脚本,包含相同的测试用例: 重击 电源外壳 在这两种情况下都调用:<test script> <my program> [arguments]例如./test ruby beehive.rb或./test.ps1 ./beehive.exe。 我知道只有22个测试,而不是151个(主要是因为解决方案通常很慢)。请避免嵌入确切的测试用例,而不是解决任务。这些脚本可以方便您测试更改是否仍导致程序正常运行。不是您可以使代码适应特定的测试用例。 另一个注意 该任务是2011-W24期间在我的大学举行的高尔夫比赛的一部分。参赛者的成绩和语言如下: 336 – …

4
嵌入式六边形!
您的任务:给定一个整数n,按照以下规则生成一个嵌入的六角形图案,直到第n个深度。 嵌入的六边形具有以下基本形状:(n=0) __ / \ \__/ 嵌入式六边形n=1和n=2: ____ / \ \ /\__/ \ \ / \____/ ________ / \ \ \ /\__/ \ \ /\ / \ / \____/ \ \ / \ / \ / \________/ 每侧的长度是先前深度中同一侧的长度的2倍乘以2。顶部和底部的长度为2个字符n=0,其余部分以1个字符的长度开头。非上下边的长度应2^n较长(OEIS:A000079),上下边应遵循规则2^(n+1)(相同的OEIS)。 当前的六边形是0索引的,如果需要,您可以选择使用1索引。 这是代码高尔夫球,所以最短的答案会成功!

15
g o l f a t 2
有时将笛卡尔坐标转换(x,y)为极坐标确实很费力(r,phi)。虽然你可以计算r = sqrt(x^2+y^2)很容易,你经常计算时的角度需要的情况下有些区别phi,因为arcsin,arccos以及arctan和所有其他三角函数有一个共同域,每个只有跨越半个圆。 在许多语言中,都有用于将直角坐标转换为极坐标的内置atan2函数,或者至少具有给定的(x,y)计算角度的函数phi。 任务 你的任务是写一个程序/功能采用两个(浮点,但不能同时为零)笛卡尔坐标(x,y),并输出对应的极角phi,其中phi必须处于度,弧度或等级(与等级余平均gradians其是1 /整圆的400),以您较方便的为准。 角度是在正方向上测量的,对于,我们有零角度(1,0)。 细节 您不得使用内置插件是计算角度phi给出两个坐标,其中包括atan2,rect2polar,argOfComplexNumber和类似的功能。但是,您可以使用通常的三角函数及其反函数,它们只需一个参数。任何单位符号都是可选的。 半径r必须为非负数,并且phi必须在范围内[-360°, 360°](无论输出270°还是,都无关紧要-90°)。 例子 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

2
三角网格上的对齐
六边形网格最近已成为应对二维数据挑战的一种相当流行的方法。但是,到目前为止,似乎同样忽略了同样有趣的三角形网格。我想通过一个非常简单的挑战来纠正这一问题。 首先,我们如何表示三角形网格?考虑以下示例(暂时忽略正确的图表): 单元整齐地落在常规网格上(与常规网格的区别仅在于哪些单元被视为相邻单元): 1234567 89abcde fghijkl mnopqrs 现在,如右图所示,三角形网格具有三个主轴:水平轴和两个对角轴。 在ASCII网格中突出显示这些内容: AVAVAVA VAabcAV fVAiAVl mnVAVrs 挑战 您将获得一个代表三角形网格的矩形字符串(其中左上角是一个向上的三角形)。大部分带有be的单元格.,但只有两个单元格是#,例如: ....# .#... ..... 确定两者#是否沿网格的三个轴中的任何一个对齐(即,它们是否沿上面突出显示的三个方向中的任何一个方向位于一行上)。对于此示例,答案为“否”。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入可以是由换行符或其他方便字符分隔的单个字符串,也可以是字符串列表。您可以使用任意两个(一致的)可打印ASCII字符代替.和#。 输出应该是一个truthy如果突出显示的细胞对准值和falsy否则值。 适用标准代码高尔夫球规则。 测试用例 真实网格: .#..#. # # ........... ...#....... ........... ........... ........... .......#... ........... ........... .......#... ........... ........... ........... ...#....... ........... .#......... ........... ........... ........... ........... .......#... ........... ........... …

2
在六角形平铺上计数生物
这项挑战将让您在拼贴游戏Palago中计算“生物”。 生物是可以由六边形网格中匹配颜色的Palago瓷砖形成的任何闭合形状。 游戏Palago由如下图块组成: 这些砖可以旋转120∘120∘120^\circ,240∘240∘240^\circ,或者根本不与任何地方放置在六边形网格上。例如,这是一个需要12个图块的(红色)生物。 挑战 挑战的目标是编写一个程序,该程序将整数n作为输入并计算需要n图块的生物数量(包括旋转和反射)。该计划应能处理多达n=10上TIO。这是代码高尔夫球,因此最少的字节获胜。 示例数据 这些值应与创建者网站的“ 创建计数和估算”部分中找到的数据相匹配。即 n | output ---+------- 1 | 0 2 | 0 3 | 1 4 | 0 5 | 1 6 | 1 7 | 2 8 | 2 9 | 9 10 | 13 11 | 37 12 | 81

7
高斯飞往爱森斯坦
给定一个高斯整数,其中,是整数,并且是虚数单位,返回最接近的(爱荷华氏距离的wrt)爱森斯坦整数其中,是整数,。a + b 我a+bia+bi一种aabbbi = 经验(π我/ 2 )i=exp⁡(πi/2)i = \exp\left(\pi i/2\right)ķ + 升ωk+lωk+l\omegaķkk升llω = 经验(2 πi / 3 )= (− 1 + i 3–√)/ 2ω=exp⁡(2πi/3)=(−1+i3)/2\omega = \exp(2\pi i/3) = (-1+i\sqrt{3})/2 背景 很明显,每个高斯整数可以唯一地用,整数表示为。它不是那么明显,但仍然如此:任何艾森斯坦整数能唯一被写为与,整数。它们都形成复数内的 -模数,并且分别是或的第p个环原子整数。注意a + b 我a+bia+bi一种aabbbķ + 升ωk+lωk+l\omegaķkk升llZZ\mathbb{Z}p=2p=2p=23333+2i≠3+2ω3+2i≠3+2ω3+2i \neq 3+2\omega 资料来源:commons.wikimedia.org 细节 如果给定的复数具有两个或三个最接近的点,则可以返回任何一个。 复数以直角坐标(bass)给出,但不是以任何方便的格式(例如或或类似形式)给出。(1,i)(1,i)(1,i)(A,B)A+BiA+B*1j 爱森斯坦整数必须作为基数坐标返回但不是以任何方便的格式(如or 或etc)返回。(1,ω)(1,ω)(1,\omega)(K,L)K+LωK+L*1ω 例子 所有实整数显然应该再次映射到实整数。 6,14 -> …

30
消失的元素
给定一个字符串S和一个索引列表X,S通过删除每个索引处的元素来进行修改,并将S结果作为的新值S。 例如,给定S = 'codegolf'和X = [1, 4, 4, 0, 2], 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

10
魔术六角
正如James Grime博士所解释的,有很多魔术方块,但是只有一个非平凡的魔术六角形,如下所示: 18 17 3 11 1 7 19 9 6 5 2 16 14 8 4 12 15 13 10 正如在Hexagony中所做的那样,只需逐行阅读,最容易写成一行: 18 17 3 11 1 7 19 9 6 5 2 16 14 8 4 12 15 13 10 如果计算旋转和反射,当然总共有十二个这种六边形的此类列表表示形式。例如,上述六边形的顺时针旋转1/6将导致 9 11 18 14 6 1 17 15 …

9
不对称KOTH:抓住猫(捕手的线)
不对称的KOTH:捉住猫 更新: 由于Controller.java没有捕获到异常(仅错误),因此更新了主要文件(包括新的次要任务)。现在,它确实可以捕获错误和异常并打印它们。 这个挑战包括两个线程,这是捕手线程,猫线程可以在这里找到。 控制器可在此处下载。 这是不对称的KOTH:每个提交物都是猫还是捕手。每对猫和捕手之间都有游戏。猫和捕手的排名各不相同。 捕手 六角形网格上有一只猫。您的任务是尽快捕获它。每转一圈,您都可以在一个网格单元上放置一个水桶,以防止猫能够去那里。但是猫不是(也许)那么笨,每当您放置一个桶时,猫就会移动到另一个网格。由于网格是六角形的,因此猫可以向6个不同的方向移动。您的目标是用水桶包围猫,速度越快越好。 猫 您知道捕手想通过在您周围放水桶来接住您。当然,您会尝试逃避,但是由于您是一只懒惰的猫(就像猫一样),您当时确实迈出了一步。这意味着您不能待在同一个地方,而是必须移至周围的六个景点之一。每当您看到捕手放了一个新的水桶时,您就会转到另一个牢房。当然,您会尽力逃避。 格网 网格是六边形的,但是由于我们没有六边形的数据结构,因此我们采用一个11 x 11二维二维数组,并模仿该六边形的“行为”,即猫只能在6个方向上移动: 拓扑是环形的,这意味着如果您踩到阵列“外部”的单元格,您将被转移到阵列另一侧的相应单元格。 游戏 猫从网格中的给定位置开始。捕手可以先走,然后猫及其捕手交替走动,直到猫被抓到为止。步骤数是该游戏的分数。猫试图获得尽可能高的分数,捕手试图获得尽可能低的分数。您参与的所有游戏的平均总和就是您提交的分数。有两个单独的等级,一个用于猫,一个用于捕手。 控制者 给定的控制器是用Java编写的。作为捕手或猫,您每个人都必须完成一个Java类(已经有一些原始示例)并将其放在players包中(并更新Controller类中的猫/捕手列表),但是您也可以编写该类中的其他功能。控制器附带了简单的cat / catcher类的每两个工作示例。 该字段是一个11 x 11二维int数组,用于存储单元格当前状态的值。如果一个单元格为空,则它具有值0;如果有一只猫,则它具有值-1;如果有一个存储桶,则有一个值1。 您可以使用一些给定的功能:isValidMove()/ isValidPosition()用于检查您的移动(类别)/位置(类别)是否有效。 每次轮到您时,takeTurn()都会调用您的函数。参数包含当前网格的副本,并具有类似于read(i,j)读取处的单元格的方法(i,j),以及isValidMove()/ isValidPosition()检查答案是否正确的方法。这也可以管理环形拓扑的环绕,这意味着即使网格只有11 x 11,您仍然可以访问单元格(-5,13)。 该方法应返回一个int包含两个元素的数组,这些元素代表可能的移动。对于猫来说,{-1,1},{0,1},{-1,0},{1,0},{0,-1},{1,-1}它们代表了猫想去的位置的相对位置,而捕手则返回了他们想要放水桶的位置的绝对坐标{i,j}。 如果您的方法产生无效举动,则您的提交将被取消资格。如果在您的目的地已经是一个铲斗或不允许该举动/目的地已被占用(作为猫),或者如果已经有一个铲斗/猫(作为捕手),则该举动被视为无效。您可以使用给定的功能事先检查一下。 您的提交应该工作得相当快。如果您的方法每个步骤花费的时间超过200毫秒,则也将被取消比赛资格。(最好少得多...) 程序可以在步骤之间存储信息。 意见书 您可以根据需要进行任意数量的提交。 请不要显着改变您已经提交的提交。 请每个提交一个新的答案。 每个提交最好都具有唯一的名称。 提交内容应包括您班级的代码以及可以告诉我们您提交内容如何工作的描述。 您可以在<!-- language: lang-java -->源代码前写一行,以自动突出显示语法。 计分 所有猫都将与所有捕手竞争相同的次数。我将尝试经常更新当前分数,当活动减少时将确定获胜者。 这项古老的Flash游戏启发了这一挑战 感谢@PhiNotPi进行测试并提供一些建设性的反馈。 当前分数(每对100场比赛) Name …

6
为我的骑士动作而努力
六角象棋描述了在棋盘上玩的一系列象棋变体,其中棋盘格是六边形而不是传统的正方形。有许多这样的变体。在这一挑战中,我们将重点介绍最常见的格林斯基(Gliński)的变体。 棋盘由三种颜色组成(因此相同的颜色不会共享边缘),六边形的边缘面向玩家。板具有11个文件,用字母标记的a通过l(字母j不使用),和11列(其弯曲60°在文件f)。等级1通过6每个包含11个单元格,等级7具有9个单元格,等级8具有7个,依此类推。排名仅11包含一个单元格:f11。(如果有帮助,可以将每个等级视为一个非常宽的“ V”形。) 这是板子的示例图片,骑士位于中央单元上。标有点的单元格是该特定骑士的合法举动。骑士以与“普通”国际象棋类似的方式移动,两下一下。用六角象棋术语来说,这是正交移动(越过一条边),然后是沿相同方向的对角线移动(最接近相同颜色的移动)。例如,对于下面的骑士,然后“向上”移动到浅棕色,然后进行对角线移动“向上和向右”或“向上和向左”移动到最近的浅棕色。 通过https://commons.wikimedia.org/wiki/File:Glinski_Chess_Knight.svg在公共领域中 这位骑士位于f6,因此合法移动 c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5 输入值 一个输入,给出了我们骑士的起始格。它可以是任何方便的格式,既可以是单个字符串"b6",也可以是两个字符串"b", "6"等。输入字母可以是大写或小写-您可以选择。 输出量 骑士可以在该位置进行的有效移动的列表。这可以是字符串数组,具有明确且一致的定界符的单个字符串,由换行符分隔的字符串等,以最方便的方式进行。输出不一定要按排序顺序,可以是大写或小写-您可以选择。 规则 假设板上没有其他物件或干扰移动。我们只关注骑士。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码! 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 例子 b6 a3, c4, d5, d9, e7, e8 f6 c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5 …

2
得分游戏《王国建设者》
我想在这里尝试一种新的代码高尔夫形式。与奖金类似,并非必须完成挑战的所有部分,但每个答案都必须实现一定规模的子集(并且每个答案都必须实现一个核心)。因此,除了打高尔夫球之外,这项挑战还涉及选择一套可以完美搭配的功能。 规则 Kingdom Builder是一种棋盘游戏,在(尖顶)十六进制网格上播放。该评估板由四个(随机的)象限组成,每个象限具有10x10的十六进制单元(因此完整的评估板将为20x20)。出于此挑战的目的,每个十六进制单元格包含水(W),山(M),城镇(T),城堡(C)或为空(.)。所以象限看起来像 . . W . . . . . . . . M W W . . . . . . . M . . W . . . T . M M . W . . . . . . . . M . W W …

1
卡坦定居者-最长之路!
这是卡坦定居者的残局: 背景: 道路(长棍棒)和居民点(和城市)由小木屋组成。我们使用以下方案对这些片段的放置进行编码:从顶部开始,我们有一排水平顶点和一条可以放置道路的边。然后,我们只有一列道路,依此类推。使用R代表红色,O代表橙色,B代表蓝色,_代表无,图板将被编码为: ________RR_R_ __R_ __RR_R_RRR_____R_ B___R _B_________B__OO_OOR_ B__B_R BB_BBB_____B____RR_R_ OBB_O OO__BB_BB__OOO_OO O_O_ _O_OOO_O_____ 这样的板将作为您的输入字符串。任何字母都[A-Z]可以指示玩家的颜色,但是最多可以有四种颜色(包括空白)。否则,根据定居者规则,保证董事会有效,这意味着: 每种颜色最多具有两个连续的道路网络,这些道路网络可能会或可能不会被其他玩家居住区/城市(顶点建筑物)分开。看到橙色沉淀物将样品图像右侧的红色道路分开。 保证每个路网至少有一个居民点。 保证所有定居点和城市与最近的其他定居点/城市(您或其他人)至少有两个边缘 一位玩家在游戏板上可能只有15条道路。 对于Catan爱好者:出于此问题的目的,在定居点和城市之间没有区别,因此我在输入字符串中没有区别。 所有这些都是为了指定“输入”字符串。 最长的路: 在定居者中,玩家拥有“最长的道路”可获得两个胜利点。定义为:从起点到终点的最长连续单路径(以道路为单位),不会被对手的定居点或城市分解。只要您可以跟踪从一个特定起点到一个特定终点的路径,循环就可以了。因此,一条6条道路的环路加上一条分支的道路的长度为7,但是一条在两条道路上相对的6条道路分支的两条分支的长度仍为7。 在示例地图中,右侧的红色道路仅价值4,因为板子右侧的橙色解决方案将他切断了(这就是为什么完全包括解决方案的原因)。蓝色的道路长度为13,橙色的道路长度为12。红色的最高道路仅价值7,因为它没有连接到其旁边的两条道路。 输出: 道路最长的所有玩家(如果有平局,则可能会超过一条),然后以空格和/或下划线划定距离(以10为底)。 因此,示例板的输出为: B 13 问题陈述: 您可以编写程序或函数,通过STDIN或作为函数的字符串参数接收输入板,然后将上述输出作为字符串返回或将其打印到STDOUT(或最接近的输出)。您可以选择在输出中包含单个尾随换行符。 这是代码高尔夫球,最短的程序获胜。当然,标准漏洞是被禁止的。

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.