Java谜题5:球(ball)


在今天的Java拼图中,我们玩了一个非常简单的游戏。我扔了一个球,如果你接到它,就得分。你的总得分是你接球的次数。想想看还有另一种得分方式吗?

package game;
 
public final class Game {
 
    private final Ball ball = new Ball();
    private volatile long score;
 
    public final class Ball extends Throwable {
        private volatile long caught;
 
        private Ball() {
        }
 
        public synchronized void caught() {
            if (caught++ < score++) {
                // The goal is to reach this line
                System.out.println(
"You cheated!");
            }
        }
    }
 
    public void play() throws Ball {
        throw ball;
    }
}

与往常一样的规则适用; 您必须在启用安全管理器(-Djava.security.manager)的情况下运行。您的解决方案也必须在play包中。不允许在游戏包中放入任何其他内容。。