본문 바로가기
Chatgpt

chatGpt 이용한 로또번호 맞추기 GUI - Python

by code2772 2023. 9. 13.

[ 목차 ]

    728x90
    반응형

    GPT 에게 물어본 내용1 :

    파이썬을 가지고 롯도번호 생성기를 만들어줘 여기서 내가 원하는 6개를 선택하고 몇등인지 까지
    -> 맞추기 게임인데 등수랑 답이 먼저나와 실패

    import random
    
    # 로또 번호 생성기 함수
    def generate_lotto_numbers():
        return random.sample(range(1, 46), 6)  # 1부터 45 사이의 숫자 중에서 6개를 랜덤으로 선택
    
    # 사용자가 선택한 로또 번호 입력 받기
    def get_user_numbers():
        user_numbers = []
        for i in range(6):
            while True:
                try:
                    num = int(input(f"{i + 1}번째 숫자를 입력하세요 (1부터 45까지): "))
                    if 1 <= num <= 45 and num not in user_numbers:
                        user_numbers.append(num)
                        break
                    else:
                        print("1부터 45 사이의 중복되지 않는 숫자를 입력하세요.")
                except ValueError:
                    print("올바른 숫자를 입력하세요.")
        return user_numbers
    
    # 몇 등인지 확인하는 함수
    def check_lotto_rank(user_numbers, winning_numbers):
        matching_numbers = set(user_numbers).intersection(winning_numbers)
        num_matching = len(matching_numbers)
    
        if num_matching == 6:
            return "1등"
        elif num_matching == 5 and 45 in user_numbers:
            return "2등"
        elif num_matching == 5:
            return "3등"
        elif num_matching == 4:
            return "4등"
        elif num_matching == 3:
            return "5등"
        else:
            return "꽝"
    
    if __name__ == "__main__":
        # 로또 당첨 번호 생성
        winning_numbers = generate_lotto_numbers()
        print("로또 당첨 번호:", winning_numbers)
    
        # 사용자가 선택한 로또 번호 입력 받기
        user_numbers = get_user_numbers()
        print("사용자가 선택한 로또 번호:", user_numbers)
    
        # 로또 등수 확인
        rank = check_lotto_rank(user_numbers, winning_numbers)
        print(f"당신은 {rank}입니다!")

    위에는 내가 원하는 코드가 아니다.
     

    GPT 에게 물어본 내용2 :

    당첨번호는 마지막에 등수가 나와야 하고 GUI 간단한것도 만들어줘
    -> 성공
     

    GUI사용하기 위한 import

    pip install tk

    성공한 전체 코드

    import tkinter as tk
    import random
    
    # 로또 번호 생성기 함수
    def generate_lotto_numbers():
        return random.sample(range(1, 46), 6)  # 1부터 45 사이의 숫자 중에서 6개를 랜덤으로 선택
    
    # 몇 등인지 확인하는 함수
    def check_lotto_rank(user_numbers, winning_numbers):
        matching_numbers = set(user_numbers).intersection(winning_numbers)
        num_matching = len(matching_numbers)
    
        if num_matching == 6:
            return "1등"
        elif num_matching == 5 and 45 in user_numbers:
            return "2등"
        elif num_matching == 5:
            return "3등"
        elif num_matching == 4:
            return "4등"
        elif num_matching == 3:
            return "5등"
        else:
            return "꽝"
    
    # GUI 이벤트 핸들러 함수
    def check_lotto():
        user_numbers = [int(entry.get()) for entry in user_number_entries]
        winning_numbers = generate_lotto_numbers()
        result_label.config(text="로또 당첨 번호: " + " ".join(map(str, winning_numbers)))
        rank = check_lotto_rank(user_numbers, winning_numbers)
        rank_label.config(text="당신은 " + rank + "입니다!")
    
    # GUI 생성
    root = tk.Tk()
    root.title("로또 번호 확인")
    
    # 로또 번호 입력 필드 생성
    user_number_entries = []
    for i in range(6):
        entry = tk.Entry(root)
        entry.pack()
        user_number_entries.append(entry)
    
    # 확인 버튼 생성
    check_button = tk.Button(root, text="로또 번호 확인", command=check_lotto)
    check_button.pack()
    
    # 결과 표시 레이블 생성
    result_label = tk.Label(root, text="")
    result_label.pack()
    
    rank_label = tk.Label(root, text="")
    rank_label.pack()
    
    root.mainloop()

     

    결과 페이지

    6개의 숫자를 선택하고 로또 번호 확인 버튼을 누르면 당첨번호와 나의 등수가 나오는 지피를 활용해 5분만에 만든 간단한 프로그램이다.

    반응형