Questions tagged «java»

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

1
有效迷宫数
给定一个WxH网格,有多少种可能的迷宫? 您对迷宫的了解: 网格正好是H正方形,W正方形是正方形。 共有三种类型的正方形:“开始”,“完成”和“空”。迷宫必须正好包含1个开始点和1个结束点,所有剩余的方块均为空。 整个迷宫周围都有墙壁。 除非违反以下规则,否则墙可以存在于任意两个正方形之间的边缘上: 从开始方块到完成方块必须存在一条路径。 因此,给定两个数字W和H,您必须返回一个数字,代表可能的正方形/墙壁配置的数目。您保证W*H > 1 例如,2x2迷宫具有完全100不同的可能配置。 这是一个代码高尔夫球,所以最短的答案是成功的!

5
风险,战争之道
介绍 在此游戏中,玩家使用自己的军队与其他玩家的军队作战,占领领土并成为最后一个站立的人。每回合,玩家都会得到基本数量的军队供其使用。但是,通过占领某些地区的领土,玩家可以增加此数目,从而在游戏后期拥有潜在的优势。(这与Warlight基本相同)。 所有机器人均应使用Java,C或C ++编写(我可能会包括其他语言,但没有相应的软件或经验)。您的提交没有必要扩展一个类,您可以创建函数,类,接口或其他任何必要的东西,并使用标准 API中的任何包或类。如果您打算创建一个类或接口,请考虑使用一个内部类或内部接口。 请不要尝试以编程方式更改竞赛中的控制器或其他提交的内容。 游戏玩法 总览 一个10x10的二维数组将模​​拟该板,每个元素/单元代表一个“区域”。将进行20轮,每轮最多1000圈。每回合,玩家将首先将他们拥有的军队部署到自己拥有的任何领土,然后有机会将其军队运送到附近的领土,以试图通过攻击对手的领土来占领对手的领土。玩家必须部署所有军队,但是如果需要,他们不必移动军队。 进攻/转移军队 如果玩家愿意,他/她可以从一个地区向八个相邻地区中的任何一个派遣军队。棋盘“环绕”,即,如果玩家的领土在一侧,则可以将其周围的军队转移到另一侧的相邻领土。从某一领土调动军队时,该领土上至少还应剩下一支军队。例如,如果一个领土包含五支军队,那么转移到不同领土的人数不得超过四支。如果一个领土包含一个领土,那支军队就无法行动。 如果玩家将n军队从一个领土派遣到他们拥有的另一领土,则该领土将获得n军队。 假设玩家将n军队从他/她的领地发送到其中有o军队的对立领地。o将n * .6舍入到最接近的整数;但是,与此同时,n将o * .7四舍五入为最接近的整数。以下规则将适用于是否占领了对方领土: 如果o达到零n且大于0,则玩家将接管领土,n军队。 如果同时n和o变为零,o将自动设置为1和领土不会被捕获。 如果o仍然大于0,则玩家所在区域的军队数量将增加,n并且对等区域将不会被占领。 奖金 将选择一组地区代表奖金;如果一个玩家拥有该组中所有领土,则该玩家每回合将获得额外的军队。 奖金的ID号代表不同的ID,值代表玩家可以接收的额外军队数量。每回合,奖励的值将是5到10之间的一个随机数(含5和10),并且现场将提供十个奖励,每个奖励都包含十个地区。 例如,如果一个玩家每回合会获得5个军队的所有领土都拥有价值8的加成,则该玩家将在下一回合及随后的回合中获得13个军队。但是,如果玩家失去组成奖励的一个或多个地区,则他/她每回合只会收到5个军队。 输入输出 您的程序应通过命令行参数进行输入,其格式如下: [id] [armies] [territories (yours and all adjacent ones)] [bonuses] ["X" (if first turn)] id并且armies都是整数。id是您的ID,armies是您需要部署到您的地区的军队数量。您必须部署分配给您的所有军队-不多也不少。 territories是一系列字符串,代表您所拥有的领土和与您不相邻的领土。字符串采用以下格式: [row],[col],[bonus id],[player id],[armies] row并col指出该领土所在的董事会的行和列,是该领土bonus id所属的奖励player id的ID ,是拥有该领土的玩家的ID,并且armies是该领土内的军队数量。这些都是数字。 bonuses是代表您可以利用的董事会奖金的一系列字符串。字符串采用以下格式: [id],[armies],[territories …
12 king-of-the-hill  c  c++  java 

8
水气球大战
该“山上之王”游戏是一种策略游戏,您必须在其中扔水气球,并避免被水溅到。目标是获得最多的积分。您将得到一张野外图和水气球的位置。您可以返回要在某个方向上击打水气球(如果距离足够近)或要在某个方向上移动。 具体来说:水气球将从(0, 0)30个单位的高度开始下降。如果水气球撞到地面,将随机选择一名选手输掉4点,并向靠近气球的人分配更多的重量。此外,最后一次击中气球的玩家将获得3分。因此,如果您直接向下击气球,您很可能会损失1分。 您将编写一个扩展类Player。您需要实现构造函数。构造函数如下所示: public Player1() { super(/* Some numbers */ 3, 3, 4) } 这些数字是doubles。第一个数字代表玩家的速度,第二个数字代表力量,第三个数字代表运气。这些数字的总和不得超过10,并且任何数字都不得小于或等于零。 其次,您必须实现该move方法。这是一个示例move方法: @Override protected Action move(Map<Player, Point2D> map, Balloon b) { // Get my own location Point2D myself = map.get(this); // If I'm close enough to the balloon // then hit the balloon if (myself.distanceSq(b.getLocation()) …

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 这样操作本身就只能操纵或访问整数部分(因此也不能在操作过程中的任何时候都与double进行比较),并且结果是完全相同的(对于非数字结果,例如,功能上是等效的NaN)好像相应的数学运算已直接应用于double。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

11
火箭机器人KOTH
火箭机器人 那一年是3024年。人们已经变得资源稀缺,无法在战争中冒险,因此战斗已经转移到了机器人身上。您的任务是构造一个与众不同的机器人,该机器人的火箭将摧毁敌人的敌人,击落所有即将到来的威胁。 游戏玩法 机器人 游戏玩法在10x15的网格上进行。您的机器人位于底部边缘之外,并且在网格的位置6,7和8处具有三个插槽。您的对手位于网格的顶部,在您的对面有三个插槽。 火箭队 从任何一个插槽中,您都可以发射火箭,前提是该插槽尚未销毁。火箭由创建时给出的方向列表组成,一旦发射,这些方向就无法更改。每转一圈,火箭将消耗列表的顶部,并朝该方向移动。火箭同时移动。如果两枚火箭以相同的砖块结尾,它们都会爆炸。如果火箭用完了命令,它将爆炸。如果火箭用尽燃料,则在移动100次后会爆炸。火箭爆炸时,它将在该磁贴中保留5圈,从而导致其他任何在那里移动的火箭也爆炸。 注意: 由于同时运动,两个火箭可以彼此通过而不会爆炸,只要它们不都在相同的瓦片中结束转弯即可。 目标 每场比赛的目的都是在保持对手生存的同时消灭对手的位置。可以从您拥有的任何活动插槽中发射火箭,并在发射前为其指定路径。您每转一圈发射一枚火箭,这意味着火箭将移动两次,然后再发射另一枚。决斗持续200回合,或者直到一个机器人插槽全部被破坏。 计分 比赛结束时,您每拥有一个实时角子机就获得1分,而您摧毁的每个对手角子机则得到1分。这意味着这是一场零和游戏,每场比赛将获得6分。 轮循将运行,以便每个机器人都彼此面对一次。如果有任何机器人使用RNG,则每个对决将是1000次对决。 实作 比赛代码可以在这里找到:https : //github.com/Cain93/RocketBots 每次提交都应扩大Bot班级。您必须重写该fireRocket方法。此方法接收Rocket[][]代表游戏板的Rockets的网格数组。你总是位于网格的底部,与斑点插槽[-1][6],[-1][7],[-1][8]。在网格上,未占用的地点将用表示null。如果磁贴中存在火箭,则可以通过访问该dis字段来识别它属于谁。“ ^”是您的火箭,“ v”是您的对手。 您必须返回一个给出了火箭说明的整数链接列表。要向上移动,请使用0。要向上和向右移动,请使用1,就在右边,使用2,依此类推,一直到7向上和向左。火箭将按您推动整数的顺序移动。例如,以下代码将使火箭向上旋转几圈,使之弯曲几圈,然后爆炸。 LinkedList<Integer> moves = new LinkedList<Integer>(); moves.push(0); moves.push(0); moves.push(0); moves.push(1); moves.push(7); moves.push(1); moves.push(7); 要更改从哪个插槽发射火箭,请更改curSlot字段。0是您最左边的插槽,2是您最右边的插槽。要检查插槽是否已损坏,请使用getSlot(int slotNumber)。 如果火箭在插槽上结束转弯,则该插槽将被销毁。您无需手动引爆火箭。 注意:火箭在发射出的插槽位置生成,但在评估碰撞之前会移动一次。因此,如果您从插槽0发射火箭,而第一步是正确的(2),那么您将摧毁自己的中间插槽。但是,向上和向右(1)是安全的举动。 如果要命名您的机器人,请覆盖该name()方法。 机器人将为每个决斗重新构建,因此所有静态变量都将被重置。 祝好运! 愿您的火箭真实飞行,而您的对手不过是闷烧的金属碎片。 暗示: 与试图击落对手的火箭相比,有目的地引爆火箭以产生爆炸是一种更容易防御的防御方法。 机器人例子 package bots; import java.util.LinkedList; import …

7
简单的Pazaak(旧共和国骑士团的《星球大战》纸牌游戏)
Pazaak是来自《星球大战》世界的纸牌游戏。它与BlackJack相似,两名玩家互相争夺,试图在不超过20名的情况下达到20名。每个玩家都有自己的四张牌的“副牌”,可以用来修改得分。 排行榜 截至2015年6月17日格林尼治标准时间16:40 编辑:Neptor被取消作弊资格。分数将尽快修复。 NEPTR:〜424,000 辛辛那提小子(Cincinnati Kid):〜422,000 内斯特:〜408,000 奥斯丁力量:〜405,000 巴斯蒂拉:〜248,000 愚蠢的谨慎玩家:〜107,000 傻大胆的玩家:〜87,000 模拟帕扎克杯季后赛 将尽快更新。 第一回合-内斯特vs巴斯蒂拉&奥斯汀·鲍尔斯vs辛辛那提小子 第二轮-内斯特vs奥斯汀·鲍尔斯&辛辛那提小子vs巴斯蒂拉 机械学 游戏是依次进行的。从主(房屋)副牌中拿出一张牌。娱乐场甲板可容纳40张牌:1到10的四份副本。发牌后,他们可以选择结束自己的回合并在下一回合接收新牌,保持其当前值,或者从侧甲板和站在新的价值上。玩家一决定他们想做什么之后,玩家二重复该过程。 一旦两个玩家都走了,手就被评估了。如果一个玩家被炸开了(超过20个),则另一名玩家将获胜,前提是他们也没有被炸开。如果一位玩家选择站立,而另一位玩家的手牌价值更高,则另一位玩家将获胜。如果两个玩家都选择站立,则手牌价值较高的玩家将获胜。如果出现平局,则任何玩家都不会赢。 如果不满足获胜条件,比赛将重复进行。如果玩家选择结束回合,则他们将收到一张新卡并且可以做出新选择。如果他们选择站起来,或者从侧甲板打出了一张纸牌,他们将不会获得新的纸牌,也无法选择新的动作。 这样继续游戏,直到一名玩家赢得比赛。游戏以五组中的三组中的最佳状态进行。 为什么选择“简单” Pazaak? 在《星球大战》世界中,Pazaak参与赌博。虽然包含这样的系统会为游戏增加更多的动态性,但是对于首次参加KoTH比赛来说,这有点复杂。 “真实” Pazaak侧甲板也由玩家自己提供,可以包括许多不同的牌选择,例如负牌,正负牌,翻牌,双牌和决胜局牌。这些也将使游戏变得更有趣,但是将需要一个赌博界面,并且将需要更多的竞争对手。在这个简单的Pazaak游戏中,每个玩家都拥有相同的侧甲板:从1到5的两个副本,从中随机选择四个。 根据游戏的成功程度,我可能会努力开发一个高级版本,在该版本中可以进行赌博和自定义侧甲板。 玩家们 该游戏的玩家将是您设计的机器人。每个漫游器都需要扩展Player类,导入Mechanics包并驻留在player包中,如下所示: package Players; import java.util.Collection; import Mechanics.*; public class DemoPlayer extends Player { public DemoPlayer() { name = "Your Name Here"; } …

6
N个碱基中的回文数
给定一个非负整数n >= 0,请永远输出x_i >= 3以完全n不同b的底数为回文数的整数序列,底数可以是2 <= b <= x_i-2。 这基本上是OEIS A126071的反函数,在此输出中该序列中的哪些索引具有值n。有点不同,因为我更改了它,所以您忽略了碱基b = x_i-1, x_i, x_i+1,因为这些碱基的结果始终是相同的(值始终是回文率,或者始终不是)。此外,偏移量也不同。 x_i限制为数字,>= 3因此每个结果的第一项n为A037183。 请注意,输出格式是灵活的,但是应该以很好的方式分隔数字。 例子: n seq 0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ... 1 5 7 8 9 12 13 14 22 23 25 29 35 …
10 code-golf  sequence  base-conversion  palindrome  code-golf  array-manipulation  matrix  code-golf  string  ascii-art  code-golf  ascii-art  physics  code-golf  number  sequence  fibonacci  code-golf  ascii-art  packing  code-golf  string  hexadecimal  code-challenge  restricted-source  decision-problem  binary  code-golf  code-golf  code-golf  stack-exchange-api  code-golf  string  parsing  generation  data-structures  code-golf  kolmogorov-complexity  graphical-output  code-golf  array-manipulation  integer  generation  data-structures  code-golf  number  random  probability-theory  king-of-the-hill  java  minesweeper  code-golf  string  kolmogorov-complexity  animation  code-golf  string  code-golf  code-golf  quine  code-golf  internet  code-golf  arithmetic  base-conversion 

7
构造雅可比矩阵
取未知向量,并应用一些通用的微分函数。的雅可比然后通过矩阵给出,使得: 例如,假设m=3和n=2。然后(使用基于0的索引) 雅可比f然后 这个挑战的目标是打印这个雅可比矩阵。 输入值 你的程序/功能应该采取作为输入两个正整数m和n,其代表的部件的数目f和u分别。输入可以来自任何所需的来源(stdio,功能参数等)。您可以指定接收顺序,对于输入的答案必须一致(请在答案中指定)。 输出量 代表雅可比矩阵的东西。此表示形式必须明确拼出Jacobian矩阵的所有元素,但是每个术语的确切形式都是实现定义的,只要明确区分什么以及关于什么进行区分,并且每个条目均以逻辑顺序输出。用于表示矩阵的示例可接受形式: 列表列表,其中外部列表​​的每个条目都对应于雅可比行的一行,内部列表的每个条目都对应于雅可比行的列。 字符串或文本输出,其中每行是Jacobian行,每行中由定界符分隔的条目对应于jacobian的列。 矩阵的一些图形/视觉表示。示例:使用MatrixForm命令时Mathematica显示的内容 其他每个条目都已存储在内存中并且可以查询的密集矩阵对象(即,您不能使用生成器对象)。例如,Mathematica如何在内部表示Matrix对象 条目格式示例: 形式为的字符串d f_i/d u_j,其中i和j是整数。例如:d f_1/d u_2。请注意,d和f_1或之间的这些空格x_2是可选的。此外,下划线也是可选的。 形式为d f_i(u_1,...,u_n)/d u_j或的字符串d f_i(u)/d u_j。也就是说,功能组件的输入参数f_i是可选的,并且可以明确地拼写出来或以紧凑形式保留。 格式化的图形输出。例如:计算表达式时Mathematica会打印什么D[f_1[u_,u_2,...,u_n],u_1] 您可以选择起始索引u和目标索引f(请在答案中指定)。输出可以是任何所需的接收器(stdio,返回值,输出参数等)。 测试用例 以下测试用例使用约定m,n。索引显示为从0开始。 1,1 [[d f0/d u0]] 2,1 [[d f0/d u0], [d f1/d u0]] 2 2 [[d f0/d u0, d f0/d u1], [d f1/d u0, d …
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.