【发布时间】:2016-08-05 06:35:37
【问题描述】:
我目前正在开发一个保龄球项目,并且大部分项目都在工作。我有一个名为 BowlingGameTest 的 junit 测试文件,一个名为 Game 的类处理大部分得分,一个名为 Play 的类处理大部分游戏本身。据我所知,唯一需要添加的是第 10 帧细节。现在,如果我“击球”,那么第 10 帧就像第 1-9 帧一样结束。然而,它需要再给我一个碗,并根据我下一次投掷的“碗”,可能还有另一个碗。为第 10 帧实现此功能的最佳方法是什么?
这是我目前在 Play 课上的内容:
import java.util.Random;
public class Play {
public static void main(String[] args) {
Game g = new Game();
int i;
int PinsDown1;
int PinsDown2;
int PinsDown3;
for (i=1; i<11; i++)
{
PinsDown1 = ThrowBall(0); //1st try
System.out.println("Frame " + i + " Throw 1" + " knocked down is " + PinsDown1);
if(PinsDown1 == 10)
{
g.roll(10);
System.out.println("Congratulations, you bowled a strike!");
System.out.println();
}
else
{
PinsDown2 = ThrowBall(PinsDown1); //2nd try
System.out.println("Frame " + i + " Throw 2" + " knocked down is " + PinsDown2);
g.roll(PinsDown1);
g.roll(PinsDown2);
if (PinsDown1+PinsDown2 == 10)
System.out.println("Congratulations, you bowled a spare!");
System.out.println();
}
}
System.out.println("Final score is " + g.score() );
} //*** end main ***
public static int ThrowBall(int PinsDown)
{
int standing = 10-PinsDown;
Random rand = new Random();
int down = rand.nextInt(standing+1);
return down;
}
} //*** End class ***
【问题讨论】:
-
也许可以自己实现
Iterator。如果十分之一是合适的,提供它,否则只提供第九个。请参阅 this Answer by Dave Swartz 了解自定义迭代器。
标签: java class loops methods junit