728x90
반응형
from random import *
from tkinter import *
from tkinter import ttk
root = Tk() # tkinter 설정
def select(human_choice): # 버튼 클리시 인수 넘어 옴
lst = ['가위','바위','보']
computer_choice = choice(lst) # 램덤하게 리스트에서 하나를 선택. ramdon.choice()
print()
print('Computer choice =',computer_choice)
print('Human choice =',human_choice)
# 승리 판단법 : lst의 기본적으로 인덱스가 크면 승리. 단 +1 만큼 클때 승리
c = computer_choice # 변수명이 길어서 짧은 변수로 변경
h = human_choice
ci = lst.index(c) # 해당 요소의 인덱스
hi = lst.index(h)
# print(c, ci, h, hi)
win = ''
if ci == hi+1 or ci+2 == hi: # 컴퓨터 승리 조건
win = '컴퓨터 승리'
# print(c, h, win)
elif ci+1 == hi: # 휴먼 승리 조건
win = '휴먼 승리'
# print(c, h, win)
else:
win = '무승부'
# print('무승부')
result["text"] = win # 결과 보여주는 Label의 text 변경
root.geometry('200x200')
frame = Frame(root) # tkinter 위젯들을 포함할 틀(Frame) 설정
frame.pack(pady = 10) # 좌우 여백 10 설정
b1 = ttk.Button(frame, text='가위', command=lambda: select('가위')) # 버튼 추가. 클릭시 함수 select() 실행. 이때 인수 '가위' 넘겨 줌. 이때 lambda를 사용해야 인수 넘겨 줋 수 있음
b1.pack(pady = 2)
b2 = ttk.Button(frame, text='바위', command=lambda: select('바위'))
b2.pack(pady = 2)
b3 = ttk.Button(frame, text='보', command=lambda: select('보'))
b3.pack(pady = 2)
result = ttk.Label(frame, text = "") # 결과용 Label
# result.pack(side=RIGHT,padx=10,pady=10, anchor=CENTER)
result.pack(anchor=CENTER)
root.mainloop()
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 통행료 계산(오토바이,승용차,트럭) (0) | 2022.12.06 |
---|---|
[파이썬] 문제 : n을 입력 받아 2~9사이의 값 확인하고 구구단 출력 (0) | 2022.12.05 |
[파이썬] 문제 : 휴대전화 번호 암호화 (0) | 2022.12.05 |
[파이썬]] 문제 : csv 파일 읽어 그래프 그리기 (0) | 2022.12.05 |
[파이썬] 문제 : 파일 불러오기 GUI (0) | 2022.12.05 |
댓글