Java 解惑: 你能通过改变一个单词来解决这个bug吗?

jopen 10年前

Java 解惑: 你能通过改变一个单词来解决这个bug吗? 

作为《Java解惑》这本书的脑残粉,我们一直想要寻找新的java谜题以满足我们的好奇心。但是很长时间以来,我们并没有搜集到比较满意的题目, 所以为了向书中那些谜题致敬,我们决定自己造一个。解谜的好处就像书中所说的“一旦你解决了这些谜题,那些曾经愚弄过最具经验的Java程序员的隐晦且有 违直觉的语言行为,将再也无法把你骗过”,除此之外,解谜过程所带给我们的快乐也是难以比拟的。为了增加解谜的乐趣,我们决定从能完美解决问题的获胜者中 挑选出一位,奖励其250美元的Amazon礼品。赶紧行动起来吧,不过你需要正确地解释出错的根源。希望此时你的“功夫”已经达到比较高的境界了,祝好运。

基本信息
场景:有两支棒球队正在比赛,互有得分,突然“磅”的一声,game over了。好了,大侦探,你的任务就是找出比赛终止的原因。
项目结构如下:

.  +-- Main.java  +-- simulator  |   +-- MatchSimulator.java  |   +-- SimulationVerifier.java  +-- data  |   +-- BoxScore.java  |   +-- BasketballMatch.java

main类会调用两个Simulator线程,data目录存放了定义分数和比赛的数据结构,其余的自己看吧。

比赛说明
1.前往https://github.com/takipi/puzzle-bballsim,将代码下载下来编译并运行,看看事故现场。
2.通过只改变一个keyword/token/identifier来修复这个bug,这里的改变指的是替换、增加、或删除
3.解释bug的原因以及如何修复
4.请在September 12, 12pm (PDT)前,将你的解决办法(solution)和解释(explanation)发送到hello@takipi.com
注意:你的解释是评审的重要部分,就算你修复了bug但给出了错误或不完备的解释将视为不合格。

为了防止不止一位高手能正确解出谜题,我们会从中随机挑选一位获胜者。答案和比赛结果会在截止日期后的一个周内给出,并且我们也会公布所有的获胜者,让他们接受他人的尊敬。

如有任何疑问请在下方发表评论;如果你找到了答案,在截止日期前请不要公布出来。再次祝你们好运。

来自:takipiblog