作为《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但给出了错误或不完备的解释都将视为不合格。
为了防止不止一位高手能正确解出谜题,我们会从中随机挑选一位获胜者。答案和比赛结果会在截止日期后的一个周内给出,并且我们也会公布所有的获胜者,让他们接受他人的尊敬。
如有任何疑问请在下方发表评论;如果你找到了答案,在截止日期前请不要公布出来。再次祝你们好运。
文章转载自 开源中国社区 [http://www.oschina.net]