복불복게임

Ina Kim·2021년 1월 8일
0

Java_초급

목록 보기
5/11

1.데이터클래스

package bbb;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;

@AllArgsConstructor //생성자가 만들어짐
@Getter //gettext 만들어짐
@ToString //string
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); //입력한 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; //string 타입이니까 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(); //getter
			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();
	}


}
profile
기록하는것을 좋아합니다

0개의 댓글