敏捷软件开发:原则模式与实践 一次编程实践 保龄球记分代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了敏捷软件开发:原则模式与实践 一次编程实践 保龄球记分代码相关的知识,希望对你有一定的参考价值。


//类Score
package com.java.bowlingscore;
public class Scorer {
public void addThrow(int pins){
itsThrows[itsCurrentThrow++]=pins;
}
public int scoreForFrame(int theFrame){  
int score = 0;
ball = 0;
for(int currentFrame=0;currentFrame<theFrame;
currentFrame++){
if(strike()){
score +=10 + nextTwoBallsForStrike();
ball++;
}else if(spare()){
 score+=10+nextBallForSpare();
 ball+=2;
}else{
score +=twoBallsInFrame();
ball+=2;
}
}
return score;
}
private boolean strike(){
return itsThrows[ball]==10;
}
private boolean spare() {
return (itsThrows[ball]+itsThrows[ball+1]==10);
}
private int nextTwoBallsForStrike(){
return itsThrows[ball+1]+itsThrows[ball+2];
}
private int nextBallForSpare(){
return itsThrows[ball+2];
}
private int twoBallsInFrame(){
return itsThrows[ball]+itsThrows[ball+1];
}
private int ball;
private int[] itsThrows = new int[21];
private int itsCurrentThrow=0;
}

类Game

package com.java.bowlingscore;
public class Game {
public int score(){
return scoreForFrame(itsCurrentFrame);
}
public int getCurrentFrame(){        
return itsCurrentThrow;
}
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 Scorer itsScorer = new Scorer();
private boolean firstThrowInFrame=true;
private int itsCurrentFrame=1;
private int itsCurrentThrow=0;
}


一个晚上看着书一步一步敲出的,在代码重构方面学习到了不少,明天自己试着写一个.

以上是关于敏捷软件开发:原则模式与实践 一次编程实践 保龄球记分代码的主要内容,如果未能解决你的问题,请参考以下文章

敏捷软件开发:原则模式与实践(笔记)

读书笔记-敏捷软件开发 原则,模式与实践

敏捷软件开发:原则模式与实践总结

敏捷开发:原则,模式与实践——第8章 单一职责原则SRP

编程和实践

初级程序员进阶