Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion src/main/java/domain/BowlingGame.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ public State bowl(Player player, int falledPins) {
}

public boolean isEndFrame(Player player) {
// 다수 고려하지 않음, 우선 한 명만.
return player.isEnd();
}

Expand Down
9 changes: 7 additions & 2 deletions src/main/java/domain/LastFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,16 @@ public int getScore(int beforeScore) {
if (score.canCalculateScore()) {
return score.getScore();
}
return calculateAdditionalScore(score);
return calculateAdditionalScore(score, 1);
}

public int calculateAdditionalScore(Score beforeScore) {
for (State state : states) {
return calculateAdditionalScore(beforeScore, 0);
}

public int calculateAdditionalScore(Score beforeScore, int index) {
for (int i = index; i < states.size(); i++) {
state = states.get(index);
beforeScore = state.updateScore(beforeScore);
if (beforeScore.canCalculateScore()) {
return beforeScore.getScore();
Expand Down
1 change: 0 additions & 1 deletion src/main/java/domain/NormalFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import state.State;

public class NormalFrame extends Frame {
private static final String EMPTY = "";
private static final int MAX_FRAME_NO = 10;

private final int no;
Expand Down
1 change: 0 additions & 1 deletion src/main/java/domain/Player.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ public Player(String name) {
frame = frames.createFirstFrame();
}

// getter와 동일한 역할인데, 어떻게 변경해주면 좋을까
public String getName() {
return name;
}
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/state/FirstBowl.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@

public class FirstBowl extends State {
private static final String GUTTER = "-";
private static final String PIPE = "|";
private static final int MAX_PINS = 10;
private static final int NO_LEFT = 0;

private Pins falledPins;
Expand Down
1 change: 0 additions & 1 deletion src/main/java/view/ResultView.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package view;

import domain.Player;
import state.State;

import java.util.List;

Expand Down
12 changes: 6 additions & 6 deletions src/test/java/domain/BowlingGameTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,11 @@
import java.util.Scanner;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

public class BowlingGameTest {
List<String> names;
BowlingGame bowlingGame;
private List<String> names;
private BowlingGame bowlingGame;

@Before
public void setUp() {
Expand Down Expand Up @@ -42,8 +41,9 @@ public void bowl() {

@Test
public void isEndFrame() {
// Scanner scanner = new Scanner("10");
// List<Player> players = bowlingGame.createPlayer(Arrays.asList("htw", "pjs"));
// assertTrue(bowlingGame.isEndFrame(players.get));
List<Player> players = bowlingGame.createPlayer(Arrays.asList("htw", "pjs"));
bowlingGame.bowl(players.get(0), 4);
bowlingGame.bowl(players.get(0), 6);
assertTrue(bowlingGame.isEndFrame(players.get(0)));
}
}
28 changes: 26 additions & 2 deletions src/test/java/domain/FramesTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
import org.junit.Before;
import org.junit.Test;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertThat;

public class FramesTest {
Frames frames;
private Frames frames;

@Before
public void setUp() {
Expand Down Expand Up @@ -36,4 +37,27 @@ public void equalsFrameCount() {
frames.add(frame);
assertEquals(true, frames.equalsFrameCount(1));
}

@Test
public void printFramesState() {
Frame frame = new NormalFrame(1);
frame.bowl(new Pins(3));
frame.bowl(new Pins(7));
frames.add(frame);
assertThat(frames.printFramesState(0), is("3|/"));
}

@Test
public void printFramesScore() {
Frame frame1 = new NormalFrame(1);
frame1.bowl(new Pins(3));
frame1.bowl(new Pins(7));
frames.add(frame1);

Frame frame2 = frame1.next();
frame2.bowl(new Pins(10));
frames.add(frame2);

assertThat(frames.printFramesScore(0, 0), is(20));
}
}
74 changes: 61 additions & 13 deletions src/test/java/domain/LastFrameTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@

import org.junit.Before;
import org.junit.Test;
import state.*;
import state.Open;
import state.Ready;
import state.State;
import state.Strike;

import java.util.ArrayList;
import java.util.List;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertTrue;

public class LastFrameTest {
Expand Down Expand Up @@ -47,55 +52,98 @@ public void updateState() {
}

@Test
public void endCondition1() {
// open
public void isEnd_open일때() {
lastFrame.bowl(new Pins(1));
lastFrame.bowl(new Pins(8));
assertTrue(lastFrame.isEnd());
}

@Test
public void endCondition2() {
// spare 후 한 번의 보너스 투구
public void isEnd_spare후_보너스투구() {
lastFrame.bowl(new Pins(1));
lastFrame.bowl(new Pins(9));
lastFrame.bowl(new Pins(10));
assertTrue(lastFrame.isEnd());
}

@Test
public void endCondition3() {
// 초구 스트라이크 이후 Spare
public void isEnd_초구스트라이크후_spare() {
lastFrame.bowl(new Pins(10));
lastFrame.bowl(new Pins(1));
lastFrame.bowl(new Pins(9));
assertTrue(lastFrame.isEnd());
}

@Test
public void endCondition4() {
// 초구 스트라이크 이후 Open
public void isEnd_초구스트라이크후_open() {
lastFrame.bowl(new Pins(10));
lastFrame.bowl(new Pins(1));
lastFrame.bowl(new Pins(8));
assertTrue(lastFrame.isEnd());
}

@Test
public void endCondition5() {
// 초구, 2구 모두 스트라이크 이후 마지막 투구
public void isEnd_초구_2구_스트라이크후_마지막투구() {
lastFrame.bowl(new Pins(10));
lastFrame.bowl(new Pins(10));
lastFrame.bowl(new Pins(1));
assertTrue(lastFrame.isEnd());
}

@Test
public void endCondition6() {
// 3번 모두의 스트라이크
public void isEnd_세번모두스트라이크() {
lastFrame.bowl(new Pins(10));
lastFrame.bowl(new Pins(10));
lastFrame.bowl(new Pins(10));
assertTrue(lastFrame.isEnd());
}

@Test
public void printState_모두스트라이크() {
lastFrame.bowl(new Pins(10));
lastFrame.bowl(new Pins(10));
lastFrame.bowl(new Pins(10));
assertThat(lastFrame.printState(), is("XXX"));
}

@Test
public void printState_spare후_스트라이크() {
lastFrame.bowl(new Pins(1));
lastFrame.bowl(new Pins(9));
lastFrame.bowl(new Pins(10));
assertThat(lastFrame.printState(), is("1|/X"));
}

@Test
public void printState_open() {
lastFrame.bowl(new Pins(1));
lastFrame.bowl(new Pins(8));
assertThat(lastFrame.printState(), is("1|8"));
}

@Test
public void createScore() {
lastFrame.bowl(new Pins(1));
lastFrame.bowl(new Pins(8));
Score score = lastFrame.createScore(10);
assertThat(score.getScore(), is(19));
}

@Test
public void getScore() {
lastFrame.bowl(new Pins(1));
lastFrame.bowl(new Pins(9));
lastFrame.bowl(new Pins(10));
assertThat(lastFrame.getScore(10), is(30));
}

@Test(expected = RuntimeException.class)
public void cannotGenerateNextFrame() {
lastFrame.next();
}

@Test
public void isLastFrame() {
assertThat(lastFrame.isLastFrame(), is(true));
}
}
6 changes: 3 additions & 3 deletions src/test/java/domain/NormalFrameTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

import org.junit.Before;
import org.junit.Test;
import state.Ready;
import state.Strike;

import static org.junit.Assert.*;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

public class NormalFrameTest {
Frame frame;
private Frame frame;

@Before
public void setUp() {
Expand Down
15 changes: 14 additions & 1 deletion src/test/java/domain/PinsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
import org.junit.Before;
import org.junit.Test;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;

public class PinsTest {
Pins pins;
private Pins pins;

@Before
public void setUp() {
Expand All @@ -22,4 +24,15 @@ public void generate() {
public void isValid() {
assertTrue(pins.isValid(1));
}
@Test
public void sumPins() {
assertThat(Pins.sumPins(new Pins(4), new Pins(5)),is(9));
}

@Test
public void createFirstBowlScore() {
Pins pins = new Pins(5);
Score score = pins.createFirstBowlScore(0);
assertThat(score.toString(),is("score : 5 left : 0"));
}
}
4 changes: 2 additions & 2 deletions src/test/java/domain/PlayerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import static org.junit.Assert.assertTrue;

public class PlayerTest {
Player player;
Frames frames;
private Player player;
private Frames frames;

@Before
public void setUp() {
Expand Down
46 changes: 0 additions & 46 deletions src/test/java/view/ResultViewTest.java

This file was deleted.