game.java

来自「著名的uncle Bob的Agile software development的」· Java 代码 · 共 45 行

JAVA
45
字号
public class Game
{
	public int score()
	{
		return scoreForFrame(itsCurrentFrame);
	}

	public void add(int pins)
	{
		itsScorer.addThrow(pins);
		adjustCurrentFrame(pins);
	}

	private void adjustCurrentFrame(int pins)
	{
    if (lastBallInFrame(pins))
      advanceFrame();
    else
      firstThrowInFrame = false;
	}

  private boolean lastBallInFrame(int pins)
  {
    return strike(pins) || !firstThrowInFrame;
  }

  private boolean strike(int pins)
  {
    return (firstThrowInFrame && pins == 10);
  }

  private void advanceFrame()
	{
		itsCurrentFrame = Math.min(10, itsCurrentFrame + 1);
	}

	public int scoreForFrame(int theFrame)
	{
		return itsScorer.scoreForFrame(theFrame);
	}

	private int itsCurrentFrame = 0;
	private boolean firstThrowInFrame = true;
	private Scorer itsScorer = new Scorer();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?