GUI 실습 - lotto

/src
ㄴ/controller
	ㄴMain.java
ㄴ/model
	ㄴLottoModel.java
ㄴ/view
	ㄴLottoView.java

Model

package model;

import java.io.InputStreamReader;
import java.net.URL;
import java.util.Arrays;

import org.json.simple.JSONObject;
import org.json.simple.JSONValue;

public class LottoModel {
	private int count,bonusCount;
	private String winNum[] = new String[6];
	private String bonus;
	private String myNum[]  = new String[6];
	private String checkNum[]=new String[6];
	public LottoModel(String turn) {
		setLotto(turn);
		System.out.println(this.getBonus());
		System.out.println(this.getWinNum());
		setRandom();
		System.out.println(this.getMyNum());
		check();
	}
	public void setLotto(String turn) {
		URL result;
		String winNums[]=new String[6];
		try {
			result = new URL("http://www.nlotto.co.kr/common.do?method=getLottoNumber&drwNo="+turn);
			InputStreamReader isr = new InputStreamReader(result.openConnection().getInputStream(),"UTF-8");
			
			JSONObject obj = (JSONObject)JSONValue.parse(isr);
			System.out.println("읽어온 결과 : "+obj.toJSONString());
			
			if("success".equals(obj.get("returnValue"))) {
				System.out.print("로또 번호 : ");
				for(int i=1;i<=6;i++) {
					System.out.print(" "+obj.get("drwtNo"+i));
					
					winNums[i-1]=obj.get("drwtNo"+i).toString();
					this.setWinNum(winNums);
				}
				System.out.println("보너스 : "+obj.get("bnusNo"));
				this.setBonus(obj.get("bnusNo").toString());
			}else {
				System.out.println("로또 정보 읽기 실패");
			}
		}catch(Exception e) {
			e.printStackTrace();
		}
	}

	public void setRandom() {
		String[] myNum=new String[6];
		int[] lotto = new int[6];
		for(int i=0;i<myNum.length;i++) {
			lotto[i] = (int)(Math.random()*45)+1;
			for(int j=i-1;j>=0;j--) {
				if(lotto[i]==lotto[j]) {
					i--;
					break;
				}
			}
			
		}
		Arrays.sort(lotto);
		for(int i=0;i<myNum.length;i++) {
			myNum[i]=String.valueOf(lotto[i]);
			System.out.println(myNum[i]);
		}
		this.setMyNum(myNum);
	}
	public void check() {
		this.count=0;
		this.bonusCount=0;
		
		for(String i : winNum) {
			if(Arrays.asList(myNum).contains(i)) {
				this.checkNum[count++]=i;
			}
		}
		for(int i=count;i<6;i++) {
			this.checkNum[i]=null;
		}
		if(Arrays.asList(this.myNum).contains(bonus)&&count==5) {
			this.checkNum[count]=bonus;
			bonusCount=1;
		}
		
	}
	public int result() {	
		switch (this.count) {
		case 6:
			return 1;
		case 5:
			if(this.bonusCount==1)return 2;
			else return 3;
		case 4:
			return 4;
		case 3:
			return 5;
		default:
			return 6;
		}
	}

	public String[] getWinNum() {
		return winNum;
	}
	public void setWinNum(String[] winNum) {
		this.winNum = winNum;
	}
	public String getBonus() {
		return bonus;
	}
	public void setBonus(String bonus) {
		this.bonus = bonus;
	}
	public String[] getMyNum() {
		return myNum;
	}
	public void setMyNum(String[] myNum) {
		this.myNum = myNum;
	}
	public int getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count = count;
	}
	public int getBonusCount() {
		return bonusCount;
	}
	public void setBnousCount(int bnousCount) {
		this.bonusCount = bonusCount;
	}
	public String[] getCheckNum() {
		return checkNum;
	}
	public void setCheckNum(String[] checkNum) {
		this.checkNum = checkNum;
	}
	
}

View

Controller

Last updated

Was this helpful?