Questions tagged «king-of-the-hill»

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

12
大熊狩猎
完成 Wumpus季节已经结束,许多邪恶的Wumpus和勇敢的Hunter的生活也随之结束。以及一些怯ward,不道德和彻头彻尾的愚蠢猎人。但是最终,Heckle博士的NascarHunter夺走了最多的战利品和荣耀。我们向您致敬,哦,勇敢...司机? 这是旺普斯的开放季节,来自世界各地的猎人正涌向伍普斯山洞,以尝试从宝贵的伍普斯果皮中致富。 游戏 基于经典的《Hunt the Wumpus》游戏,有一些变化。 地图 一个十二面体。有20个房间,每个房间连接到其他3个房间,基本上形成3个环,中间有桥。 ump 巫婆是个神秘​​的野兽。没有人知道它是什么样,但是所有人都同意它是凶猛的。乌普斯人住在山洞里,喜欢吃死掉的东西。如果Wumpus旁边的山洞里有尸体,他会搬到那里吃掉。如果Wumpus碰巧进入一个包含猎人的洞穴,他也会杀死并吃掉它们。如果Wumpus听到附近有箭,他会惊慌失措,跑进随机房间。 可选特征:当前包括这些特征,以使游戏更有趣,但如果它们增加了太多的随机性,则可以应大众要求将其删除。 愤怒的旺普斯:如果旺普斯被枪杀,他有20%的生存率和狂暴持续3天。横冲直撞时,他每天会随机移动两次,但仍然会被尸体吸引。3天后,他将死亡。第二箭也将杀死伍普斯。 流浪的乌姆普斯:每天,如果没有其他因素触发乌姆普斯,他有25%的机会移动。 猎人们 四个猎人可以一次进入洞穴。洞穴是黑暗的,所以猎人看不见,但他们可以使用其他感觉。猎人可以闻到隔壁房间里的乌姆布斯,闻到隔壁房间里的尸体,听到其他猎人在隔壁房间里移动,并听到是否有箭射入了隔壁房间。 猎人有两个动作:射击或移动。猎人可以向附近的房间或自己的房间射箭,并以类似的方式移动。 游戏玩法 在每一回合中,猎人都会先注意周围的环境,然后再动一动。移动发生在箭头之前,因此,如果将箭射入猎人要移出的房间,猎人将幸免于难。完成所有猎人动作后,将评估箭头。如果单个乘员和箭头在同一房间内,乘员将被枪杀并死亡。如果两个或两个以上的乘客共用一个房间,一个人将被随机打死。注意:尸体是乘员,因此尸体可以作为部分防护罩。 所有猎人移动后,Wumpus会做出反应。如果猎人和Wumpus一起搬进了房间,Wumpus会把他/她吃掉。如果Wumpus搬家,它也会吃掉新房间的住户。 100天后,如果猎人没有杀死Wumpus或下落不明的受害者,他们将在山洞中饿死。 代码 所有源代码都可以在这里找到。除非有人要给我写一个stdIn / stdOut适配器,否则所有提交都应使用Java。 机器人应扩展猎人类。要命名您的Hunter,请添加一个不带参数的构造函数来设置名称字段。要响应,请重写getResponse函数。在此功能中,每回合,您将通过一个5个布尔值的数组来告诉您周围的环境。 状态0 =“您闻到了呕吐物” 状态1 =“您听到了另一个猎人” 状态2 =“您闻到尸体” 状态3 =“您听到了箭声” 状态4 =“您在与您同一个房间里感到另一个猎人” Hunter类有2个插槽:nextMove和nextDirection,分别使用枚举Move和Direction。移动可以是MOVE或SHOOT,方向可以是LEFT,RIGHT,BACK或HERE。方向是一致的,这意味着返回将始终使您返回到您之前所在的房间,并且如果从同一房间进入,则LEFT和RIGHT将始终相同。但是,如果您从另一个方向进入,则LEFT和RIGHT会将您带到不同的地方。 也可以随意实现自己的方法。记忆在整个比赛中都是持久的,这意味着您的猎人只会被构造一次。但是,在每个回合开始时,都会调用newGame()方法来使您的猎人知道新游戏已经开始。 计分 一次有四个猎人竞争。如果被杀死,则伍珀斯毛皮价值60分,在所有幸存的猎人中平均分配。全轮巡赛风格,因此4位猎人的每个组合将一起玩。 包括5个示例Hunter:4个具有非常基本的功能,以及一个允许用户输入播放的功能,以进行测试。 如果您有任何建议/要求,请告诉我! 尽头已尽! 世界上的Wumpus人口正在以惊人的速度被猎杀。预计将于6月17日星期三通过《保护我们的臀部法案》。在此日期之后,将不再允许猎人进入洞穴,而将选择获胜者。 计分板 注意:抱歉,代码中存在一个错误,可能会导致Hunters在多个游戏中丧命。修复后,它不会对整体排名产生很大的影响,但会极大地改变统计数据。 得分不断提高,每组猎人在1000场比赛中都参加比赛。NascarHunter和FullCoverageHunter领先,尽管AntiHunter的加入使Wumpuses的存活率提高了2%,但他们仍然以其同类的32%的存活率摇摇晃晃。猎人同行的箭比以往任何时候都更是洞穴中最大的威胁。 1. NascarHunter : …

10
网格路由战
注意:该挑战目前已死,因为我无法安装运行比赛所需的语言。如果其他人有时间和兴趣去做,我并不反对。 有关排行榜,请参见帖子底部。 这是一种半合作式的“山上之王”挑战,机器人在其中通过二维网格图构建路径。控制流量最大的节点的机器人是赢家。但是,实际上需要一个机器人的资源来建立一条连接路径,因此这些机器人必须在某种程度上协同工作。 游戏玩法 在下面,N > 0设为正在运行的机器人的数量。 网格 游戏在尺寸为2的二维整数网格上进行,其左下坐标为。每个坐标与具有出边的三个坐标,以及在其上方,其中,所述坐标-取模 。这意味着网格在东边和西边环绕。每个下坐标是一个源,每个上坐标是一个下沉。⌊4/3N2⌋ × ⌊4/3N2⌋(0,0)(x,y)0 ≤ y < ⌊4/3N2⌋-1(x-1,y+1)(x,y+1)(x+1,y+1)x⌊4/3N2⌋(x,0)(x,⌊4/3N2⌋-1) 下图显示了一个8 × 8网格。 图的每个顶点是不活动的,活动的或损坏的。所有顶点都开始处于非活动状态,并且可以被漫游器激活,然后漫游器将成为其所有者。此外,漫游器可能会破坏顶点,因此无法修复。 转单 转弯包括破坏阶段和激活阶段。在销毁阶段,每个漫游器可能会破坏一个不活动的顶点。该顶点从那时起就被破坏了,任何人都不能激活它。在激活阶段,每个漫游器可以激活一个不活动的顶点。从那时起,他们拥有该顶点,并且其他任何人都无法重新激活它。如果多个漫游器都在同一转弯上激活单个顶点,则它们可能拥有一个顶点。在每个阶段,顶点选择是同时完成的。 计分 一轮持续一圈。此后,该回合得分如下。从每个活动的源顶点,我们沿着活动的顶点执行一次随机的深度优先搜索(这意味着每个顶点的子级均以随机顺序访问)。如果找到从源到某个汇的路径,则对于该路径上的所有顶点,顶点的每个所有者都会获得一个点。N2N 整个游戏持续100回合,而总分最高的机器人就是赢家。如果分数差异太大,我可能会增加这个数字。 附加规则 不会弄乱控制器或其他提交内容。 每个参赛者最多提交一份。 在游戏开始时,除了一个私人文本文件外,没有其他外部资源被清除。 不要设计您的机器人来击败或支持特定的对手。 提供命令来编译和运行您的机器人。可以免费使用任何可用于Debian Linux的编译器/解释器。 控制器 该控制器是用Python 3编写的,可以在GitHub中找到。有关详细说明,请参见README文件。这是一个让您入门的API: 僵尸程序在每个回合开始时开始,并一直持续到回合结束。使用换行符终止的消息,通过STDIN和STDOUT与控制器进行通信。 BEGIN [num-of-bots] [num-of-turns] [side-length] 在开始时输入。 DESTROY [turn]在每个销毁阶段开始时输入。您的漫游器应VERTEX x,y以选择一个顶点或做出响应NONE。 BROKEN [turn] [your-choice] [other-choices]在每个销毁阶段结束时输入。其他机器人的顺序在每个游戏开始时都是随机的,但在此过程中保持不变。选项显示为x,y或N。 ACTIVATE [turn]和OWNED …

13
KOTH:交战城镇
最终结果在这里! 介绍 该游戏的灵感很大程度上来自Manu的《城镇游戏》。它发生在剑与魔法的世界中。统治整个大陆的国王刚刚去世,许多城市国家的君主现在正在争夺领土。您是其中一位领主,您的目标是征服和统治每个小镇。 原理 人们分为8类: Warlocks : Fighter (magic) Crusaders : Fighter (melee) Amazons : Fighter (range) Corsairs : Utility (steal, guard, transport) Bishops : Utility (convert, exorcize) Necromancers : Utility (resurrect) Architects : Utility (build) Peons : Resource (income, recruits) 游戏开始时,您将统治一个城镇。每个城镇有100人。您必须将它们分成这8个类别。 然后,基于回合的实际游戏开始。转弯包括12个阶段,其中7 个阶段是交互式的(向机器人询问命令)。下一个阶段开始于每个城镇都已执行上一个阶段时(阶段1:城镇1,城镇2,城镇3 ...;阶段2:城镇1,城镇2,城镇3 ...): 1. Raise Taxes - …

26
最低唯一出价拍卖
感谢所有输入,截止日期已经过去,最终成绩在问题的结尾。 祝贺PhiNotPi取得了相当全面的胜利。 这是一个特大号的最小山的挑战,其目的是建立一个程序,它赢得更多的往往比任何对手的最低独特投标拍卖。 输入项 作为输入,程序将接收之前所有回合的出价,每行一个回合,所有出价用空格隔开,如下所示: 10 4 12 11 12 4 7 3 3 1 2 9 15 1 15 15 9 3 3 21 6 4 3 8 6 13 1 输入的每一列代表一个机器人的出价。第一列是接收程序的出价,其余列按随机生成的顺序排列。感谢hammar和Peter Taylor的投入。 输入作为程序的唯一(唯一)命令行(多行)参数提供: ./test1 '1 2 3 4 5 6 1 2' 这意味着您的程序将需要从命令行运行。请给出一个调用示例作为答案的一部分。 在第一轮中,这仅是一种让您知道要遇到的机器人数量的方法,输入的内容将是0s 行-每个机器人一个。 输出量 您的程序应将其出价输出为1到100(含)之间的整数。 记分员计划 …

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 …

14
纳米核心战争
这是对《核心战争》的改编,《核心战争》可追溯到20世纪。更具体地说,它使用的是一种非常简化的指令集,主要是基于原始提案。 背景 在《核心战争》中,有两个程序争夺对计算机的控制权。每个程序的目标是通过定位和终止相反的程序来取胜。 战斗发生在计算机的主内存中。该内存称为核心,它包含8192个地址。当战斗开始时,每个竞争对手(称为战士)的代码都会放在随机的内存块中。程序执行在战士之间交替,每个战士执行一条指令。每条指令都可以修改Core的一部分,从而有可能自行修改程序。 目的是终止相反的程序。程序在尝试执行无效指令(即任何DAT指令)时会终止。 指令集 每个程序由一系列低级指令组成,每个指令都有两个字段,称为A和B字段。 该指令集极大地借鉴了原始规范。主要的更改是1)澄清了添加/减去命令的问题,以及2)更改了#寻址模式以使其可以在任何地方使用。Core Wars的大多数完整版本都有20多个操作码,8种寻址模式和一组“指令修饰符”。 操作码 每个指令必须具有七个不同的操作码之一。 DAT A B-(数据)-仅保存数字A和B。重要的是,进程在尝试执行DAT指令时会死掉。 MOV A B-(移动)-将存储位置的内容移动A到存储位置B。这是前后的演示: MOV 2 1 ADD @4 #5 JMP #1 -1 MOV 2 1 JMP #1 -1 JMP #1 -1 ADD A B-(添加)-将存储位置的内容添加A到存储位置B。两者的前两个​​字段被添加,第二个字段被添加。 ADD 2 1 MOV @4 #5 JMP #1 -1 ADD 2 1 …

12
连接n时间!
https://en.wikipedia.org/wiki/Connect_Four 有人记得2人游戏连接4个吗?对于那些不喜欢的人来说,那是一块6x7的板,它垂直于表面。连接4的目标是连接4!如果连接是水平的,对角的或垂直的,则将其计算在内。您可以通过以下方式将棋子放置在板上:在棋子的顶部插入棋子,使其落在该棋子的底部。我们的规则更改了连接4中的3件事。 变更#1获胜定义为得分最高的玩家。您可以通过像规则中那样连接4来获得积分-稍后再介绍。 变更#2您每轮有3个玩家。 变更#3电路板尺寸为9x9。 得分: 分数基于您连续获得的分数。如果您有一个连续的4组,您将获得1分。如果您在连续5组中获得5分,则在3行中获得6分,依此类推。 例子: 注意o和x分别用#和代替~,以获得更好的对比 空棋盘示例:(所有示例均为2人标准尺寸棋盘) a b c d e f g 6 | | | | | | | | 5 | | | | | | | | 4 | | | | | | | | 3 | | | | | …

27
为*写翻译
任务很简单。为*语言编写口译员。 这是Wiki的更大链接。 只有三个有效的*程序: * 打印“ Hello World” * 打印0到2,147,483,647之间的随机数 *+* 永远运行。 根据此问题的规范,第三种情况必须是无限循环 输入: 可以通过我们的标准I / O规则通过任何可接受的输入方法进行输入 它将永远是以上程序之一 输出: 第一种情况应打印准确Hello World,带有或不带有尾行。 对于第二种情况,如果您的语言的整数最大值小于2,147,483,647,请使用您的语言的整数最大值 根据我们的标准I / O规则,第一种情况和第二种情况可以打印到任何可接受的输出。 第三种情况不应给出任何输出。 得分: 因为这是代码高尔夫球,所以最短的答案(以字节为单位)获胜。
20 code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

19
反复囚徒困境
挑战状态:公开 评论,打开公关,或者如果我想念你的机器人,对我大喊大叫。 囚徒困境...有三种选择。疯了吧? 这是我们的收益矩阵。玩家A在左侧,B在顶部 A,B| C | N | D ---|---|---|--- C |3,3|4,1|0,5 N |1,4|2,2|3,2 D |5,0|2,3|1,1 收益矩阵经过精心设计,因此对于两个玩家来说始终是最好的合作方式,但是您可以(通常)选择“中立”或“背叛”来获得收益。 这是一些(竞争性)示例机器人。 # turns out if you don't actually have to implement __init__(). TIL! class AllC: def round(self, _): return "C" class AllN: def round(self, _): return "N" class AllD: def round(self, _): …

5
玩Antichess!
https://en.wikipedia.org/wiki/Losing_chess 这基本上是国际象棋比赛,但是对于古董;) Antichess是已发明的许多国际象棋变体之一。目的是要丢掉所有的棋子(这看起来有些奇怪,但是有一定的原因被称为安息)。 规则 固定规则与标准国际象棋非常相似-但有一些相当小的差异。正如我上面提到的,目标是失去所有的碎片。要做到这一点,如果对手有机会抓住你的一个棋子,那是他唯一能采取的行动。如果您在一回合中给予他多次机会,另一位玩家可以选择他的回合。另一件事发生了变化,那就是国王没有特殊的权力-因为您无法与对手对峙,也不能迫使他受阻。 对标准游戏的以下更改也将适用(它们有助于简化游戏): 传递将被忽略。 卡丁车是不可能的。 在五十移动规则适用自动(意为平局的游戏结束)。 典当将能够选择它们要推广到的东西。 如果玩家需要超过2秒的移动时间,他将输掉比赛。 返回无效的举动将导致游戏失败。 为了赢得胜利,您的对手必须夺走您所有的碎片。 怀特开始比赛。 白色位于字段的“底部”(y = 0),黑色位于顶部(y = 7)。 禁止访问除您的漫游器以外的其他资源(互联网,文件,其他漫游器,...)。 计分 获胜将使您获得3分,平局1分,而输0分。 每个提交将与对方提交进行10次对战(白色5次,黑色5次)。 编写你的机器人 控制器代码在这里:https : //github.com/JJ-Atkinson/SimpleAntichessKOTH 您可以用Java或Groovy编写您的机器人。要编写机器人,您必须扩展Player该类。播放器类具有一种抽象方法Move getMove(Board board, Player enemy, Set<Move> validMoves)。 以下是一些有用方法的简要介绍: Player: List<Piece> getPieces(Board board):退还您板上所有的零件。 PieceUpgradeType pieceUpgradeType:如果/当其中一个棋子到达棋盘的末端时,您需要将其定义为要升级到的棋子类型。你的选择ROOK,KNIGHT,QUEEN,BISHOP,和KING。 Board: Field getFieldAtLoc(Location loc):返回Field的位置。这具有匹配的getAt方法,因此,如果您使用的是groovy,则可以编写board[loc]。 Field getFieldAtLoc(int x, int y):返回Field的位置。这具有匹配的getAt方法,因此,如果您使用的是groovy,则可以编写board[x, …

10
投币时间旅行者
将来,当“时光旅行”(Time Travel,简称TT)盛行时,抛硬币将成为一种严肃的思想运动。为了为未来做准备,我们为参赛作品创建了竞赛,从参赛作品的角度出发,时空旅行将真正发生。 比赛是循环式的山丘之王,由Java类之间的抛硬币比赛组成。 投币比赛规则 有两个玩家和100个回合。 在每一轮中,掷出一枚硬币,并且根据结果一名玩家得到1分。每个玩家都有50%的机会得分。 投掷后,两个玩家都有机会通过拉杆来控制时间。 如果您拉动蓝色手柄(回位限位器),则无法对使用该手柄的那一轮或之前的任何一轮进行TT操作。TT尝试进行这些回合不会产生任何效果。 如果您拉动红色手柄(还原器),则尝试将时间还原为前一轮。如果成功,则在选择的回合之前,对手的记忆将恢复到其记忆,并且从选择的回合开始的抛硬币结果也将被删除。对于您的对手来说,唯一可能的关于TT的信号是其未使用的操纵杆数量,这些数量不会恢复原状。 比赛开始时,每位球员有5个蓝色和20个红色未使用的操纵杆。这些杠杆不受TT的影响。 如果在第100局结束时没有TT,则游戏结束,得分较高的玩家获胜。 细节 轮次具有从1开始的索引(形式1至100)。 回合之前x,向您提供了可用的蓝色和红色杠杆数量,抛硬币的结果一直到x(包括)回合为止,并且记忆了您的(最后一个)x-1回合。 一圈拉动蓝色操纵杆将x停止在目的地x或之前有目的地的所有TT (如果它也发生在同一确切的回合中,则会阻止TT)。 恢复到一轮x意味着下一轮将是一轮x。 如果两个玩家都选择在回合结束时还原,则时间将还原到未被阻止的较早目的地。尝试还原到此时间的播放器将保留其记忆。 技术细节 您应该编写实现提供的Bot接口的Java类。 将您的机器人添加到项目中。 将Bot的实例添加到Bot文件中的Controller.java。 您的班级不应在通话之间保留信息。(在大多数情况下,只有final函数外部的变量才能满足此要求。) 您可以在memory返回Action对象的字段中向控制器提供信息。如果未发生任何TT,这将在下一轮退还给您。如果发生TT,您将收到相应的较早记忆。 您可以使用该类的totalScore()方法Game来获取历史记录字符串的分数。 协议 在任何时候都takeTurn(...)使用5个参数调用您的方法: 未使用的蓝色杠杆数 未使用的红色杠杆数量 抛硬币的历史记录,一个由1和0组成的字符串,表示您在前几轮中的得失。第一个字符对应于第一次掷硬币。(在第一轮中,字符串的长度为1。) 字符串,您上一轮存储的内存 本轮基于1的索引 在任何时候,您的方法都会返回一个Action包含 move描述您的操作的字段中的整数: 0 不采取行动 -1 拉一个蓝色的杆并阻止TT通过本轮 一个正整数x,不大于当前的回合,以拉动红色杠杆并尝试恢复为回合x 无效的整数被视为0。 一个字符串,其中包含您要保留的这一轮记忆。请注意,存储内存并不是挑战的关键部分。您可以进行良好的输入,而无需在字符串中存储任何有用的数据。在第一轮中,该字符串将为空字符串。 在一场比赛中,您的方法平均每轮不超过10毫秒。 定期超过时限会导致失格。 计分 赢得一场比赛均获得2分,而两人平局则获得1分。损失不赚分。 机器人的分数将是其收集的总分。 每对参赛者之间进行比赛的次数将取决于参赛作品的数量及其速度。 发布了两个简单的示例机器人作为答案。 控制器和前几个机器人在这里可用。 在11月3日之前提交的机器人测试结果: …

8
死亡商人
您是外国商人,希望能获利。人们希望交易的商品有5种:A杏,B桨,C肛门,D水仙花和E树枝。从冬季开始,您需要决定要生产什么。然后,在秋天,您旅行并花费大量时间进行交易以获取利润。 游戏玩法 您以10种每种产品的存储空间开始游戏。每年,您将消费每种产品中的2种。 在游戏开始时,您会收到5种产品的清单,以及每年可以生产的数量(例如:)5-A,6-B,3-C,12-D,4-E。然后,您将返回字母A到E,以决定要生产什么。 然后,在秋天的时候,您将把您的产品(包括存储中的产品)推向市场。您有50个转弯进行交易。 您必须决定是否要购买,P出售S或逃避L市场。然后,买方将与卖方随机配对。如果一个小组有额外的,随机的额外将错过这个回合。如果跳过交易者,他们将收到S,否则,T。卖方必须决定他想卖什么,以及金额(例如:3-A),然后他会接受什么样的(例如:5-B,2-D,1-E)(该值是任何没有全部)。然后,将告诉买方卖方正在销售什么产品,然后卖方将购买该产品,然后他可以选择一种产品进行交易(例如:D或X一无所有)。 在所有交易结束后或离开市场后,您将消费每种产品中的2种,并且年份开始。如果您在1种产品中的少于2种,您将死亡(并通过Q)。 您的分数将是您持续的年数,经过50场比赛后,您的分数将取总分数的平均值。 可选动作 您可以随时返回G查询商品 您随时可以返回N查询库存中新产品的数量(过去一年中任何玩家生产的产品,新产品将在旧产品之前进行交易) 您随时可以返回T当前的转折短语:Produce,Market或Trading 在交易期间,您可以查询 I与您交易的玩家唯一的标识符。 在交易期间,您可以返回M查询交易人数 如何编码: 您可以使用任何标准语言,并且必须包含command.txt运行程序的命令。 程序的一般流程应为: Get productivity While alive: Output product you want to produce While in trading: Output whether you want to purchase or sell Get whether or not you were skipped. If not skipped: If …

28
计算逆模量
任务: 输出for的值x,其中a mod x = b有两个给定值a,b。 假设条件 a并且b将始终为正整数 永远不会有解决方案 x 如果存在多个解决方案,请至少输出其中之一。 如果没有任何解决方案,则不输出任何内容或表明不存在任何解决方案。 允许内置(不像其他数学方法那样有趣) 输出始终是整数 例子 A, B >> POSSIBLE OUTPUTS 5, 2 >> 3 9, 4 >> 5 8, 2 >> 3, 6 6, 6 >> 7, (ANY NUMBER > 6) 8, 7 >> NO SOLUTION 2, 4 >> NO …
18 code-golf  math  number-theory  code-golf  number  integer  code-golf  string  code-golf  music  code-golf  arithmetic  array-manipulation  decision-problem  code-golf  math  rational-numbers  code-golf  code-golf  graphical-output  hardware  code-golf  math  number  code-golf  string  parsing  natural-language  code-golf  tips  brain-flak  code-golf  graph-theory  code-golf  number  polynomials  king-of-the-hill  code-golf  ascii-art  kolmogorov-complexity  animation  king-of-the-hill  code-golf  tips  code-golf  ascii-art  code-golf  string  array-manipulation  data-structures  code-golf  math  number  code-golf  string  base-conversion  binary  code-golf  decision-problem  graph-theory  code-golf  math  polynomials  code-golf  kolmogorov-complexity  physics  code-golf  sequence  number-theory  code-golf  math  integer-partitions  code-golf  array-manipulation  random  permutations  code-golf  string  decision-problem 

6
让我们进行一场坦克大战!
让我们进行一场坦克大战! 部分受到激光摧毁他们的启发 目的 您的任务是控制坦克。四处移动并射击2D战场中的其他坦克和障碍物。最后的坦克站将是赢家! 地图格式 您的战车将位于2D字段,该字段基于单位正方形的nby n网格。我将n根据提交的数量决定什么。每个方块只能包含以下一项: 一辆战车 一颗树 一块石头 一堵墙 没有 所有的障碍物和坦克完全填满了它们的空间,它们阻挡了所有击中它们的镜头,从而不会进一步破坏物体。 这是带有#= tank 的字段的示例;T= tree; R= rock; W= wall; .=没有n= 10 .....#.... ..T....R.. WWW...WWWW W......T.. T...R...Ww W...W..... W....W...T WWWWWW...R W......... WWWWWWRT.. 坐标格式x, y,其中x从左向右增加,并y增加下到上。左下角的坐标为0, 0。每个坦克可以移动到任何空白处并向任何方向射击。 地图动力学 您的战车不仅仅需要射击其他战车!如果它在地图上拍摄了东西,则可能会发生。 如果击中墙壁,则经过几次射击(从1到4不等),它将被摧毁 如果射中一棵树,它将立即被摧毁 如果向岩石开枪,则枪击将越过它并损坏其撞击的下一件事 一旦某物被破坏,它就不再在地图上(它将被替换为空)。如果击球摧毁障碍物,它将被阻挡并且不会进一步破坏其前进路线。 坦克动力学 每个坦克以life= 100 开头。坦克每次射击会life根据距离减少20-30 。可以使用delta_life=-30+(shot_distance*10/diagonal_map_length)(其中diagonal_map_length是(n-1)*sqrt(2))进行计算。此外,每个坦克life每回合可再生1 次。 转弯 将进行一些回合(一旦提交,我将决定)。在每个回合开始时,将随机生成一张地图,并将坦克放置在随机的空白位置。在每一回合中,每个战车都会以任意顺序转过一圈。在将每个战车转过一圈之后,将以相同的顺序再次进行转弯。这一回合一直持续到只剩下一辆坦克为止。该坦克将是赢家,他们将获得1分。然后,游戏将继续进行下一轮比赛。 …

6
史莱姆:领土战争
您是史莱姆集团。自然,成为粘液,您希望渗出尽可能多的区域。但是还有其他3个史莱姆想要做同样的事情。谁将是卓越的史莱姆? 描述 所有的史莱姆将被集中到一个竞技场。评委(即控制程序)将详尽列出所有可能的4种软泥组合,将它们放在桌子的四角,并观察哪些粘液在大部分区域渗出。 您的史莱姆每回合可以执行以下三种动作之一:展开,跳跃或合并。有关这些含义的进一步说明将在“ 输出”部分中提供。 棋盘/竞技场 竞技场将是一块正方形板(当前为8x8,但将来可能会改变)。这是正在进行的游戏的示例竞技场: 11111222 11111444 11.22444 .1222.4. 333.3244 33333.44 333...44 333....4 史莱姆用数字1到4(玩家1到4)表示,空白处用点(.)表示。最初,棋盘开始时是所有空白空间,除了左上角的单个玩家1的软泥,右上角的玩家2,左下角的玩家3和右下角的玩家4之外。 坐标由基于0的行和列索引表示,以提高代码的可读性。例如,坐标(3,6)代表第4行中的第7个正方形(在上面的示例中为a 4)。(这使访问正方形更加容易:board[coords.x][coords.y]。)这是一个直观的插图: (0, 0) (0, 1) (0, 2) (1, 0) (1, 1) (1, 2) (2, 0) (2, 1) (2, 2) 输入值 程序的输入将是您是哪个玩家(1、2、3或4),逗号(,),然后是棋盘/区域的内容(用逗号替换换行符)。例如,如果您在上述情况下是玩家3,则输入为: 3,11111222,11111444,11.22444,.1222.4.,333.3244,33333.44,333...44,333....4 输出量 您的程序必须输出4个整数。前两个分别是您要移动的粘液的行索引和列索引,后两个分别是您要将粘液移动到的行和列索引。 每转一圈有三种选择:展开,跳跃或合并。 传播 要扩散,目标坐标必须与要移动的粘液正好相距一个正方形,并且目标坐标处的正方形必须为空白空间。扩展时,将在目标坐标处创建新的史莱姆,并且不会删除旧的史莱姆。创建新的史莱姆之后,围绕此新史莱姆的8个方格中的所有敌方史莱姆都将转换为移动的玩家。 例如,对于图1中的棋盘,如果要输出玩家1 0 1 1 2,则结果将是图2中的棋盘。 1. …

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.