1.데이터클래스
package bbb;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;
@AllArgsConstructor
@Getter
@ToString
public class Memo {
private String text;
}
뽑기할때 쪽지안에 넣을 변수는 X,O 문자열이기 때문에 String선언
롬복으로 생성자,getter,tostring 생성
2.서비스클래스(로직클래스)
package bbb;
import java.util.Arrays;
import lombok.AllArgsConstructor;
@AllArgsConstructor
public class MemoService {
private Memo[] arr;
private int ord;
public void readyMemo(int count) {
int index = (int)(Math.random() * count);
arr = new Memo[count];
ord = 0;
for (int i = 0; i < count; i++) {
if(i == index) {
arr[i] = new Memo("X");
}else {
arr[i] = new Memo("O");
}
}
}
public Memo getNextMemo() {
System.out.println("DEBUG: " + Arrays.toString(arr));
Memo result = null;
result = arr[ord];
return result;
}
}
3.UI
package bbb;
import java.util.Scanner;
import lombok.AllArgsConstructor;
@AllArgsConstructor
public class MemoUI {
private Scanner scanner;
private MemoService service;
public void playGame() {
inputCount();
pickMemo();
}
public void inputCount() {
System.out.println("몇명이서 할거니?");
int count = Integer.parseInt(scanner.nextLine());
System.out.println("COUNT: "+ count);
service.readyMemo(count);
}
public void pickMemo() {
while(true) {
System.out.println("시작하려면 enter!");
scanner.nextLine();
Memo memo = service.getNextMemo();
String text = memo.getText();
if(text.equals("X")) {
System.out.println("당첨");
continue;
}else {
System.out.println("꽝");
}
}
}
}
4. Main
package bbb;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
MemoService service = new MemoService(null, 0);
MemoUI ui = new MemoUI(scanner, service);
ui.playGame();
}
}