Questions tagged «javascript»

这个挑战与JavaScript语言有关。请注意,通常不建议要求答案使用特定语言的挑战。

26
制作平方字
挑战 您的任务是创建一个程序,该程序接受任何给定的字符串输入,并以平方格式输出输入。空字符串应返回一个空字符串。 例子 给定输入: golf 您的程序应输出: golf o l l o flog 输入: 123 输出: 123 2 2 321 输入: a 输出: a 输入: Hello, world! 输出(注意,和之间的空格-间隙不只是换行符): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

3
解决魔方
编写最短的程序,以在合理的时间范围内移动并解决Rubik的多维数据集(3 * 3 * 3)(例如,在您的计算机上最多5秒,而最多移动1000秒)。 输入的格式为: UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (此特定输入表示已解决的多维数据集)。 前12个2个字符的字符串是UF,UR,... BL位置中的边(U =上,F =前,R =右,B =后,L =左,D =下),然后是下8个3个字符的字符串是UFR,URB,... DBR位置中的角。 输出应以这种格式给出一系列移动: D+ L2 U+ F+ D+ L+ D+ F+ U- F+ 其中D1或D +代表将D(下)面顺时针旋转90度,L2代表将L面旋转180度,U3或U-代表将U面逆时针旋转90度。 字母不区分大小写,空格是可选的。 …

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] …

28
计算超级对数
这应该是一个简单的挑战。 给定一个数字n >= 0,输出的超级对数(或log *,log-star或迭代对数,它们是等效的,因为n对于该挑战永远不会为负。)n。 这是四官能的两个反函数之一。另一个是超级根,这是一个相关的问题。 例子 Input Output 0 0 1 0 2 1 3 2 4 2 ... 15 2 16 3 ... 3814279 3 3814280 4 规则 您可能不需要支持小数。 您需要至少支持输入3814280 = ceiling(e^e^e)。 您可能不对值进行硬编码3814280。(理论上,您的程序必须支持更高的数字。)我希望实现一种算法。 最短的代码胜出。 相关OEIS
29 code-golf  math  code-golf  array-manipulation  sorting  code-golf  math  arithmetic  matrix  code-golf  string  kolmogorov-complexity  code-golf  string  code-golf  math  sequence  arithmetic  recursion  code-golf  math  ascii-art  sequence  code-golf  math  array-manipulation  code-golf  code-golf  kolmogorov-complexity  code-golf  string  code-golf  string  decision-problem  code-golf  array-manipulation  tips  javascript  json  code-golf  math  string  number  number-theory  code-golf  math  sequence  fibonacci  number  arithmetic  fastest-code  integer  code-golf  math  sequence  code-golf  string  file-system  tips  golfscript  code-golf  string  code-golf  string  natural-language  code-golf  string  file-system  code-golf  math  array-manipulation  code-challenge  image-processing  compression  code-golf  math  number  sequence  code-golf  math  combinatorics  regular-expression  code-golf  sequence  pi  code-golf  ascii-art  code-golf  string  array-manipulation  sorting  code-golf  string  graph-theory  code-golf  string  code-golf  string  ascii-art  code-challenge  compression  code-golf  code-golf  math  sequence  number-theory  code-golf  maze  graph-theory  code-golf  math  sequence 

11
使StackOverflow爆炸(书签)[关闭]
有时,人们对StackExchange网络感到沮丧(尤其是SO)。 您的任务是创建一个书签,使StackOverflow以某种方式爆炸/爆炸/破坏。这将提供更好的分散挫败感的方法。 规则: 它必须是小书签的形式 必须在Chrome和Firefox中运行(最新稳定版本) jQuery在该站点上,因此您可以使用它 没有创建拉爆炸explistitThisPage.js或类似的脚本标签 评分是需要复制和粘贴的字符数,除了: -1,如果您包含说明 每次投票-5 -10(如果您不使用jQuery) -10如果发出爆炸声 + 9e72如果确实对站点造成伤害(F5应该修复损坏) 如果gif令人分心,请将其删除。

6
希尔团队!
这项挑战的灵感来自@HelkaHomba出色的挑战,即Red vs. Blue-Pixel Team Battlebots。这一挑战可能是我在本网站上看到的最好的挑战。曾经 我的挑战仍然很大,但是@HelkaHomba的灵感值得称赞。 总览 这是一个团队之王,您的团队通过让所有玩家都存活在团队中而获胜。换句话说,最后一支球队获胜。抽奖将被重做。 您在董事会上。您知道自己在第一轮的位置(打勾0)。您还知道周围的人是谁: 在这种情况下,您一个人(或者您认为)独自一人,周围没有人。您可以在ontick处理程序的第一个参数中看到周围的项目。稍后会更多有关API的信息。 你的团队 您的团队由您的用户ID决定。要找出答案,请单击您的个人资料图片: 然后在地址栏中找到您的用户ID: 如果很奇怪,那么您就是蓝队。 如果是偶数,则说明您是红色团队。 手绘圈欢迎您。 您(机器人的)名字 您的漫游器名称以团队的第一个字母(“ r”或“ b”)开头。它必须匹配正则表达式/^(r|b)[A-Za-z_-]$/。除此之外,您还可以选择机器人的名称。请不要使用已经存在的一个。 开始 红色玩家将从地图顶部附近开始,蓝色玩家将从底部附近开始。environment在ontick函数的参数的第一个刻度(转弯)上会给您特殊信息。我建议将其存储。有关详细信息,请参见API。 轮到你了 回合顺序最初是随机的,但随后保持不变。 转身动作 您每回合只能做一个动作。 移动 当您想移动时,可以调用this.move(num)API。num您想移至的单元格: 可以移动到的数字的相对位置存储在全局常量中threeByThree: [ [0, 1, 2], [3, undefined, 4], [5, 6, 7] ] 如果您进入墙壁或其他播放器,则什么也不会发生。 旋转 要旋转,请致电this.rotate(num)。Num是您要旋转的方向: 旋转是绝对的。 杀 如果您所面对的牢房中有另一个玩家(来自另一个团队),则可以呼叫this.kill()并杀死他们。如果那里没有人,或者他们在您的团队中,则无济于事。例: 如果转到0,您可以杀死绿色。如果将其设置为1,则可以杀死蓝色。如果转到2,则可以杀死橙色。如果转到3,则可以杀死黄色。 炸弹 爆炸会杀死您周围9个方格中的所有玩家,包括您和队友。例: 您为什么要这样做? …

8
KOTH:每个人都喜欢代币
在这个游戏中,两个玩家争夺吃掉最多积分的代币,但是有一个转折!连续吃多个相同颜色的代币会带来越来越多的奖励,但是要当心,否则您的对手会通过吃掉您想要的代币来破坏您的计划! 规则: 1对1 n x n板(随机大小在5x5和15x15之间) 您和您的对手将在同一个随机细胞中产生 整个棋盘将在某些单元格中随机生成数字,范围从1-3 将生成2 *(板的宽度)令牌,但可以覆盖,因此可能会更少。 每个数字都是十六进制RGB格式的三种颜色之一:红色,绿色或蓝色 每回合,玩家1移动并更新棋盘,然后玩家2移动并更新棋盘。因此,每个玩家都可以根据棋盘状态的变化有效地判断前一个玩家的动作。这将一直持续到游戏结束为止,如下所述。 您有6个可能的转弯动作:上,右,下,左,进食和通过 4个移动命令是不言自明的,您可以转弯。如果您退回无意义的举动,我们将假设您的意思是通过。如果您尝试移开电路板的边缘,则不会移动。边缘不包裹。 EAT消耗您当前所在位置与 您获得的积分与您消费的积分一样多 如果您连续吃两个相同颜色的数字,您将获得+1 如果您连续吃3个相同颜色的数字,则得到+2 如果您连续吃相同颜色的m个数字,则得到+(m-1) 这些奖金是累加的,因此在您吃另一种颜色时,连续获得m个数字将导致m *(m-1)/ 2。 游戏结束条件: 所有数字都被消耗掉 任一位玩家(没有任何代币都可以2 *(宽度)到达)进行4 *(棋盘的宽度)转弯而没有有效吃掉(只是说“ EAT”,没有你要的标记没有计数)移动,因此只有在两个玩家都没有单个目标标记的情况下,才会超过此界限) 您的AI只需不到一秒钟的时间就可以采取行动,否则将通过PASS作为您的选择。 锦标赛将是轮巡赛,有很多回合,例如100或1000。将生成一个随机棋盘,并且该棋盘上将运行每个有序对的不同玩家。比赛结束后,我们将按总得分对人员进行排名。因此,即使您是一场比赛的玩家2,您的目标仍然是获得尽可能多的积分。 AI提交:我的控制器支持的语言是Javascript。允许多次提交。每个人都为这样的对象提交构造函数: function (player1) { this.yourMove = function (b) { return "MOVE"; } } 输入的内容player1是布尔值,表示您是否是玩家1。您的构造函数必须具有该yourMove函数,但也可以具有任意数量的其他函数或值。不要定义任何全局变量,只需将它们作为变量放在对象上即可。每次比赛开始时都会创建一个新版本的对象,并yourMove在每次旋转时以当前棋盘为输入在其上调用该对象的新版本 ,并应返回有效的移动。 b,是的输入yourMove,是当前电路板的副本,以下是构造函数以及输入示例,尽管您不能自己调用​​它们: function token(color, points) { …

15
半回文之谜
回文是一个本身相反的词。 现在有些单词看起来像回文,但看起来却不然。例如,考虑单词 sheesh, sheesh不是回文,因为它的反向是hseehs不同的,但是如果我们认为sh是单个字母,那么它的反向是sheesh。我们将这种词称为半回文。 具体来说,如果我们可以将单词拆分成一定数量的块,则该单词为半回文,这样当块的顺序颠倒时,便形成了原始单词。(因为sheesh这些块是sh e e sh),我们也将不要求任何块包含两个单词的字母(否则每个单词都是半回文)。例如rear,不是半回文,因为它r ea r具有一个块(ea),其中包含来自原始单词两边的字母。我们认为奇数长度的单词的中心字符不在单词的两侧,因此对于奇数长度的单词,中心字符必须始终位于其自己的块中。 您的任务是获取正整数列表,并确定它们是否为半回文。您的代码应输出两个一致的不相等值,如果输入是半回文,则应输出一个,否则将输出另一个。但是,代码的字节序列本身必须是半回文。 答案将以字节计分,而字节数越少越好。 测试用例 [] -> True [1] -> True [2,1,2] -> True [3,4,2,2,3,4] -> True [3,5,1,3,5] -> True [1,2,3,1] -> False [1,2,3,3,4,1] -> False [11,44,1,1] -> False [1,3,2,4,1,2,3] -> False 程序生成更多的测试用例。 borrible指出,这些与广义Smarandache回文相似。因此,如果您想做进一步的阅读,那是一个开始的地方。

1
是否可以使钳位函数比JS中的三元函数短?
想象一下这个短函数将一个数字钳位在0到255之间: c = n => n > 0 ? n < 255 ? n : 255 : 0 这是使用JavaScript(没有ES.Next功能)的钳位函数的最短版本吗? PS:不确定是否相关,但是0和255不是随机的,其想法是将数字钳位为8位无符号整数。

23
ASCII艺术八边形
给定输入整数n > 1,输出边长由n字符组成的ASCII八角形。请参阅以下示例: n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

24
ogl-edocf挑战
输入项 一个非空的字符串,由范围内的ASCII字符组成。[ 32..126 ][32..126][32..126] 输出量 通过对输入字符串进行连续旋转来获得输出。 对于[a-zA-Z]输入字符串中的每个字母(),从左到右: 如果字母是大写字母,请将其前面的所有字符向左旋转一个位置 如果字母是小写字母,请将其前面的所有字符向右旋转一个位置 例 输入:“ Cb-Ad” 第一个字母是“ C ”。我们应该向左旋转,但是这个“ C ” 之前没有字符。因此,没有任何旋转。 下一个字母是“ b ”。我们向右旋转“ C ”。因为它是单个字符,所以它保持不变。 字符“ - ”不会触发任何旋转,因为它不是字母。 下一个字母是“ A ”。我们轮流“ CB- ”到左边,这给“ 公元前广告” 第四个也是最后一个字母是“ d ”。我们向右旋转“ b-CA ”,即为“ Ab-C d” 因此,预期输出为“ Ab-Cd ”。 规则 您可以将输入作为字符串或字符数组进行输入-根据您的语言,输入内容可能相同也可能不同。 您也可以输出字符数组而不是字符串。 这是ogl-edocf 代码高尔夫 测试用例 "cbad" -> …
22 code-golf  string  code-golf  string  code-golf  string  parsing  brainfuck  code-challenge  python  hello-world  error-message  code-golf  string  code-golf  number  integer  counting  subsequence  code-golf  string  cipher  code-golf  array-manipulation  arithmetic  integer  matrix  code-golf  math  sequence  code-golf  restricted-source  pi  popularity-contest  cops-and-robbers  polyglot  popularity-contest  cops-and-robbers  polyglot  code-golf  file-system  king-of-the-hill  code-golf  number  sequence  integer  rational-numbers  string  code-challenge  source-layout  code-golf  ascii-art  king-of-the-hill  code-golf  array-manipulation  sorting  code-golf  string  code-golf  restricted-source  source-layout  tips  math  code-challenge  permutations  logic-gates  code-golf  number  random  integer  code-golf  math  code-golf  math  number  decision-problem  king-of-the-hill  python  board-game  code-challenge  brainfuck  busy-beaver  code-golf  number  cops-and-robbers  polyglot  obfuscation  answer-chaining  code-golf  number  integer  conversion  code-golf  string  parsing  code-golf  ascii-art  number  king-of-the-hill  javascript  code-golf  source-layout  radiation-hardening  code-golf  array-manipulation  matrix  code-golf  string  graph-theory  code-golf  array-manipulation  decision-problem  code-golf  string  ascii-art  code-golf  string  code-golf  array-manipulation 

30
获取一个具有不同数字的随机n位数字,第一个不是0
我读了这个问题,并认为这将是一个不错的挑战。 任务 给一个输入0<n<10生成一个随机数 正好n位数字 第一个不是 0 所以 f(n)>10**(n-1)-1 不同的数字 获奖标准 这是代码高尔夫球,因此最短的代码获胜。 随机 我的意思是随机分布均匀。因此,从程序的角度来看,每个可能的数字都有相同的机会。如果您使用的语言具有一个奇怪的随机数生成器,则可以使用该生成器。 例 要从中随机选择的值的列表n=2是: [10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, …
22 code-golf  number  random  grid  game  king-of-the-hill  javascript  code-golf  arithmetic  statistics  code-golf  math  code-golf  math  code-golf  string  palindrome  code-golf  string  interactive  code-golf  quine  polyglot  code-golf  string  stack-exchange-api  code-golf  number-theory  decision-problem  code-golf  tips  code-golf  string  internet  code-golf  graphical-output  image-processing  fractal  code-golf  ascii-art  geometry  hexagonal-grid  code-golf  string  restricted-source  hello-world  code-golf  game  code-golf  cipher  code-golf  permutations  cops-and-robbers  permutations  cops-and-robbers  code-golf  internet  stack-exchange-api  code-golf  ascii-art  random  code-golf  tips  code-golf  ascii-art  code-golf  code-golf  kolmogorov-complexity  code-golf  string  unicode  code-golf  number  sequence  primes  palindrome  code-golf  game  decision-problem  code-golf  math  geometry  code-golf  graphical-output  interactive  code-golf  set-partitions  code-golf  number  arithmetic  restricted-source  code-golf  decision-problem  python  recursion  code-golf  ascii-art  code-golf  source-layout  code-golf  function  recursion  functional-programming  code-golf  game  combinatorics  permutations  code-golf  string  file-system  code-golf  string  hashing  code-golf  stack-exchange-api  code-golf  string  code-golf  math  number  arithmetic  polyglot 

13
西部最快的枪,挑战山丘之王
这是循环赛中的山丘之王挑战赛。寻找西方最好的枪手是一场战斗! 为了能够参加这场比赛,您需要具备两个职能。第一个设置枪手的属性,第二个设置枪手的主要逻辑功能。 属性功能 function () { var bot = { name: "testBot", numbOfBullets: 7, reloadSpeed: 1, shotsPerTurn: 1, moveSpeed: 2 } return bot } 该属性函数包含5个变量,您需要根据一些规则进行设置(但该变量name可以是任何字符串)。您必须在枪手上总共花费15分,而没有全部花掉15分的枪手不符合资格。属性的工作方式如下: numbOfBullets -定义枪支可容纳多少发子弹。 的初始值和最小值numbOfBullets是1。每增加一个子弹将花费1点,最多花费16个子弹,花费15点。 reloadSpeed -定义您的枪手用完子弹后需要多少回弹才能重新装填枪支。 基本和最大值为4,最小值为1。将此属性减少1将花费2分。 shotsPerTurn -定义您的枪手在一回合内可以射击多少次。 基本值和最小值是1。每增加1,您将得到3分,因此您每轮最多可以有6张射击,花费15点。将这个属性提高到上面numbOfBullets会适得其反,因为您不能发射更多的子弹,而枪支则无法容纳。 moveSpeed -定义您的枪手可以在一转内跑多少个空间。 基本和最小值是1。每增加1,就会花费3点,最多花费6点速度,花费15点。枪手每转一圈可以向左或向右奔跑,以达到最大移动速度。他还可以保持静止不动,这会给他带来奖金(稍后会详细介绍)。 上面的示例函数在子弹上花费6点,在重装速度上花费6点,在移动上花费3点。 主功能 function main(bulletsLeft, yourShots, enemyShots, yourMovement, enemyMovement) { var shots = []; …

20
与对手接触的囚徒困境
在这个挑战中,您将编写一个扮演囚徒困境的机器人。要注意的是:您将无法访问以前的游戏历史。相反,您将可以访问对手本身。在此版本中,如果两个玩家都合作,则他们将获得+2分;如果两个人都缺憾,则将获得+1分;如果一个人合作但一个缺陷,则叛逃者将获得+3分,而另一位则无分。每个提交将与其他每个提交(包括自身)进行10次播放。获胜者是总分最高的作品。 控制器:您应该以以下形式编写一个javascript函数 function submissionName(them) { /* Your code here */ } 控制器使用函数的name属性来显示结果,因此如果它不是这种格式(而是f = x => ...或f = function() { ... }),则将很难看到您的分数,并且您将无法访问自己的函数。 该函数将接受一个参数:them这是对手的函数。然后,它可以调用该函数,以查看将给定某些函数作为输入的对手的反应。根据这些数据,您必须分别返回“ C”或“ D”以进行合作或出现缺陷。 示例(将竞争): function cooperate(them) { return 'C'; } function defect(them) { return 'D'; } function nice(them) { // Do whatever they would do when faced with a …

5
在JavaScript中生成字母
我敢肯定,没有更好的方法可以做到这一点,但认为提出这一要求不会有任何伤害。 我厌倦了打字a='abcdefghijklmnopqrstuvwxyz'。 很酷的语言有Range('a'..'z')或类似 尽可能简短的JS能为我们带来什么? for(i=97,a='';i<123;){a+=String.fromCharCode(i++)} 比字母还长-但可以保证我不会在某个地方搞砸。 我希望有一种讨厌的位移方法可以生成少于50个字符的az。 我搞砸了 i=97;Array(26).map(x=>String.fromChar....i++ 但是到我加入时总是更长一些,然后将array(26)拆分为可用 编辑:我已经把它归结为 [...Array(26)].reduce(a=>a+String.fromCharCode(i++),'',i=97) 60字节

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.