-
Notifications
You must be signed in to change notification settings - Fork 349
Expand file tree
/
Copy pathVendingMachineController.java
More file actions
59 lines (49 loc) · 1.95 KB
/
Copy pathVendingMachineController.java
File metadata and controls
59 lines (49 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package vendingmachine.controller;
import vendingmachine.vendingmachine.Coin;
import vendingmachine.goods.GoodsManager;
import vendingmachine.vendingmachine.VendingMachineManager;
import vendingmachine.view.InputView;
import vendingmachine.view.OutputView;
public class VendingMachineController {
InputView inputView = new InputView();
OutputView outputView = new OutputView();
GoodsManager goodsManager;
public void gameStart() {
String money = inputView.inputVendingMoney();
makeVendingMachineCoin(money);
}
public void makeVendingMachineCoin(String money) {
VendingMachineManager vendingMachineManager = new VendingMachineManager();
vendingMachineManager.makeRandomCoin(money);
outputView.vendingMachineCoin(Coin.makeCoinList());
makeGoodsList();
}
public void makeGoodsList() {
String goodsList = inputView.inputGoodsPriceAmount();
goodsManager = new GoodsManager(goodsList);
InputUserMoney();
}
public void InputUserMoney() {
int money = Integer.parseInt(inputView.inputUserMoney());
outputView.remainMoney(money);
purchaseGoods(money);
}
public void purchaseGoods(int money) {
/**
* 잔여금액이 상품 리스트의 최소 가격보다 크면 -> 상품 입력 -> 고른 상품이 잔여금으로 살 수 없다면
* -> 잔돈 반환
*/
while(true){
if(!goodsManager.validMinPurchase(money))break;
String goods = inputView.inputPurchaseGoods();
if(!goodsManager.validPurchase(goods,money))break;
money = goodsManager.purchaseGoods(goods, money);
outputView.remainMoney(money);
}
returnCoin(money);
}
public void returnCoin(int money) {
VendingMachineManager vendingMachineManager = new VendingMachineManager();
outputView.returnCoinList(vendingMachineManager.makeRemainCoinList(money));
}
}