Questions tagged «king-of-the-hill»

丘陵之王表示一种游戏,在此游戏中,提交内容以某种形式的游戏进行交互并相互竞争。在没有交互的情况下使程序相互竞争的竞赛应该使用[code-challenge]。

27
诚实的岩石,纸,剪刀
许多人认为RPS是一种机会游戏。如果两个玩家的比赛都变幻莫测,则最佳策略是随机比赛。但是,让我们介绍一下它的可预测性。 每个漫游器都有机会告诉另一个漫游器同时播放的内容。然后是一个停顿,每个机器人都将知道另一个玩家宣布了什么。如果它使用该武器,它会宣布除了赢球或平局的得分外,还将获得1分。 获胜者可得2分,平局,1分和失0分。 Honest Bot Dishonest Win 3 2 Draw 2 1 Loss 1 0 诚实是您的最大利益所在(但同时也要确保您的对手不相信您)。 比赛将以循环赛的形式进行,目的是使您在比赛中的总成绩最大化。 I / O格式: 您的机器人将是一个带有4个参数的Python 2.7函数,并且必须具有唯一的名称(用于表示您的提交)。 前两个参数始终按顺序排列:对手的过去动作,然后是您的过去动作。这些将是从第一轮到最近一轮的顺序列表,每个索引都包含一个列表,其中列出了对手声称要进行的动作,然后是他们实际进行的动作。 接下来的两个参数将使您的漫游器可以确定这是“诚实”回合还是“真实”回合。如果这是一次“诚实”的回合,那么它们都将为None。如果这是一个“真实”的回合,那么按照顺序,这将是对手声明要进行的动作,然后是声明要进行的动作。 代表移动的所有自变量或自变量的一部分将分别使用“ R”,“ P”和“ S”表示岩石,纸张和剪刀。 您的函数应该为岩石返回“ R”,为纸张返回“ P”,或为剪刀返回“ S”。有能力返回其他值的机器人将被取消比赛资格。 每个漫游器将与其他漫游器运行200次,而自身运行100次。我们的目标是成为比赛结束时获得最高分的机器人。 关于评论中的讨论,提交的内容不得读取或写入任何文件,也不得以任何方式破坏或读取对手的代码。 例子: 这是我快速整理的四个示例机器人。他们将作为其他机器人加入竞赛。如果输给最后一个,则需要做一些工作。 def honestpaper(I,dont,care,about_these): return "P" def honestrock(I,dont,care,about_these): return "R" def honestscissors(I,dont,care,about_these): return "S" import random …

30
骰子游戏,但避免数字6 [关闭]
比赛结束了! 比赛结束了!最终模拟是在夜间进行的,总共场比赛。获奖者是Christian Sievers和他的机器人OptFor2X。克里斯蒂安·西弗斯(Christian Sievers)也与Rebel一起获得第二名。恭喜你!您可以在下面看到比赛的官方高分列表。3∗1083∗1083*10^8 如果您仍然想玩游戏,欢迎使用下面发布的控制器,并使用其中的代码来创建自己的游戏。 我受邀玩从未听说过的骰子游戏。规则很简单,但我认为这对于KotH挑战将是完美的。 规则 游戏开始 骰子绕着桌子转,每次轮到您时,您都可以随意扔骰子多次。但是,您必须至少抛出一次。您可以跟踪本轮的所有掷出的总和。如果您选择停止,则该回合的分数将添加到您的总分数中。 那么,为什么要停止扔骰子呢?因为如果您得到6,则整个回合的分数将变为零,并且骰子会继续传递。因此,最初的目标是尽快提高您的分数。 谁是赢家? 当桌子周围的第一个玩家达到40分或以上时,最后一轮开始。一旦上一轮开始,除了发起上一轮的人以外的所有人都将获得另一回合。 上一轮的规则与其他任何轮次相同。您选择继续投掷或停止。但是,您知道,如果您没有获得比上一轮比赛之前更高的分数,那么您就没有机会获胜。但是,如果您走得太远,那么您可能会得到6。 但是,还有另一条规则需要考虑。如果您的当前总得分(您的上一得分+您当前的总得分)为40或更高,并且您打6,则您的总得分将设置为0。这意味着您必须重新开始。如果您在当前总得分为40或更高时达到6,则游戏将继续正常进行,除非您现在排在最后。重设总分时不会触发最后一轮。您仍然可以赢得一轮比赛,但这确实更具挑战性。 胜者是最后一轮结束后得分最高的球员。如果两个或两个以上的玩家共享相同的分数,则将全部计为胜利者。 附加规则是游戏最多可以持续200回合。这是为了防止多个机器人基本上一直抛出直到它们达到6保持当前分数的情况。第199轮通过后,last_round将其设置为true,然后再玩一轮。如果游戏进行200轮,则得分最高的机器人(即使机器人得分不超过40分)也将是获胜者。 概括 每回合您都会掷骰子直到选择停止或得到6 您必须掷一次骰子(如果您的第一掷是6,则您的回合立即结束) 如果您得到6,则您的当前分数将设置为0(而不是总分数) 您在每个回合后将当前分数添加到总分数中 当漫游器结束转弯时,其总分至少达到40分时,其他所有人将获得最后一转 如果您当前的分为而您得到6,则您的总得分将设为0,并且您的回合结束了≥ 40≥40\geq 40 发生上述情况时,不会触发最后一轮 最后一轮比赛总得分最高的人是获胜者 如果有多个获胜者,则全部计为获胜者 游戏最多持续200回合 澄清分数 总分:您在前几轮中保存的分数 当前分数:当前回合的分数 当前总分:以上两个分数之和 你如何参加 要参加KotH挑战,您应该编写一个Python类,该类继承自Bot。您应该实现以下功能:make_throw(self, scores, last_round)。轮到您时该函数将被调用,并且您的第一个掷球不是6。要继续掷球,您应该yield True。要停止投掷,您应该yield False。每次抛出之后,update_state都会调用父函数。因此,您可以使用变量访问当前回合的掷球self.current_throws。您还可以使用来访问自己的索引self.index。因此,要查看自己的总成绩,您可以使用scores[self.index]。您也可以使用来访问end_score游戏的self.end_score,但您可以放心地假定此挑战将是40。 您可以在类中创建帮助器函数。您也可以覆盖Bot父类中现有的函数,例如,如果要添加更多的类属性。除yield True或之外,您不得以任何其他方式修改游戏的状态False。 您可以从这篇文章中自由地寻求灵感,并复制我在此处包括的两个机器人中的任何一个。但是,恐怕它们并不是特别有效... 关于允许其他语言 在沙盒和第十九字节中,我们都讨论了有关允许使用其他语言提交的问题。在阅读了这样的实现并听取了双方的争论之后,我决定将这一挑战仅限于Python。这是由于两个因素造成的:支持多种语言所需的时间,以及此挑战的随机性,需要大量的迭代才能达到稳定性。我希望您仍然会参与其中,如果您想学习一些Python来应对这一挑战,我将尽可能多地在聊天中提供帮助。 如有任何疑问,您可以在聊天室中写下此挑战。到时候那里见! 规则 允许并鼓励破坏行为。也就是说,对其他玩家的破坏 任何试图修改控制器,运行时或其他提交内容的尝试都将被取消资格。所有提交都应仅使用输入的输入和存储。 任何使用超过500MB内存做出决定的漫游器都会被取消资格(如果您需要那么多内存,则应重新考虑选择) 机器人不得有意或无意地实施与现有机器人完全不同的策略。 …

7
生命,吉姆,但据我们所知
您可能知道Conway的“生命游戏”,这是数学家John Conway发明的著名的细胞自动机。生命是一组规则,这些规则可以使您一起模拟二维的细胞板。这些规则决定了板上的哪些单元生存,哪些单元死亡。凭空想像,您可以说Life是一个零玩家游戏:一种旨在发现有趣行为模式的游戏,例如著名的滑翔机。 零人游戏...直到今天。您将编写一个程序,玩人生游戏-并玩赢山丘之王。您的对手(单数)当然会尝试这样做。获胜者要么是拥有任何活细胞的最后一个机器人,要么是10000代后活细胞最多的玩家。 游戏规则 这些规则与正常(B3 / S23)寿命几乎相同: 少于两个友好邻居的活细胞因饥饿而死亡。 具有两个或三个友好邻居的活细胞可以存活。 具有三个以上友好邻居的活细胞会因人口过多而死亡。 如果没有敌方邻居,则死者牢房中只有一个同一个玩家的三个邻居,可以为该玩家战斗。 ...但是每一代人之后,您和您的对手都有机会进行干预。您最多可以唤醒30个细胞为您而战。(谁先走是由服务器决定的。) 面板是一个(x,y)单元格正方形。所有方块最初都死了。边界不环绕(这不是圆环状的世界),并且永久死了。 这是本着Battlebots和Core Wars精神进行的竞赛。有一个将运行机器人的中央服务器,可以在这里找到 协议 竞技场服务器使用通过argv通信的简单JSON协议 其中Values是JSON编码的字符串 y_size:消失之前的最大y坐标 x_size:消失之前,瓦片的最大x坐标 tick_id:当前的刻度号 board:字典,键的形式为'(y,x)',值的形式为bot_id(int) bot_id:具有此ID的木板中的瓷砖是您的 例: {"y_size":2000,"x_size":2000,"board":{},"bot_id":1,"tick_id":1} 告诉服务器您的选择: 向服务器发送一个瓷砖列表以转换为您的颜色。 只有那些空的将被更改 嵌套坐标列表格式 [[0,0], [0,1], [100,22]...] 注意:您的机器人完全不需要更新磁贴-服务器会自行更新 比赛规则 如果您的实现未能遵循该协议,那么该行为将被没收;服务器将保持状态不变 不允许您故意利用竞技场服务器中的故障。 让您的AI在合理的时间内决定动作。请尽快发送您的下一步行动。 最后,请对服务器友好。它在那里供您享受。 不遵守这些规则会导致失格。 如果出现平局,则两名玩家的总胜利数为1 自己运行控制器 控制器的源代码可以在这里找到。有两种运行控制器的方式: 竞赛模式(终端) 设置 python3 get_answers.py 每个机器人相互竞争,进行全面竞争。 测试模式(GUI) 跑 python3 …

30
机器人轮盘:高赌注的机器人赌博
最终排名 + ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- + | 姓名| 分数| WinRate | TieRate | 消除概率| + ---------------------------------- + --------- + ---- ----- + --------- + ---------------------------- + | 1. SarcomaBotMk11 | 0.06333 | 6.13%| 0.41%| [42 24 10 8 6 4]%| | 2. WiseKickBot …

9
科德蒙,我选择你!
您的好邻居Tree Doctor刚给了您三种叫做Codémon的神奇生物。附近的Colorville镇有一场战斗比赛。您是最好的吗? 总览 这是一场战斗比赛。每个玩家控制一个由三个怪物组成的团队,目标是淘汰(杀死)另一个团队。共有100场比赛,获得胜利和平局的得分。得分最高的团队获胜! 怪兽 科德蒙是一个复杂的小动物。有五种类型(元素)可供选择,三个统计数据,每个都有三个移动位置。 种类 每个Codémon被分配一种类型。这五种类型是正常,精神,火,水和草。每个都有其优点和缺点。损坏基于下图: 这些数字是伤害乘数。例如,烈火之水具有0.5的修正值(半伤害),而烈火之草则提高了一倍(2)。 统计资料 每个怪物都有三个决定其战斗能力的属性。攻击会造成伤害。防御可以降低承受的伤害。速度允许它先于速度较低的那些移动。 每个怪物的每个属性的起始值均为50,最大值为100。创建怪物时,您将能够分配80个附加的统计值(每个)。请记住,没有任何一项统计数据可以超过100。因此,您可以分配100/80 / 50、90 / 80/60或65/65/100,但120/50/60是非法的。任何拥有非法数据的球队将被取消比赛资格。您不需要全部使用80分,但是您可能不应该使用最低50/50/50。 您也可以将HP视为统计数据,但每个Codémon的不可修改HP为100。当HP降至零时,他们将无法继续战斗。每次战斗之前,HP会加满100。 动作 每个怪物都知道三个战斗招式。选择的三个必须不同,因此不能使用打孔/打孔/打孔。 一共有15个动作,每种动作三个。每种类型都有直接攻击,效果较弱的攻击和唯一效果移动。 id name type power uses usable effect 0 Punch N 20 - NFWG 1 Heal N 0 3 NFWG Heals 50 HP 2 Slow N 10 5 NFWG Enemy speed …

30
四人对峙
四人对峙 描述 您已经以某种方式陷入四重僵局。手中装有枪支,手榴弹挂在皮带上。 目标是在对峙结束时拥有最大的健康。当最多一个人的健康状况良好时,对峙已经结束。 每个玩家都有5健康,并且在其健康值下降到/低于时死亡0。玩家死亡的回合是该玩家可以承受的最后回合。 如果在对峙结束时有一名现场玩家,则该玩家获胜。否则,负面健康程度最低的玩家获胜。 动作 射击:对某人射击。 2 射击活着的敌人会造成伤害 0 射击死敌会造成伤害 health_at_start_of_turn+2射击自己会造成伤害。(请注意,这会使您处于最-2健康状态。) 如果一个敌人在射击自己的同一回合向您射击,您将以-4的生命值结束对峙(您在杀死自己的回合中仍然受到其他玩家的伤害)。 您在接下来的回合中的操作将被忽略(并假设为Nothing)。 躲闪:尝试躲避单个对手的投篮。 准备:解开您的手榴弹,并准备扔它。 在被炸毁之前,您只有三回合将其扔掉(6对自己3造成伤害,对所有活着的敌人造成伤害) 用未投掷的手榴弹杀死就等于不投掷手榴弹三圈。 投掷:将手榴弹扔向某人,并希望获得最好的结果。 8如果目标还活着,则会受到伤害 其他每个人(包括您自己)都可能受到3伤害 什么都没有:无所事事地转弯,看着每个人都死了。 输入项 您的程序将获得以下信息: 每个球员的健康 自对峙开始以来该玩家采取的行动的清单以下是每个玩家传递的信息的格式: [Health],[Action 1],[Action 2],[Action 3],... 动作将以“ 输出”部分中指定的格式给出。 您将收到4个这样的字符串,它们之间用空格隔开,并作为单个参数传递。这些字符串的顺序为: [Player Info] [Opponent 1 Info] [Opponent 2 Info] [Opponent 3 Info] 字符串作为第二个参数传递。第一个参数包含一个整数,该整数唯一地标识正在执行的对峙。保证同一组玩家之间的僵持不会同时发生。但是,将同时发生多个对峙。 例如: $./Player.bash 5 "3,S2,N …

22
为自己保存最后一颗子弹
比赛已经结束。胆小鬼是赢家。您可以在这里观看最后一场比赛。 突然出现僵尸!哦,是的! 在这个山丘之王的挑战中,您必须创建一个机器人来生存僵尸启示录。或至少保持尽可能长的时间。 在游戏开始时,每个条目的50个实例将被随机放置在一个较大的环形游戏区域中-也就是说,它看起来像是正方形,但是环绕。游戏区域的大小将取决于条目数,但是最初将占据6%的正方形。每个参赛者以3发子弹开头。 在每个回合开始时,僵尸将从地面上的任意位置升起,摧毁其上方的所有物体。任何在回合开始时靠近僵尸的玩家都将成为僵尸。 对于每个在世的玩家,他们的代码将被调用。它将接收一个PlayerContext对象,其中包含有关其当前状态及其周围环境的信息。每个玩家可以在任何方向看到8个正方形。 玩家必须选择通过返回a来移动(保持静止仍然是有效的动作)Move,或者通过返回来射击附近的人或僵尸Shoot。您的枪的最大射程为5平方。由于您在枪支射程范围内,因此只要还剩下子弹,就可以射击自己。如果两个玩家互相射击,他们都会死亡。 如果两个玩家试图移动到相同的方块上,他们将失败,并且都将返回到其开始的方块。如果仍然存在冲突,将重复此操作直到没有冲突为止,这可能意味着每个人都回到了起点。 如果玩家死于枪击,他们的尸体将保留并形成永久性屏障。他们携带的任何子弹都留在他们的身上,并且可以被邻近方格中的玩家扫除。如果有多个玩家占领与一个尸体相邻的方块,则子弹将在它们之间共享,但其余部分将丢失。 如果玩家成为僵尸,那么他们的子弹就会丢失。僵尸会不经意地走向最近的在世玩家。 参赛作品的得分取决于其最长寿的选手存活的时间。 参赛作品 可从https://github.com/jamespic/zombies获取控制程序。只需克隆它,然后运行即可mvn compile exec:java。 为了符合条件,条目必须使用JVM语言编写,必须是可移植的并且必须可以在没有特殊设置的情况下从Maven构建。这是为了确保竞争对手不需要安装多个运行时环境来针对竞争对手测试其机器人。 当前,样本条目可用以下语言提供: Java 7-另请参阅更复杂的示例和僵尸代码 斯卡拉2.11.1 Javascript(通过Rhino) Python(通过Jython 2.7 beta 2) Ruby(通过JRuby 1.7.13) Clojure 1.5.1 Frege(有点像Haskell- 这是另一个示例) 如果您想使用未列出的语言进行竞争,可以发表评论以要求使用该语言,我将研究将您选择的语言集成到控制程序中的可能性。或者,如果您不耐烦,则可以向控制程序提交拉取请求。 对于每个条目,只会创建一个实例(按Java的说法)。该Java实例每回合将被多次调用-每个存活的玩家一次。 API package zombie // You implement this. Your entry should be in package `player` interface Player { …

28
你是最弱的一环,再见
这个特大号的最山上的挑战是基于关闭的游戏节目,最薄弱的环节。对于那些不熟悉该节目的人,此挑战的症结在于您要投票否决谁: 如果其他玩家比您聪明,那么您获得底池的机会就更少。 如果其他玩家比您还笨,那么您所拥有的底池就更少了。 在每个回合开始时,底池从$ 0开始。组成一个由9个玩家组成的组,每个玩家都被赋予1到9之间的唯一智慧。 在每个回合开始时,每个Pot += Smartness仍在回合中的玩家。然后,玩家对希望删除的玩家进行投票。得票最多的玩家将被删除。如果出现平局,则保留更聪明的玩家。 当本轮只剩下2位玩家时,他们将在智慧之战中对峙。玩家获胜的机会是Smartness/(Smartness+OpponentSmartness)。然后获胜的玩家将收到整个彩池。 在游戏结束时获得最多钱的玩家将获胜。 输入输出 每回合,您将收到当前的对手列表。您可以通过Player类中的功能访问自己的聪明才智和所有玩家的整个投票历史记录。 作为输出,您必须返回一个整数,代表您希望投票的球员(代表他们的聪明才智)。投票为自己被允许(但不推荐)。 9回合将重复进行,直到所有玩家至少玩了1000 10000回合,并且所有玩家都参加了相同的回合数。 您可以在这里找到控制器:https : //github.com/nathanmerrill/WeakestLink 要创建播放器,您需要扩展Player类,并将您的播放器添加到PlayerFactory类。您的课程必须遵循以下规则: 严禁与任何其他播放器(包括您的其他同类型播放器)进行通信或干扰。 不允许使用反射和静态变量(常量除外)。 如果要使用随机性,我getRandom()在Player类中提供了一个函数。使用它,因此模拟可以是确定性的。 我在Player类中提供了许多功能,以便于访问数据。您可以在Github上在线找到它们。您的玩家将在每个新回合实例化。允许“愚蠢/自杀”玩家(但不允许使用具有相同策略的玩家)。 分数 377195 WeakestLink.Players.PrudentSniper 362413 WeakestLink.Players.Sniper 353082 WeakestLink.Players.VengefulSniper 347574 WeakestLink.Players.AntiExtremist 298006 WeakestLink.Players.BobPlayer 273867 WeakestLink.Players.MedianPlayer 247881 WeakestLink.Players.TheCult 240425 WeakestLink.Players.Leech 235480 WeakestLink.Players.SniperAide 223128 WeakestLink.Players.Guard 220760 WeakestLink.Players.Anarchist 216839 WeakestLink.Players.RevengePlayer 215099 WeakestLink.Players.IndependentVoter …

30
黄金收藏家KoTH
注意:针对社区最爱的调查即将发布 在此KoTH中,目标是成为最后一个存活的机器人。硬币将放置在随机区域中,并且您的机器人必须先获取硬币。如果一个机器人遇到另一个机器人,则拥有更多硬币的机器人将获胜,而另一个机器人死亡。下面有更多详细信息。 硬币种类 将有两种硬币类型:金和银。金币增加了机器人的力量,金币增加了5,银币增加了2。一旦收集到硬币,另一枚硬币就会放在棋盘的另一个位置。在任何给定时间,竞技场中都有一枚金币和四枚银币。 机器人碰撞 如果有两个机器人试图占据相同的空间,那么一个拥有更多硬币的机器人将会留下,而另一个拥有更少硬币的机器人将会……没有。获胜的机器人将获得85%的对手硬币(四舍五入)。如果绑在一起,两个都死了。如果三个或更多尝试占据相同的空间,则最有力的获胜,并获得其他所有漫游器硬币的85%。如果最强大的机器人是平手,则所有试图进入太空的机器人都会死亡。 竞技场 竞技场的边长用计算4 + botCount。在游戏开始时放置机器人时,会选择随机位置。该系统确保没有机器人在同一空间或彼此相邻启动。硬币是随机生成的,每个机器人以3乘3平方为中心。如果在竞技场之外发现了机器人,它会立即死亡。竞技场从左上角的(0,0)或西北开始,并且机器人的位置始终是整数。 你的机器人 您的机器人应该是具有数组,整数,字符串和函数的任何面向对象语言的函数。请注意,所有提交都将转换为Javascript,以使事情变得简单。要在移动之间存储信息,请使用botNotes.storeData(key, value)和botNotes.getData(key, value)。除了通过参数和提供的数据外,您不能以任何方式存储或访问数据botNotes。您应该创建一个函数,调用它时,返回一个字符串north,east,south,west,或none。该函数将有3个参数: 有四个整数(对象locationX,locationY,coins,arenaLength),您的当前位置,你的硬币,和竞技场的长度 包含其他漫游器的X和Y坐标及其硬币计数的多维数组,例如[[0,5,4],[4,7,1],[7,4,12]] 列出硬币位置的数组(黄金始终位于第一位) 这是挑战之王,禁止使用标准漏洞。您的函数将运行数千次,每次允许一次“移动”。请注意,如果游戏超过20,000步,则获胜最多的机器人将获胜。将执行8,000次以消除随机性。 聊天室: https ://chat.stackexchange.com/rooms/81347/gold-collectors-koth 奖品: 第一名:奖励100分 社区最爱:接受15分的答案 获奖者: 第一名: TBTPTGCBCBA 第二名:大国王Little Hill 第三名:潜在胜利 第四名:有礼貌的近视醉酒机器人 第五名:安全币

30
有已知的
美国前国防部长唐纳德·拉姆斯菲尔德(Donald Rumsfeld)著名地推广了“已知的已知物”。在这里,我们将把他的言论提炼成四行节。 具体来说,输出以下文本: known knowns known unknowns unknown knowns unknown unknowns 大小写无关紧要(例如,Known unKnowns可以),可以使用单行尾的换行符,但不允许其他格式更改。这意味着单词之间有一个空格,行之间有LF(59字节)或CR/LF(62字节)。 规则 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

19
团契之战
在这个挑战中,您将创建一个战利品,目标是在战斗中击败所有其他奖学金。 奖学金(团队)由3个字符组成。每个角色的行动都与团队其他成员无关,但是在与敌人作战时,他们需要共同努力。团队将以旋转的方式面对面面对面。胜利值得3分,平局值得1分,损失值得0分。 角色具有能力。选择角色具有的能力是本KotH中最关键(也是最有趣)的部分之一。它们都很强大,并且有可能消灭敌人。 角色拥有生命值(HP),并且当他们的HP达到(或低于)0时,他们将死亡。如果对手团队中的所有角色死亡,那么您就赢了! 角色有法力值。大多数动作都需要Mana来执行,如果您没有足够的力量,则该动作对您不可用。 角色有转弯延迟。这确定了每回合之间的刻度数(从100开始)。越低越好。 字符具有属性。每个字符在每个属性中均以5为底,并且还为您分配了20个额外的属性点。分配属性点后,您的主要属性将被设置为最高属性。 可用的属性有: 力量:每回合能提供10最大生命值和0.5生命值 智力:每回合提供7点最大魔力和0.1点魔力 敏捷度:减少转弯延迟1 运动,视觉,范围 范围如下(以0为中心)。一些范围是基数,这意味着它们只能直接向上,向左,向右或向下移动。 444 43334 4322234 432111234 432101234 432111234 4322234 43334 444 角色的初始视野为2。相同研究对象的玩家之间的视野是共享的。 怎么玩 建设者 将建立他们的团契。 您需要执行以下步骤: 给每个角色属性点。每个角色的每个属性开头都是5,另外还有20个角色在3个角色之间分配。 赋予每个角色能力。每个角色以4个异能槽开始,默认情况下,异能占据1个槽。一些能力是可重复的,并且可以多次赋予一个角色。未经所有者许可,不允许使用其他提交的功能集。 为您的机器人编写一些代码。该代码必须使用Java,并将用于战斗(下一步) 动作 所有字符均以3个标准动作开头: 步骤:在1个基本范围内移动角色 切片:在1个基本范围内攻击PrimaryAttribute的敌人 微笑:无所事事 在角色回合上,然后必须选择要执行的动作。动作可能会消耗法力值,并且可能会有冷却时间,该时间定义了再次执行该动作之前必须等待的回合数。 能力 每个角色都有4个能力槽。如果一个能力用斜体表示,那就是一个动作。 能力 名称说明法力冷却 移动 闪烁 移至一个正方形,范围4 2 2 交换 与目标5交换位置5 传送 随处移动20 5 …

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² + …

6
让我们玩黑手党吧!
黑手党(也称为狼人)是一款派对游戏,大致玩法如下: 游戏从第0天开始。每一天之后都有n一个晚上n。每天晚上之后n是一天n+1。即D0, N0, D1, N1, D2, N2... 在第0天的黎明,主持人秘密地选择玩家担任某些角色: 一些玩家成为黑手党。每个夜晚,每个黑手党成员都会选择一名球员。在第二天的黎明,被最黑手党成员选择的玩家被杀死。它们已从游戏中永久删除,并且其角色已公开显示。黑手党对齐。 一些玩家成为警察。每天晚上,每个警察都会选一个球员。在第二天的黎明,警察开始意识到玩家的状态。村落对齐。 一些球员成为医生。每天晚上,每个医生都会选择一名球员。如果此玩家与黑手党选择杀死的玩家相同,则黑手党当晚的行动将被取消。村落对齐。 没有被选为其他角色的所有玩家都是村民。村民没有全镇无法分享的能力。村落对齐。 除第0天外,每天都有整个城镇(即所有在世玩家)为一名玩家投票。最终,该玩家将从游戏中删除,并显示他们的角色。(在第0天,每个人都直到晚上降临。) 如果在任何时候都没有剩余的黑手党成员,那么游戏将以所有与村庄结盟的玩家胜利(包括死亡)结束。 如果在任何时候,以村庄为中心的玩家数量都不超过以黑手党为基础的玩家,则游戏将以所有以黑手党为基础的玩家胜利(包括死亡)而结束。 对于这个挑战,您的目标是写一个机器人来击败黑手党的其他机器人! 如何制作一个可以工作的机器人 您需要为我提供的只是一个名为的文件run。在将发生挑战的目录结构中,您的机器人将住在这里: start controller/ tmp/ players/ # You are here! some_bot/ # Let's pretend you're some_bot. to_server from_server players run # This is what you give me mafia-game-bot/ skynet/ 该run文件在执行后将使您的机器人执行其任务。重要的是要注意,该文件一定不需要任何命令行参数或任何东西。它将完全按照来运行./run。如果需要以其他方式执行,则必须通过执行以下操作来解决: real_bot.py #!/bin/python2 # code …

21
Stack Exchange股票交易所-V3
注意:此挑战现已结束:我将不再更新排行榜,也不会更改已接受的答案。但是,您可以随意运行控制器并自行更新排行榜。 加入聊天! 介绍 晚上好,交易员!你们都是高尔夫公司PPCG的商人。您的任务是赚尽可能多的钱。 挑战 编写一个在Stack Exchange Stock Exchange上买卖股票的程序,目的是尽可能赚钱。 游戏玩法 所有玩家将以5股开始并在其银行中获得$ 100。游戏始终以10美元的股价开始。 每场比赛将进行1000轮,其中第一轮为1。在每个回合中,将为您的程序提供四个参数作为输入:当前股价,所持股份数量,所拥有的金额以及回合编号(1索引)。 例如,如果我的程序是test1.py,股票价格是100,我持有的股份数量是3,我拥有的资金数量是1200,而整数是576,则我的程序将按以下方式运行: python test1.py 100 3 1200 576 在一个回合中,分配给每个玩家的股价将相同。直到回合结束,这才改变。 作为响应,玩家必须打印其命令。有两种选择: 购买股份:给出此命令的bn位置n是您要购买的股份数量。例如,如果您想购买100股,则将输出: b100 购买股票时,您最多可以透支$ 1000。如果您尝试购买超过该透支额的股票(您的银行余额低于$ -1000),您将被宣布破产。这意味着您将损失所有股份,余额将设置为$ 50。 如果您破产,股价将不受您的命令的影响。 (如果您的余额为$ -1000,则表示您没有破产。但是,如果您的余额为$ -1001,则表示您已经破产) 卖出股票:此命令的给出sn位置n是您希望卖出的股票数量。例如,如果您想出售100股,则将输出: s100 您出售的股票数量可能不会超过您拥有的股票数量。如果您尝试这样做,则您的请求将被拒绝,并且您将跳过该回合。 如果您想跳过该回合而不执行任何操作,请输出b0或s0。 如果您尝试买卖负数股和/或非整数股,您的请求将被拒绝。 经过5轮之后,每轮结束时,所有玩家都将获得红利,其价值为最近5轮平均平均股价的5%。 它是如何工作的? 最初,股价为10美元。在每个回合结束时,将使用以下公式重新计算: 新股价= 旧股价+ (买入股份数− 卖出股份数)New Share Price=Old Share Price+(Number of shares …

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

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.