Chatgpt

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

code2772 2023. 9. 13. 05:40
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분만에 만든 간단한 프로그램이다.

반응형