コード例 #1
0
def click(key):
    # = 버튼이 눌렸을 때 계산 수행:
    if key == "=":
        try:
            result = str(eval(display.get()))[0:10]
            display.insert(END, " = " + result)
        except:
            display.insert(END, " --> Error!")

    # C 버튼이 눌려졌을 때 display 엔트리 위젯 내용 비움:           
    elif key == "C":
        display.delete(0, END)

    # 상수 버튼에 대한 작업:
    elif key == constants_list[0]:
        display.insert(END, "3.141592654")
        
    elif key == constants_list[1]:
        display.insert(END, "300000000")
        
    elif key == constants_list[2]:
        display.insert(END, "330")
        
    elif key == constants_list[3]:
        display.insert(END, "149597887.5")
        
    # 함수 버튼에 대한 작업:
    elif key == functions_list[0]:
        n = display.get()  # 현재 display 엔트리 위젯 값 수집
        display.delete(0, END)  # 현재 display 엔트리 위젯 내용 비움
        display.insert(END, calc_functions.factorial(n))

    elif key == functions_list[1]:
        n = display.get()  # 현재 display 엔트리 위젯 값 수집
        display.delete(0, END)  # display 엔트리 위젯 내용 비움
        display.insert(END, calc_functions.to_roman(n))

    elif key == functions_list[2]:
        n = display.get()  # 현재 display 엔트리 위젯 값 수집
        display.delete(0, END)  # display 엔트리 위젯 내용 비움
        display.insert(END, calc_functions.to_binary(n))
        
    elif key == functions_list[3]:
        n = display.get()  # 현재 display 엔트리 위젯 값 수집
        display.delete(0, END)  # display 엔트리 위젯 내용 비움
        display.insert(END, calc_functions.from_binary(n))

    # 그 외 다른 키를 눌렀을 때 실행될 기본 동작:
    else:
        display.insert(END, key)
コード例 #2
0
def click(key):
    global target
    global counter
    global start_time
    global game_state
    # = 버튼이 눌렸을 때 계산 수행:
    if key == "=":
        try:
            result = str(eval(display.get()))[0:10]
            display.insert(END, " = " + result)
        except:
            display.insert(END, " --> 오류!")

    # C 버튼이 눌려졌을 때 display 엔트리 위젯 내용 비움:
    elif key == "C":
        display.delete(0, END)

    # 상수 버튼에 대한 작업:
    elif key == constants_list[0]:
        display.insert(END, "3.141592654")
    elif key == constants_list[1]:
        display.insert(END, "300000000")
    elif key == constants_list[2]:
        display.insert(END, "330")
    elif key == constants_list[3]:
        display.insert(END, "149597887.5")

    # 함수 버튼에 대한 작업:
    elif key in functions_list:
        n = display.get()  # 현재 display 엔트리 위젯 값 수집
        display.delete(0, END)  # 현재 display 엔트리 위젯 내용 비움

        if key == functions_list[0]:
            display.insert(END, calc_functions.factorial(n))

        elif key == functions_list[1]:
            display.insert(END, calc_functions.to_roman(n))

        elif key == functions_list[2]:
            display.insert(END, calc_functions.to_binary(n))

        else:
            display.insert(END, calc_functions.from_binary(n))

    # 다른 버튼이 눌리면 현재 항목의 끝에 값을 추가합니다:

    #### 진행 시간 ####
    elif key == "play":  # game_button이 눌렸을때 게임을 시작합니다.
        if game_state == "not_playing":
            game_button["text"] = "종료"
            target = random.randint(0, 9)
            bin_target = bin(target)[2:]
            display.delete(0, END)
            display.insert(END, bin_target)
            start_time = time.time()
            counter = 0
            game_state = "playing"

        else:  # game_state == "playing"와 같고 게임을 종료하려고 할 때 실행됩니다.
            game_button["text"] = "진행 시간"
            display.delete(0, END)
            counter = 0
            game_state = "not_playing"

    elif game_state == "playing":  # 게임을 진행하고 있을 때
        if counter == 10:
            display.delete(0, END)
            achieved_time = (time.time() - start_time)
            achieved_time = str(achieved_time)[:5]  # 문자열의 5자리까지만 잘라냅니다.
            message = "잘했습니다. 10번 중 " + achieved_time + "번 만에 성공하셨습니다"
            display.insert(END, message)
            counter = 0
            game_button["text"] = "진행 시간"
            game_state = "not_playing"

        elif key.isdigit() and key == str(target):
            display.delete(0, END)  # display 엔트리 위젯 내용 비움
            target = random.randint(0, 9)
            bin_target = bin(target)[2:]
            display.insert(END, bin_target)
            counter = counter + 1

        else:
            display.insert(END, " 웁스! ")

    #### 진행 시간을 초과했을 때

    # 그 외 다른 키를 눌렀을 때 실행될 기본 동작:
    else:
        display.insert(END, key)