Skip to content
Open
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
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
# java-lotto-precourse
# 기능 구현 목록
1. - 로또 구입 금액을 입력하면 구입 금액에 해당하는 만큼 로또를 발행해야 한다.
- 로또 1장의 가격은 1,000원이다.
- 당첨 번호와 보너스 번호를 입력받는다.
- 사용자가 구매한 로또 번호와 당첨 번호를 비교하여 당첨 내역 및 수익률을 출력하고 로또 게임을 종료한다.
2. - 사용자가 잘못된 값을 입력할 경우 `IllegalArgumentException`를 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.
- `Exception`이 아닌 `IllegalArgumentException`, `IllegalStateException` 등과 같은 명확한 유형을 처리한다.
24 changes: 24 additions & 0 deletions src/main/java/lotto/controller/LottoController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package lotto.controller;

import lotto.view.*;
import lotto.model.Lotto;

public class LottoController {
InputView inputView;
OutputView outputView;
Lotto lotto;

public LottoController(
InputView inputView, OutputView outputView, Lotto lotto
){
this.inputView = inputView;
this.outputView = outputView;
this.lotto = lotto;
}

public void run(){
int price = inputView.getPrice();
outputView.printLottoNum();;

}
}
20 changes: 20 additions & 0 deletions src/main/java/lotto/main/AppConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package lotto.main;

import lotto.controller.LottoController;
import lotto.view.InputView;
import lotto.view.OutputView;

public class AppConfig {
public InputView inputView(){
return new InputView();
}

public OutputView outputView(){
return new OutputView();
}

public LottoController lottoController(){
return new LottoController();
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package lotto;
package lotto.main;

public class Application {
public static void main(String[] args) {
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/lotto/model/ArrayOfLotto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package lotto.model;

public class ArrayOfLotto {
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package lotto;
package lotto.model;

import java.util.List;

Expand All @@ -17,4 +17,7 @@ private void validate(List<Integer> numbers) {
}

// TODO: 추가 기능 구현
public List<Integer> getLotto(){
return numbers;
}
}
8 changes: 8 additions & 0 deletions src/main/java/lotto/model/LottoComputer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package lotto.model;

import lotto.view.InputView;
import lotto.view.OutputView;

public class LottoComputer {

}
21 changes: 21 additions & 0 deletions src/main/java/lotto/service/MessageConstants.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package lotto.service;

public enum MessageConstants {
BUY_GUIDE_MESSAGE("구입 금액을 입력해 주세요."),
BUY_RESULT_MESSAGE("%d개를 구매했습니다."),
WIN_NUM_GUIDE_MESSAGE("당첨 번호를 입력해주세요."),
BONUS_NUM_GUIDE_MESSAGE("보너스 번호를 입력해주세요."),
WIN_RESULT_MESSAGE("당첨통계\n---"),
WIN_NUM_RESULT_MESSAGE("%d개 일치 (%s 원) - %d개"),
FINAL_RESULT_MESSAGE("총 수익률은 %d% 입니다.");

private final String message;

MessageConstants(String message){
this.message = message;
}

public String getMessage(){
return this.message;
}
}
19 changes: 19 additions & 0 deletions src/main/java/lotto/view/InputView.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package lotto.view;

import lotto.service.MessageConstants;
import camp.nextstep.edu.missionutils.Console;

public class InputView {
public int getPrice(){
System.out.println(MessageConstants.BUY_GUIDE_MESSAGE.getMessage());
return Integer.parseInt(Console.readLine());
}
public String getWinNum(){
System.out.println(MessageConstants.WIN_NUM_GUIDE_MESSAGE.getMessage());
return Console.readLine();
}
public int getBonusNum(){
System.out.println(MessageConstants.BONUS_NUM_GUIDE_MESSAGE.getMessage());
return Integer.parseInt(Console.readLine());
}
}
24 changes: 24 additions & 0 deletions src/main/java/lotto/view/OutputView.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package lotto.view;

import lotto.service.MessageConstants;
import lotto.model.Lotto;
import java.util.ArrayList;

public class OutputView {
public void printLottoNum(int numOfLotto){
System.out.println(
String.format(MessageConstants.BUY_RESULT_MESSAGE.getMessage(), numOfLotto)
);
}

public void printLottoArr(){

}

public void printWinStats(int[] result){
System.out.println(MessageConstants.WIN_RESULT_MESSAGE.getMessage());
for(int i = 0; i<5; i++){ // 3부터 6까지 돌면서 몇개 맞는지 출력
}
System.out.println(MessageConstants.FINAL_RESULT_MESSAGE);
}
}
1 change: 1 addition & 0 deletions src/test/java/lotto/ApplicationTest.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package lotto;

import camp.nextstep.edu.missionutils.test.NsTest;
import lotto.main.Application;
import org.junit.jupiter.api.Test;

import java.util.List;
Expand Down
1 change: 1 addition & 0 deletions src/test/java/lotto/LottoTest.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package lotto;

import lotto.model.Lotto;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

Expand Down