Questions tagged «java»

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

7
金笔!(点和盒)
这是“点和盒子”(又名“笔猪”)挑战山丘之王。游戏很简单,轮到您只需在空的栅栏上画一条线。每次完成一个正方形,您都会得到一个分数。另外,由于我们按照锦标赛的规则进行比赛,如果您在转弯中至少完成一个平方,则您将获得一个额外的转弯。这是一次循环锦标赛,每个漫游器在9x9网格上互相对战两次,每次12次。看看这两个重量级巨人之间的比赛,ChainCollector在其中做得很出色,成为了卫冕冠军Asdf的肉类: 规则 每次移动0.5秒时间限制。 不会干扰其他机器人。 使用PigPen.random()和PigPen.random(int)获得随机性。 不写入文件。 每次对手改变时(每12回合),机器人及其所有持久性数据将被重置。 机器人 每个机器人都扩展Player.java: package pigpen; public abstract class Player { public abstract int[] pick(Board board, int id, int round); } Board是游戏板,主要用来让您进入Pen课程,并且id是您的玩家ID(告诉您是第一还是第二,它round告诉您在哪个回合中与同一个对手(1或2)对战。返回值为an int[],其中第一个元素是penID(1索引),第二个元素是fenceID(0索引)。请参阅参考资料Pen.pick(int),以轻松生成此返回值。有关播放器和JavaDoc的示例,请参见Github页面。由于我们仅使用正方形网格,因此忽略与六边形相关的任何函数和字段。 怎么跑 从Github下载源代码。 编写您的控制器机器人(确保包括package pigpen.players)并将其放入src/文件夹中; 用编译javac -cp src/* -d . src/*.java。运行java pigpen.Tournament 4 9 9 false(可以更改最后两个数字以调整网格大小。仅true当您希望使用pp_record软件时,才应将最后一个变量设置为。) 分数 连锁收藏家:72 助理秘书长:57 懒骨头:51 装订器:36 = LinearPlayer:18 …

28
做一个简单的自动包装
(注意:这是我有史以来第一个关于高尔夫的代码问题,但是据我所知,没有人能完全做到这一点,所以我应该很好。) 您的任务是制作一个程序或函数,该程序或函数接受一个字符串s和一个整数n,并返回或输出包装成多行的文本。每个单词必须全部在一行上;即中间没有字。每行的n字符长度不能超过字符,并且每行中必须包含尽可能多的单词。 例: s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eget erat lectus. Morbi mi mi, fringilla sed suscipit ullamcorper, tristique at mauris. Morbi non commodo nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed at iaculis mauris. Praesent a …
22 code-golf  string  code-golf  string  parsing  apl  math  primes  integer  fastest-code  code-golf  math  primes  integer  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  array-manipulation  code-golf  number  code-golf  sequence  code-golf  math  arithmetic  code-golf  date  conversion  code-golf  geometry  combinatorics  grid  code-golf  string  code-golf  counting  java  code-golf  chess  code-golf  path-finding  conversion  atomic-code-golf  logic-gates  code-golf  fibonacci  code-golf  ascii-art  fractal  code-golf  quine  code-golf  string  code-golf  array-manipulation  decision-problem  code-golf  quine  code-golf  code-challenge  array-manipulation  code-challenge  word-search  code-golf  binary  conversion  code-golf  code-golf  restricted-source  code-golf  kolmogorov-complexity  restricted-source  code-golf  kolmogorov-complexity  random  animation 

9
山丘之王-骗子的骰子
说谎者的骰子是一个相当简单的骰子游戏。我看到了一些不同的规则变体,但这是我最熟悉的版本: 每个玩家以5d6开始 除了在回合结束时计算骰子时,每个玩家都可以看到自己的骰子,但看不到任何对手的骰子 在任何给定回合开始时,所有玩家都掷出他们当前拥有的任何骰子 然后,一个玩家(通常是前一轮的获胜者,或者是上次开始的玩家左侧的玩家;我们将前者用于此KotH;随机玩家在第一轮开始)猜测桌子上有多少个特定数字(很野生) 竞标继续向右移动,每次竞标都更高(例如,3个5、3个6和4个2都高于3个4个,但3个3个不是; 4个也更高,但竞标可能会使您处于坏处); 直到任何玩家称他们之前的玩家为骗子 在这一点上,所有玩家都展示自己的骰子,并在桌子上一并计算最后一次竞标的次数 如果总价低于出价,则出价的玩家必须给称他们为说谎者的玩家致死,否则,称出价者为说谎者的玩家必须给出价者致死(这样,出价者获胜。如果他们的数量至少等于他出价的数量,则不必是确切的数量) 当骰子用完时,您会输 最后一名站长获胜 例如: 玩家一有1,1,2,4,6 玩家二有1,2,2,3,5 玩家三有1,3,3,4,6 玩家一:三分之六。 玩家二:四分之二。 玩家三:四个三分。 玩家一:五分之二。 玩家二:六个二。 玩家三:六个三分。 玩家一:六四。 玩家二:骗子! 他们露出自己的骰子,并数出骰子(因为有些是野生的)和四数。 事实证明,实际上恰好有六个四。 因此,第二个玩家给一个玩家一个死亡。 他们重新投掷,第一人开始下一轮比赛。 您必须编写一个机器人才能玩此游戏。它必须实现以下抽象java类: public abstract class Player { public Player() {} public String toString() { return this.getClass().getSimpleName(); } public abstract String bid(int yourId, int[] …

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

8
Java中引发IllegalArgumentException的最短代码
Okey,我们都知道在Java中引发IllegalArgumentException的正常方法: throw new IllegalArgumentException(); // 37 characters 但是必须有更短的方式(以更少的字符为单位)。我们如何用更少的代码产生java.lang.IllegalArgumentException? 该代码段必须在Java 7中编译并运行。 没有导入/外部软件包(例如,不使用java.util.Arrays.toString()) 唯一的例外:java.lang,因为它是自动导入的。 您可以添加自己的方法/类。 它必须抛出java.lang.IllegalArgumentException 编辑:错误输出(stacktrace)必须将其命名为java.lang.IllegalArgumentException,因此没有其子类。 要有一个起点,请执行以下操作: class Titled { public static void main(String[] args) { throw new IllegalArgumentException(); } }
21 code-golf  java 

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

8
反向插入排序
目的 根据“ 插入排序”对列表进行排序的动作,生成原始的加扰列表。原始列表将包含从0到N-1(包括)的所有数字,其中N输入的大小。 输入项 一个包含对列表进行排序的必要动作的列表。每个值代表由原始数字(加扰的数字)移位到其右位置的插槽数量,请记住,此过程是从左到右。输入列表 中(0索引)位置的值i将介于0和之间i。 您不需要处理无效的输入,在这种情况下,任何行为都是可以接受的(崩溃,无限循环等)。 输出量 混乱的名单 逐步生成动作 Scrambled List | Moves to sort [4,0,2,1,3,5] | [0, , , , , ] #4 stay in place [4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left [0,4,2,1,3,5] | [0,1,1, , , ] #2 …
19 code-golf  array-manipulation  code-golf  code-golf  animation  code-golf  restricted-source  code-golf  java  code-golf  decision-problem  graph-theory  code-golf  conversion  electrical-engineering  code-golf  ascii-art  code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

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日之前提交的机器人测试结果: …

6
当try块中的所有内容都已被捕获时达到catch
我猜这仅限于Java和C#。 在此编程难题中,您将产生Exception可被捕获但又在catch块末尾再次抛出的。 try { while(true) try { // you are only allowed to modify code between this try { } brackets } catch(Exception ex2) { } } catch(Exception ex1) { // your goal is to reach this catch block by modifying the code ... // in the inner try block …

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

9
不对称KOTH:抓住猫(捕手的线)
不对称的KOTH:捉住猫 更新: 由于Controller.java没有捕获到异常(仅错误),因此更新了主要文件(包括新的次要任务)。现在,它确实可以捕获错误和异常并打印它们。 这个挑战包括两个线程,这是捕手线程,猫线程可以在这里找到。 控制器可在此处下载。 这是不对称的KOTH:每个提交物都是猫还是捕手。每对猫和捕手之间都有游戏。猫和捕手的排名各不相同。 捕手 六角形网格上有一只猫。您的任务是尽快捕获它。每转一圈,您都可以在一个网格单元上放置一个水桶,以防止猫能够去那里。但是猫不是(也许)那么笨,每当您放置一个桶时,猫就会移动到另一个网格。由于网格是六角形的,因此猫可以向6个不同的方向移动。您的目标是用水桶包围猫,速度越快越好。 猫 您知道捕手想通过在您周围放水桶来接住您。当然,您会尝试逃避,但是由于您是一只懒惰的猫(就像猫一样),您当时确实迈出了一步。这意味着您不能待在同一个地方,而是必须移至周围的六个景点之一。每当您看到捕手放了一个新的水桶时,您就会转到另一个牢房。当然,您会尽力逃避。 格网 网格是六边形的,但是由于我们没有六边形的数据结构,因此我们采用一个11 x 11二维二维数组,并模仿该六边形的“行为”,即猫只能在6个方向上移动: 拓扑是环形的,这意味着如果您踩到阵列“外部”的单元格,您将被转移到阵列另一侧的相应单元格。 游戏 猫从网格中的给定位置开始。捕手可以先走,然后猫及其捕手交替走动,直到猫被抓到为止。步骤数是该游戏的分数。猫试图获得尽可能高的分数,捕手试图获得尽可能低的分数。您参与的所有游戏的平均总和就是您提交的分数。有两个单独的等级,一个用于猫,一个用于捕手。 控制者 给定的控制器是用Java编写的。作为捕手或猫,您每个人都必须完成一个Java类(已经有一些原始示例)并将其放在players包中(并更新Controller类中的猫/捕手列表),但是您也可以编写该类中的其他功能。控制器附带了简单的cat / catcher类的每两个工作示例。 该字段是一个11 x 11二维int数组,用于存储单元格当前状态的值。如果一个单元格为空,则它具有值0;如果有一只猫,则它具有值-1;如果有一个存储桶,则有一个值1。 您可以使用一些给定的功能:isValidMove()/ isValidPosition()用于检查您的移动(类别)/位置(类别)是否有效。 每次轮到您时,takeTurn()都会调用您的函数。参数包含当前网格的副本,并具有类似于read(i,j)读取处的单元格的方法(i,j),以及isValidMove()/ isValidPosition()检查答案是否正确的方法。这也可以管理环形拓扑的环绕,这意味着即使网格只有11 x 11,您仍然可以访问单元格(-5,13)。 该方法应返回一个int包含两个元素的数组,这些元素代表可能的移动。对于猫来说,{-1,1},{0,1},{-1,0},{1,0},{0,-1},{1,-1}它们代表了猫想去的位置的相对位置,而捕手则返回了他们想要放水桶的位置的绝对坐标{i,j}。 如果您的方法产生无效举动,则您的提交将被取消资格。如果在您的目的地已经是一个铲斗或不允许该举动/目的地已被占用(作为猫),或者如果已经有一个铲斗/猫(作为捕手),则该举动被视为无效。您可以使用给定的功能事先检查一下。 您的提交应该工作得相当快。如果您的方法每个步骤花费的时间超过200毫秒,则也将被取消比赛资格。(最好少得多...) 程序可以在步骤之间存储信息。 意见书 您可以根据需要进行任意数量的提交。 请不要显着改变您已经提交的提交。 请每个提交一个新的答案。 每个提交最好都具有唯一的名称。 提交内容应包括您班级的代码以及可以告诉我们您提交内容如何工作的描述。 您可以在<!-- language: lang-java -->源代码前写一行,以自动突出显示语法。 计分 所有猫都将与所有捕手竞争相同的次数。我将尝试经常更新当前分数,当活动减少时将确定获胜者。 这项古老的Flash游戏启发了这一挑战 感谢@PhiNotPi进行测试并提供一些建设性的反馈。 当前分数(每对100场比赛) Name …

3
编写Java代码以检测JVM版本
目的是编写Java代码来检测JVM版本,该代码依赖于兼容性更改,副作用,错误和/或未定义行为,这些行为在一个版本中以某种方式起作用,而在另一版本中以另一种方式起作用。此外,该代码应至少具有一点可读性,而不会牺牲空格和清晰的变量名。 为了确保这一目标,确切的正式规则是: 该代码必须用Java编写,并输出运行它的JRE版本。 该代码不得使用任何专门用于检测Java版本或免费提供JDK或JRE版本的JDK或JRE API。 该代码不得使用反射。 该代码仅在Hotspot Java SE 5、6和7中才需要,但在其他JVM中也可以。 该代码不得在类路径中使用任何第三方库。 该代码不得启动任何其他进程,无论是否是Java。 该代码不得使用环境变量。 该代码不得搜索文件系统以查找预先存在的文件或文件夹。 该代码必须包含在一个文件中,并通过public static void main(String[] args)或调用public static void main(String... args)。 该代码不得使用JRE中存在的任何非公共API。 该代码在执行期间不得生成任何NoClassDefFoundError,NoSuchMethodError,ClassNotFoundException或NoSuchMethodException。 该代码应在与Internet或任何本地网络断开连接的系统中运行。 您应该提供一个解释,说明为什么它在一个版本中会以一种方式运行,而在另一个版本中会以另一种方式运行。 计分 衡量最佳解决方案的方法是max(n / s),其中n是在不违反任何这些规则的情况下检测到的不同Java版本的数量(至少是版本5、6和7),而s是词汇标记的数量在解决方案中。

3
Java Asterisk矩形[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 2年前关闭。 对于我的CS课,我的讲师给我们分配了一个任务,即创建一个由星号制成的矩形,并用Java在其中绘制出对角线。 他还告诉我们将其写入尽可能少的字节中。我已经将其缩减为190个字节,但是我需要找到一些来简化此代码,甚至更多以减少字节。谁能帮我这个? 这段代码是有效的: interface d{static void main(String[]a){for(int z=0,w=new Byte(a[0]),h=new Byte(a[1]);z<h*w;){int y=z/w,x=z++%w;System.out.print((x>w-2)?"*\n":(y%(h-1)*x*((y-x)%3)==0)?"*":" ");}}} 输入为10 10。 输出: ********** ** * * * * * * ** * * * * ** * * * * * * ** * * * * ** * * * * * * …
15 tips  java 

9
不对称KOTH:抓住猫(猫螺纹)
不对称的KOTH:抓住猫 更新: 由于Controller.java没有捕获到异常(仅错误),因此更新了主文件(包括新的子任务)。现在,它确实可以捕获错误和异常并打印它们。 这个挑战包括两个线程,这是cat线程,catcher线程可以在这里找到。 控制器可以下载 此处。 这是一个不对称的KOTH:每个提交都是猫还是一个捕手。每对猫和捕手之间都有游戏。猫和捕手的排名各不相同。 捕手 六角形网格上有一只猫。您的任务是尽快捕获它。每转一圈,您都可以在一个网格单元上放置一个水桶,以防止猫能够去那里。但是猫不是(也许)那么笨,每当您放置一个桶时,猫都会移动到另一个网格。由于网格是六角形的,因此猫可以向6个不同的方向移动。您的目标是用水桶包围猫,速度越快越好。 猫 您知道捕手想通过在您周围放水桶来接住您。当然,您会设法逃避,但是由于您是一只懒惰的猫(就像猫一样),您当时确实迈出了一步。这意味着您不能待在同一个地方,而是必须移至周围的六个景点之一。每当您看到捕手放了一个新的水桶时,您就会进入另一个牢房。当然,您尝试逃避的时间越长越好。 格网 网格是六边形的,但是由于我们没有六边形的数据结构,因此我们采用一个11 x 11正方形的2d数组并模仿该六边形的“行为”,即猫只能在6个方向上移动: 拓扑是环形的,这意味着如果您踩到阵列“外部”的单元格,您将被转移到阵列另一侧的相应单元格。 游戏 猫从网格中的给定位置开始。捕手可以先走,然后猫及其捕手交替走动,直到猫被抓到为止。步骤数是该游戏的分数。猫试图获得尽可能高的分数,捕手试图获得尽可能低的分数。您参与的所有游戏的平均总和就是您提交的分数。有两个单独的等级,一个用于猫,一个用于捕手。 控制者 给定的控制器是用Java编写的。作为捕手或猫,您每个人都必须完整地实现一个Java类(已经有一些原始示例)并将其放置在players包中(并更新Controller类中的猫/捕手列表),但是您也可以编写该类中的其他功能。控制器随附了简单的cat / catcher类的每两个工作示例。 该字段是一个11 x 112D int数组,用于存储单元格当前状态的值。如果一个单元格为空,则它具有值0;如果有一只猫,它具有值-1;如果有一个存储桶,则有一个值1。 您可以使用一些给定的功能:isValidMove()/ isValidPosition()用于检查您的移动(cat)/位置(catcher)是否有效。 每次轮到您时,takeTurn()都会调用您的函数。参数包含当前网格的副本,并具有类似于read(i,j)读取处的单元格的方法(i,j),以及isValidMove()/ isValidPosition()检查答案是否正确的方法。这也可以管理环形拓扑的环绕,这意味着即使网格只有11 x 11,您仍然可以访问单元格(-5,13)。 该方法应返回一个int包含两个元素的数组,这些元素代表可能的移动。对于猫来说,{-1,1},{0,1},{-1,0},{1,0},{0,-1},{1,-1}它们代表了猫想去的位置的相对位置,而捕手则返回了他们想要放水桶的位置的绝对坐标{i,j}。 如果您的方法产生无效举动,则您的提交将被取消资格。如果在您的目的地已经是一个铲斗或不允许该举动/目的地已经被占用(作为猫),或者如果已经有一个铲斗/猫(作为捕手),则该举动被视为无效。您可以使用给定的功能事先检查一下。 您的提交应该相当快地工作。如果您的方法每个步骤花费的时间超过200毫秒,则也将被取消比赛资格。(最好少得多...) 程序可以在步骤之间存储信息。 意见书 您可以根据需要进行任意数量的提交。 请不要显着改变您已经提交的内容。 请每个提交一个新的答案。 每个提交最好都具有唯一的名称。 提交内容应包括您班级的代码以及可以告诉我们您提交内容的工作方式的描述。 您可以在<!-- language: lang-java -->源代码前写一行,以自动突出显示语法。 计分 所有猫都将与所有捕手竞争相同的次数。我将尝试经常更新当前分数,当活动减少时将确定获胜者。 这项古老的Flash游戏启发了这一挑战 感谢@PhiNotPi进行测试并提供一些建设性的反馈。 …

3
Brainfuck中的按位运算符
您的任务是为以下每个二进制运算符创建一个Brainfuck程序。每个程序应从输入中获取一个或两个8位数字(A和B)并计算指定的运算: A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 您不必全部实施5。得分的计算方式为: #totalCharacters + {4000 * #problemsNotCompleted} 因此,有效分数是从零(最佳)到20,000(未完成)。 我不在乎您将结果存储在哪里,也不管您是否保留输入。假设8位单元以及仅在右侧需要的空单元数。 您可能会认为数字已经在最适合您的任何内存位置中,因此您无需担心IO操作。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

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.