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?