Questions tagged «javascript»

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

8
上升还是下降?
给定山羊的图像,您的程序应该最好尝试识别山羊是否倒置。 例子 这些是输入可能是什么的示例。不是实际的投入 输入: 输出: Downgoat 规格 您的程序最多应为30,000个字节 输入将包含完整的山羊 图片将始终包含山羊 如果山羊倒立,输出Downgoat,否则Upgoat 输入将是您可以将图像作为输入(文件名,图像的base64等)。 要点文件名仅供参考,不要依赖于包含“ Upgoat”或“ Downgoat”的图像名称或其他元数据。 请不要硬编码。这很无聊,我无法完全执行它,但是我可以很好地询问。 测试用例 要点与图像。开头的图像downgoat具有Downgoat输出和图像开始与upgoat有Upgoat输出。 第二批测试用例 确保在所有测试用例上测试图像。这些图像是jpgs。图像大小确实有所不同,但没有说太多。 注意:在接受答案之前,可以添加一些测试用例,以避免使用硬编码的答案并检查程序的总体性能。 正确获得我的头像的奖励积分:P 计分 分数是可以通过以下方式计算的百分比: (number_correct / total) * 100

28
使用堆栈片段使将来的帖子可在线运行
堆栈片段中最近加入PPCG!让人想起JSFiddle,堆栈片段允许直接在帖子中运行HTML,CSS和JavaScript ! 这是一个非常简单的堆栈片段: alert('This is JavaScript') h3 { color: red } /* This is CSS */ <h3>This is HTML</h3> 运行代码段隐藏结果展开摘要 如果支持JavaScript以外的语言,Stack Exchange的此功能对我们非常有用。(可以现场测试挑战的答案,可以动态生成示例输入,等等)。 挑战 这项挑战的目标是使用Stack Snippets和JavaScript为某些编程语言编写解释器。关键是要做出可以轻松复制并在以后的PPCG问题和答案中使用的内容。 或多或少,您需要创建一个具有“运行”按钮和两个文本框的堆栈片段,一个用于代码,一个用于输入。单击运行按钮将在输入上执行代码(以您解释的语言编写)并显示结果(可能在另一个文本框中)。该代码段应类似于cjam.aditsu.net或示例答案。 对于大多数语言,输入和输出分别代表stdin和sdout有意义,并且命令行中可能还有另一个输入框。但是,并非所有语言都具有这种传统的I / O机制。例如,HQ9 +甚至没有输入,因此它的文本框毫无意义。因此,可以自由选择一些自由语言,围绕语言进行设计,而不是遵循此规范。主要要求是您的语言应在堆栈摘录中以该术语的公认含义“可运行”。 笔记 尽管理想,但不需要实现语言的每个功能。诸如读取和写入文件或导入库之类的事情可能是笨拙的或不可能的。专注于使此网站上使用的实用程序最大化的解释器。 将您未编写的“ X语言到JavaScript语言”解释器发布(可以使用归因)是可以的。 Stack Exchange将答案限制为30,000个字符,因此,如果您的解释器可能很长,请相应地计划。 最好使翻译版本尽可能容易地包含在以后的帖子中。例如,在示例答案中,提供了整个代码段的原始Markdown,并提供了放置代码和输入的明显位置。 尽管此问题旨在使口译人员更胜一筹,而不是一个适当的挑战,但它仍然是一场流行竞赛,因此,票数最高的答案将获胜。 当前口译员清单 (按语言名称按字母顺序排序) 光束 Befunge-93 脑干 脑干 CHIQRSX9 + 死鱼 死鱼(仅运行预设代码) 傅里叶 FRACTRAN …

30
在JavaScript中打高尔夫球的技巧
您对使用JavaScript打高尔夫球有哪些一般提示?我正在寻找可以应用于编码高尔夫问题的想法,这些想法至少在某种程度上特定于JavaScript(例如,“删除评论”不是答案)。 注意:另请参阅ECMAScript 6及更高版本中的打高尔夫球技巧

22
红色与蓝色-Pixel Team Battlebots
比赛正式结束。蓝队获胜! 我autoran 2 组的50个战斗和令人惊讶的,蓝为他们赢得了所有100个。从统计数据来看,很明显,PhiNotPi和Sp3000的合作条目是真正的英雄。你们两个干得好!实际上,如果您取消了Blue Team的其他所有成员的资格,Sphibot仍然会打出很好的战斗。一些红队人员正计划拆除Sphibot,但是这种努力似乎正在消失。对不起,红队。 竞赛已正式结束,但这并不意味着您不能再回答,这仅意味着我永远不会再宣布官方获胜者。欢迎两个团队继续提交机器人程序,只是为了好玩。只要以后没有任何输入中断,控制器将保持运行状态并保持运行状态。 这是一场山丘之王的比赛,但是将有两支球队参加比赛,而不是每个人都在互相对抗:红色和蓝色。获胜者只有一个。 您所在的团队取决于您的PPCG用户ID号。要找到此内容,请单击屏幕顶部的头像(您必须登录),然后查看打开的页面的网址。后面的数字users/是您的身份证号: https://codegolf.stackexchange.com/users/[id number]/[display name] 例如,我的PPCG用户ID号是26997: https://codegolf.stackexchange.com/users/26997/calvins-hobbies 请注意,对于不同的Stack Exchange站点,此数字是不同的。 如果您的ID是偶数,则说明您是Red小组的成员。 如果您的ID是一个奇数,那么您就在Blue团队中。 无法更改团队。 您必须与您的团队一起努力,以在某种战场上击败其他团队,在这种情况下,每个用户都在战场的128×128网格上控制其团队颜色的“像素”。像素可以四处移动,与队友进行交流并取出另一个团队的像素。如果任何人都可以创建任意数量的像素,那将一发不可收拾,因此每个用户只能对此问题提交一个答案。 此堆栈代码段(此小提琴 [ 全屏 ] 的缩小版本)是整个比赛的控制器。它会自动读取提交的内容,确保其有效,并在团队之间进行战斗。它随时可以使用JavaScript在浏览器中完成此操作。由于JavaScript是大多数浏览器支持的唯一客户端脚本语言,因此所有提交内容也必须使用JavaScript编写。 function toggleDebug(){debug=$("#debug").is(":checked")}function rnd(e){return Math.floor(Math.random()*e)}function shuffle(e){for(var t,a,r=e.length;r;t=rnd(r),a=e[--r],e[r]=e[t],e[t]=a);return e}function maskedEval(e,t){var a={};for(i in this)a[i]=void 0;for(i in t)t.hasOwnProperty(i)&&(a[i]=t[i]);return new Function("with(this) { "+e+";}").call(a)}function createBattle(e,t,a,r){function n(){var e=rnd(i.length),t=i[e];return i.splice(e,1),t}var l={};l.width=l.height=128,l.totalMoves=2048,l.radius=16,l.msgMaxLength=64,l.timeLimit=15,l.move=0,l.redToMove=a,l.animated=r,l.running=!1,l.over=!1;for(var o=0,i=new Array(l.width*l.height),d=0;d<l.height;d++)for(var s=0;s<l.width;s++)i[o++]={x:s,y:d};l.redTeam=shuffle(e.slice()),l.redMsgs={},l.redKills={};for(var …

30
甲酸功能-小山竞赛的蚁后
观看直播 | 积极答案 | 添加新答案 | 聊天室 | 源代码 | 排行榜 必要时进行新比赛。非常欢迎新玩家和新更新。 不是实际的游戏画面。 每个玩家都从一只蚂蚁开始-一只蚁后,会收集食物。每件食物都可以存放或用来生产工人。工人们还收集食物,带回女王手中。 16个玩家在一个竞技场上比赛。获胜者是女王,她完成了30,000转后,拥有最多的食物。值得注意的是,蚂蚁只能通过更改竞技场正方形的颜色来进行交流,而竞争对手的蚂蚁也可能会改变它们的颜色... 看比赛 这是一场JavaScript竞赛,这意味着您可以通过单击下面的链接在浏览器中实时观看比赛。 单击此处观看正在直播的游戏 非常感谢Helka Homba参加了最初的《山峰大王》大赛,Red vs. Blue-Pixel Team Battlebots和Block Building Bot Flocks,它们提供了托管KotH的网络浏览器的思想,并为该代码提供了很多信息。 也非常感谢Sandbox和Chat中优秀人员的所有反馈和测试。 排行榜 (单击该图像可查看完整的排行榜和联合位置说明-为了节省空间,此处仅显示少数玩家。) 此排行榜是基于球员,因为他们在周日2 次 2018年9月。 屏幕截图 比赛结束时竞技场的一些图像。单击图像查看完整大小。 要了解竞技场中正在发生的事情以及所有这些模式的形成方式,您可以运行游戏并将鼠标悬停在竞技场上以放大并查看工作中的蚂蚁。另请参见答案中引人入胜的解释。 竞技场 竞技场是正方形单元的环形(边缘包裹)网格。它的宽度为2500,高度为1000。所有单元格均从颜色1开始。 最初,精确的0.1%的细胞将包含食物。2500片食物将随机均匀地分散。游戏期间不会引入新食物。 皇后将随机放置在空的单元格上,不能保证它们不会彼此相邻(尽管这不太可能)。 蚂蚁能力 视线:每个蚂蚁都能看到其3 x 3社区中的9个牢房。它不了解该地区以外的任何其他蚂蚁。它可以看到9个单元格(其他蚂蚁和食物)中每个单元格的内容以及每个单元格的颜色。 没有记忆:每只蚂蚁都根据所见即所得做出决定-它不记得上一回合所做的事情,除了以竞技场单元格的颜色外,没有其他存储状态的方法。 没有方向:蚂蚁不知道它在哪里或面对什么方式-它没有北的概念。3 x 3邻域将以随机旋转的方向呈现给它,该定向每转一次都会改变,因此,除非它有颜色来指导它,否则它甚至不能沿直线行走。(每转相同的动作将导致随机走动,而不是直线走动。) 搬家,彩色标记和生产工人:请参见下面的输出。 不朽:这些是不会死亡的高地蚂蚁。您可以通过更改敌对蚂蚁的颜色来迷惑它们,或者通过用自己的8只蚂蚁包围它们来限制它们移动,但是除此之外,它们也不会受到伤害。 …

30
ECMAScript 6及更高版本中的高尔夫技巧
这与其他“ <...>中打高尔夫球的技巧”相似,但专门针对ECMAScript 6及更高版本中JavaScript的新功能。 JavaScript的本身是一个非常冗长的语言,function(){},.forEach(),将字符串数组,类数组对象数组,等等等等都超涨大,而不是健康的高尔夫。 另一方面,ES6 +具有一些超级方便的功能并减少了占地面积。x=>y,[...x]等等只是一些示例。 请发布一些不错的技巧,以帮助减少代码中的少量额外字节。 注意:ES5技巧已在JavaScript打高尔夫球技巧中提供;请参见 该线程的答案应集中于仅在ES6和其他将来的ES版本中可用的技巧。 但是,此线程也适用于当前使用ES5功能打高尔夫球的用户。答案也可能包含一些技巧,以帮助他们理解ES6功能并将其映射到他们的ES5编码风格。

30
从较小的“ H”创建一个“ H”
挑战 创建一个函数或程序,当给定整数时size,该函数或程序将执行以下操作: 如果size等于1,则输出 H H HHH H H 如果size大于1,则输出 X X XXX X X X程序/功能的输出在哪里size - 1 (只要您愿意,0只要您在答案中指定,就可以使基本情况与相对应) 可以使用以下任何一种输出格式,以您更方便的方式: 所需结构的字符串,其中任意两个不同的字符分别对应于H和space 具有所需结构的二维数组,其中任意两个不同的值分别对应于H和space 字符串的数组/列表,每个字符串中有一行输出,并且与H和对应的任意两个不同的值space 只要每行上有恒定数量的前导空格,就可以使用前导空格。两个不同的输出字符可以取决于您选择的任何内容,只要它们不同即可。 指定代码返回的输出格式。 测试用例 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

23
小山之王-太空大战!
如果您曾经玩过《太空大战》!,您知道这是一个有趣的游戏。如果您还没有,那就知道这一点:它曾经是(也是现在)最重要,最重要的计算机游戏之一。而且还是很有趣的!我长大的克隆就是这个克隆,显然,不幸的是,它仅是Windows。所以我重新创建了它! KotH托管在这里:PPCG-太空大战!山丘之王。我鼓励您以人类的身份与至少另一个机器人进行对抗,以了解游戏的工作原理。 游戏 一帧为30毫秒(因此,约为每秒33帧)。 场宽为800像素,高为600像素。 该场是环形的,这意味着从场外移动的飞船和导弹会重新出现在相反的一侧。 有两个宇宙飞船,红色和蓝色。 红色位于x = 50,y随机位于50(场高-50)像素之间。 蓝色位于x =(视场宽度-50),y随机位于50(视场高度-50)像素之间。 双方x =(字段宽度)/ 2。 可用的控件有: 向左转-每帧逆时针旋转5度。 向右转-顺时针每帧5度。 射击导弹-除了舰船的速度外,还沿着舰船指向的方向每帧额外传播10个像素。 消防车-在飞船指向的方向上以每帧0.30像素的速度加速飞船。 超空间跳跃-传送到野外一些随机坐标,爆炸几率25%。这些随机坐标可能在太阳的顶部。 在发动机功率下,舰船的最大速度为每帧15像素,而重力提升时则为每帧40像素。 当行进速度超过每帧15像素时,引擎推力只能改变方向或放慢速度。 关于导弹: 导弹成一直线。 导弹可以每0.1秒发射1次。 导弹的寿命为2.25秒。 每艘船最多装有20枚导弹。 导弹内部是点粒子。 中心处有太阳,这对您的船极为危险。在轻微的接触是致命的。太阳也摧毁了导弹。 太阳有重力。结果加速度为5000 /(距离^ 2)像素/帧^ 2,其中距离以像素为单位。飞船和导弹受到影响。 两艘战舰都有三个打击区:机头,左翼和右翼。 鼻子上的一击就是立即死亡。 任一机翼受到撞击都会使飞船的转弯速度和发动机加速度降低一半。 如果两个机翼都被破坏,飞船将无法机动,只能发射导弹。 船可能会相互碰撞。 鼻鼻碰撞对两艘船都是致命的。 机翼撞击会破坏机翼。 机翼-机翼碰撞会毁坏两个机翼。 死船坚固并冻结,直到1秒后爆炸。 至少一艘船死亡后,该字段将在3秒后重置。在此之前,太阳和任何剩余的导弹仍然很危险。 原始游戏还具有致命且坚不可摧的小行星,但我将不包括它们。 规则 您的漫游器必须使用JavaScript编写。 您的漫游器应将其决定限制在10毫秒左右。如果由于您的漫游器而导致出现持续的滞后现象,我将取消其资格,并通知您,以便您进行修复。 机器人可以访问以下内容: 场宽和场高 …

30
Art Attack KoTH
条目现已关闭。任何新条目或编辑内容将不计入最终运行次数。 加入聊天! 挑战 尝试用尽可能多的油漆填充画布。但是要注意其他可能掩盖您辛苦工作的机器人! 注:在这个挑战说明,涂料是指以改变正方形的颜色对电网和未上漆意味着对电网的广场上有颜色0,而不是归因于任何机器人的。 输入项 您的函数将被赋予四个参数:您自己,网格,所有机器人在网格上的位置以及游戏信息。 我 这是一维数组,表示您在网格上的颜色和位置:[id, xpos, ypos]。 网格的左上角是位置(0, 0)。位置(1,0)在该位置的右侧,位置(0,1)在下方 您的ID是一个与您的颜色同义的整数(请参阅下文,了解您的ID如何影响绘制网格的方式)。您的ID对您的漫游器而言是唯一的。 格网 这是一个2D数组,其中包含整数,告诉您每个单元格是什么颜色。如果网格单元的数目为0,则表示该单元未上漆。如果网格单元的数目是整数x,则表示该单元已被机器人用ID绘制x。 要获取位置的网格颜色(x, y),请使用数组,如下所示:grid[x][y]。 机器人 这是一个数组,其中包含有关机器人位置的信息。bots数组的每个元素都是一个描述每个bot的数组,看起来像:[id, xpos, ypos],其中idbot的ID,是bot xpos的x位置,是bot ypos的y位置。 该数组包括您自己的机器人的位置和ID。被淘汰的漫游器将不包含在此阵列中。 游戏资讯 这是一个包含有关当前游戏信息的数组,如下所示:[roundNum, maxRounds]其中,roundNum是当前回合的编号(1索引),maxRounds是当前游戏的回合数量。 输出量 输出应该是您的函数返回的字符串。这是运动命令。 运动命令确定您的下一个动作。可用的命令是: up down left right wait 每当您移动时,就绘制要移动到的正方形。(请参阅下面的详细信息) 哪里wait意味着你不动。(但您要绘制停留的正方形) 如果尝试移出网格,则命令将被忽略,并且将留在原处。 画网格 每当您移动到正方形时,都需要对其进行绘画,但是有一些规则可以确定该正方形的颜色。 如果正方形未绘制(0),则只需将其绘制为与自己的ID相同的颜色。但是,如果正方形先前已绘制过(非零),则将根据以下JavaScript代码找到正方形的最终颜色: [botColour, 0, floorColour][Math.abs(botColour - floorColour)%3] 制定此公式是为了使机器人能够在不重绘颜色的情况下移动自己的颜色。 消除 如果在第5轮之后您绘制了一个或更少的正方形(网格上与您颜色相同的正方形数),那么您将被淘汰。这意味着您将不再参与游戏,并且会自动输。 …

2
仅5个符号的JSF ** k?
这不是一个挑战,而是一个问题,我认为这是一个话题,因为 与解决编程难题或特定类型的挑战有关的非挑战性问题也在主题中。 现在开始问题: 是否可以仅用5个字母编写任何JavaScript代码?JSFuck已经用6个符号执行此操作,!+[]()但我想知道是否!需要该字符。 JSFuck将强制转换为字符串(通过添加一个空数组),强制转换为数字(通过在前面写一个+)以及通过否定转换为布尔值的组合工作。例如: [] \\ Empty array +[] \\ Cast to number -> 0 !+[] \\ Negate -> true !+[]+[] \\ Cast to string -> "true" 从该字符串中,我们可以使用方括号(其中包含一个数字)提取所有字母,并且可以通过多次将true加在一起来制作任何数字。 像这样,可以找到很多字母,并将它们连接成字符串。能够创建的最重要的字符串是"constructor"因为它可用于Function从任何函数中获取,并且该对象可用于以JavaScript形式执行字符串: []["find"] \\ the function Array.prototype.find []["find"]["constructor"] \\ the Function object []["find"]["constructor"](string)() \\ same as eval(string) 如您所见,!这里有2种用法: 创建数字以从字符串中选择字母。 强制转换为布尔值以获取"true"和"false"。 这2个中的第一个也可以使用++增量器完成,而不是直接在上完成0,但可以在数组内的元素上使用: +[] …

3
您可以在4k数据URI中做什么?[关闭]
赏金结束了,thephpdeveloper赢得了Conway的《人生游戏》 当今的网络平台正在迅速发展。功能,如CSS3动画,转换,阴影和渐变,<canvas>,<audio>和<video>标签,SVG,WebGL的,还有更多的意味着你可以做更多的浏览器,并在更短的代码,比以往任何时候。当然,许多开发人员不会使用这些新功能,因为他们工作的网站和应用程序必须与IE6之类的古老的,受蛀牙困扰的浏览器向后兼容。 那么,如果您取下安全带怎么办?允许自己使用任何喜欢的新功能?活得一点点,发疯,使用怪异的前沿功能,只有1%的用户可以利用? 当然,凭借无限的资源和与服务器进行通信的能力,您可以进行各种处理(加载兆字节的代码,库和视频等),但是没有约束就没有那么有趣的挑战。此竞赛的主要限制是:您可以在一个单独的4k URI中做什么data:?自包含的意味着它不得引用任何外部资源,使用WebSockets或XHR连接到任何服务器或任何种类的东西。如果要嵌入PNG或MP3之类的资源,请随时在数据URI中包含数据URI,或者想出其他一些巧妙的方式来嵌入子资源。4k表示4096个字节,经过URI正确编码的ASCII文本(如果选择,可以使用base64编码的数据URI,以避免URI编码,但对于纯文本,通常URI编码的文本会小于base64)。 为了提供灵感,比赛的主题是StackOverflow memes。创建一个独角兽游戏,Jon Skeet事实生成器,基于徒手绘制的绘图程序,或与流行的StackOverflow和meta.so模因之一有关的任何事情。 我鼓励以某种方式互动的条目;它们不仅应该是简单的动画或静态图像,还应该通过事件,CSS悬停,滚动,浏览器窗口大小调整或您可以想到的任何其他方式来响应用户输入。但是,这并不是一个硬性要求。非交互性的出色演示将被考虑,尽管交互性更可取。 您的条目必须在5种主要浏览器(即IE,Firefox,Chrome,Safari,Opera)中至少一种的至少一个公开发行版中运行。仅允许主线版本(不是分支的版本或需要补丁的版本),没有特殊的配置设置,插件或常规浏览器不附带的其他任何版本。每晚构建,测试版和发布候选版本都可以。请在您的条目中指定用来测试条目的浏览器。在这些限制范围内,您可以使用什么技术没有任何限制;您可能会制作纯SVG动画,纯CSS动画,或者使用WebGL在JavaScript中进行某些操作,甚至可以进行某些操作,甚至可以使用XML和XSLT进行操作,如果您喜欢的话。如果您可以将其塞入没有外部依赖关系的有效数据URI中,并让浏览器运行它,那将是一个公平的游戏。 为了增加竞争,在3月21日星期一,我将悬赏这个问题。当我只有101个代表时,我怎么能获得赏金?好吧,我从现在到星期一在这个问题上的投票所获得的所有代表都将进入赏金计划(单次赏金允许的最高限额为500;尽管如此,我很难达到该限额帽)。在此之后的6天内,参赛作品将被接受;所有参赛作品必须至少在赏金到期前24小时内,以便给我时间检查所有内容并进行评估。届时,我将接受投票最高的答案,并将赏金给予我最喜欢的答案(可能与投票最高的答案相同或不同)。我授予赏金的标准包括美丽,乐趣,巧妙的技巧,有趣的新功能使用,互动性和尺寸。 以下是一些启发您的资源,可以帮助您入门: Chrome Experiments,现代网络平台的演示集 Mozilla Hacks,一个有关现代Web平台的博客,其中包含Firefox 4中许多新功能的演示 JS1k,一千个JavaScript演示比赛 10k Apart,10k竞赛中的webapp gl64k,目前正在为64k WebGL演示进行的演示竞赛 Shader Toy,一组有关WebGL着色器功能的演示 条目格式: 报名 数据:text / html,您的%20data%20URI 适用于Firefox 4 RC,Chrome 10和Opera 11 您输入的说明;它的作用,为何整洁,您使用了哪些巧妙的技术。 <script> // code in expanded form to more easily see how it works </script> 灵感的任何功劳,您可能从中借来的任何代码,等等。 …

30
黄金之战
这一挑战已经结束。要查看竞争对手的最终成绩,请单击此处 在此挑战中,每个提交都是一个机器人。每个漫游器都应该是一个Javascript函数。机器人将争取获得最高的黄金总价值。可以耕种黄金,也可以通过杀死其他机器人赚取黄金,黄金可以用来提高治疗,攻击,屏蔽和耕种的能力。 目的: 在多达1000轮的回合中(仅剩一个机器人时结束),总价值最高(获得的所有金币的总和)的机器人就是赢家。 转弯: 在每个回合中,每个存活(> 0 HP)的机器人都将运行一次。它可以返回移动,可以是以下之一: 治疗:恢复HP 攻击:从另一个机器人移除HP 盾牌:防御以后的攻击 晕眩:跳过另一个机器人的下一站 农场:以HP为代价赚钱 升级:改善某些动作 所有漫游器都将在执行任何动作之前返回它们的移动,因此眩晕,治疗,攻击,护盾等不会影响此后稍后移动的任何漫游器。例如,如果Bot A使Bot B昏迷,并且Bot B在回合顺序中紧随Bot A,则Bot B仍将在同一回合中稍后移动,并且在下一回合发生眩晕。 战斗,耕种和升级: 每个漫游器的最大HP为100,并且分配的UID在0到99之间。此UID在每轮之后都会更改,这是漫游器相互跟踪的方式。 修复是最简单的举动之一,增加的HP量取决于其等级(从5 HP开始)。机器人无法治愈100 HP以上的生命。 通过其UID攻击机器人是另一种可能的举动,在0级时造成5 HP的基本伤害。也可以使Bot昏迷,跳过下一回合,后者也使用UID。 机器人具有额外的防护罩HP,没有限制。此防护罩HP会吸收其他僵尸程序的直接攻击造成的损害,并通过防护罩添加。在0级时,屏蔽会增加5点屏蔽HP。 养殖将在0级获得5金,花费2 HP。这2 HP无法屏蔽。黄金的唯一用途(超越获胜)是升级动作。治疗,攻击和屏蔽的基础价值为5 HP,耕种开始于5金币。这些移动中的每一个都有各自的级别,从0开始。这些公式将确定移动的HP或黄金值,其中L是级别: 修复: L + 5 进攻: 1.25L + 5 屏蔽: 1.5L + 5 农业: 2L + 5 在某个级别上,升级任何移动的成本是相同的,并且由决定2.5L² + …

5
砌块机器人群!
比赛结束了! 介绍 这是一个互动式的山丘之王竞赛,其中控制器完全包含在问题底部的堆栈片段中。控制器会自动读取答案并通过游戏进行游戏。任何人都可以随时在其浏览器中运行它。 比赛的机制与红色vs.蓝色像素战队的机器人非常相似。除了玩游戏(尽管仍然基于网格)之外,它是完全不同的。每场比赛是1比1,没有球队。每项参赛作品都是为自己而战,只有最后一名将成为冠军。 控制器使用JavaScript,并且由于JavaScript是大多数浏览器支持的唯一客户端脚本语言,因此所有答案也必须使用JavaScript编写。 在本规范中,斜体文本用于表示游戏机制或属性的正式术语。这些术语通篇使用以帮助保持一种内聚和清晰的方式引用游戏的不同部分。 游戏玩法 基本 这个问题的每个答案都代表一个参与者。一个游戏是两个玩家之间的竞争P1和P2。每个玩家控制着一群 8个机器人,编号从0到7。游戏在网格中进行,一个128×64 单元的竞技场,其底部的8行开始是墙壁(“块”),其他行开始是空中。网格边界之外的单元被视为空气。 网格的x坐标范围从左侧的0到右侧的127,而y的范围从顶部的0到底部的63。 样本起始网格: 僵尸程序始终与网格单元保持对齐,并且多个僵尸程序可能占据同一网格。机器人只能占据气囊。P1的漫游器始终在墙上方行的最左侧开始于0-7行,P2的漫游器始终在最右侧行7-0处开始。 机器人或单元的邻居是与之直接正交和对角的8个单元。 机器人的视场(FOV)是以机器人为中心的13×13单元正方形。如果某个单元格或敌方机器人位于至少一个玩家机器人的FOV中,则该机器人或敌人机器人就位于该玩家的FOV中。 动作与动作 在游戏中,每个玩家移动 1000次。P1首先移动,然后是P2,然后是P1,依此类推,直到总共进行了2000次移动为止,此时游戏结束。 在移动过程中,每个玩家都会收到有关游戏状态以及FOV中的网格单元和敌方机器人的信息,并使用该信息来决定每个机器人要采取的行动。 默认操作是不执行任何操作,机器人不会在其中移动或与网格互动。 其他动作是移动,抓取和放置: 在以下情况下,机器人可以移动到其相邻单元格C之一: C不是没有界限的 C是空气(即不是墙), C的至少一个邻居是一堵墙。 如果成功,该机器人将移至C。 机器人可以在以下情况下抢占其相邻单元格C之一: C不是没有界限的 C是墙 而且该漫游器尚未携带墙壁。 如果成功,C将会成为空中对象,并且该机器人现在将携带一堵墙。 在以下情况下,机器人可以放置到其相邻单元格C之一: C不是没有界限的 C是空气 任何一位玩家都没有机器人占据C, 机器人载着一堵墙。 如果成功,C将成为一堵墙,而僵尸程序将不再承载墙。 不成功的操作将导致无所作为。 至少由一个壁挂式机器人占据的牢房上方画有一个小墙彩色的正方形。机器人开始时没有围墙。 记忆 在移动过程中,玩家可以访问和更改其记忆,即最初为空的字符串,该字符串在整个游戏中一直存在,可以用来存储战略数据。 目标 黄色十字准线中的像元是目标,该目标始于随机位置。每个玩家的得分均从0开始。当玩家的机器人移至目标时,该玩家的得分将增加1,并且在下一回合之前将目标随机重新定位。比赛结束时得分最高的玩家获胜。如果分数相等,那是平局。 如果在移动过程中有多个机器人移向目标,则玩家仍然只能得到1分。 如果目标在同一位置进行了500次移动,则将再次将其随机重新定位。只要将目标随机放置,就可以确保不会将其放置在机器人所占据的单元中。 编程什么 为此功能编写一个正文: function myMove(p1, …

9
保留的JavaScript
如2015年的ECMAScript的,JavaScript有33个保留关键字,诸如break,const和new,以及10个日后保留关键字,如let和await。 您的任务是在编写功能性JavaScript代码3的同时,将最大数量的连续1个不同的保留关键字2链接在一起。 连续保留关键字-保留关键字,仅由空格和/或括号和/或花括号分隔。 保留关键字- 自ECMAScript 2015起的任何保留或将来保留的关键字。较早的标准中保留的关键字不包括在内,下面列出了允许的关键字的完整列表。 功能代码-您的代码应该运行(必要时声明运行时),最终停止运行,并且不会引发任何运行时错误。 如果您的代码需要特定的运行时,则在给定环境中,使用的保留关键字不得为空。 保留关键字列表 显示代码段 await break case catch class const continue debugger default delete do else enum export extends finally for function if implements import in instanceof interface let new package private protected public return static super switch this throw try typeof var void …

22
自然派#0-摇滚
目标 创建一个接受输入的程序/函数N,检查N随机整数对是否相对质数,然后返回sqrt(6 * N / #coprime)。 TL; DR 这些挑战是仅需要自然和大脑(也许还有一些可重复使用的资源)才能逼近Pi的算法模拟。如果您在僵尸启示录期间确实需要Pi,那么这些方法不会浪费弹药!还有另外八个挑战。检出沙盒帖子以提出建议。 模拟 我们在模拟什么?好吧,两个随机整数是相对质数(即coprime或gcd == 1)的概率是6/Pi/Pi,因此计算Pi的自然方法是挖出两个桶(或少数几个)的岩石。数他们;看看他们的gcd是否为1;重复。这样做后,一对夫妇很多次,sqrt(6.0 * total / num_coprimes)会趋向Pi。如果计算世界末日后的平方根使您感到紧张,请不要担心!有牛顿法。 我们如何模拟这一点? 接受输入 N 请执行以下N次数: 均匀生成随机正整数,i并且j 用 1 <= i , j <= 10^6 如果gcd(i , j) == 1:result = 1 其他: result = 0 取N结果的总和,S 返回 sqrt(6 * N / S) 规格 输入值 …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

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.