2013-02-01 4 views
1

요청하지 않고 사용자 입력을받는 함수를 프로그래밍 할 수 있습니까? 예를 들어, tic-tac-toe 게임 중에 사용자는 언제든지 "Q"를 눌러 프로그램을 닫을 수 있습니까?Python 3.2 수동 사용자 입력

+0

게임이 어떻게 표시되고 있습니까? 킨 커스? 그냥 인쇄하니? –

답변

1

몇 가지 방법이 있으며 모두 다릅니다.

게임이 curses를 사용하여 터미널 응용 프로그램 인 경우, 당신은 당신이 getch()를 호출 할 때 q를 잡을 다음 SystemExit을 올리거나 단순히 많은 curses 응용 프로그램을 사용하는 것이 당신의 while 루프의 탈옥 것입니다.

tkinter 또는 다른 GUI 라이브러리를 사용하면 키 프레스 이벤트를 tic-tac-toe 보드를 보유하는 Frame 위젯에 바인딩 할 수 있습니다.

0

그냥 보드를 인쇄하는 가정 (당신이 특별히 요청에도 불구하고) 당신이 그것을 닫을 수 입력시, (나는 것을 수행하는 기본 tic-tac-toe 게임이) :

user_option = 입력 나는 플레이어가 이동하는 선택하는 방법을 모르겠어요

try: 
    if user_option.lower() == 'q': # makes everything lowercase so it is easier to handle 
     import sys 
     sys.exit("Game Terminated.") 
except TypeError: 
    # other code 

, 그래서 나는 tryexcept을 사용 : ("종료하는 이동 공간, 또는 'Q'를 입력"). 내 Tic-Tac-Toe 게임에서 사용자가 정수를 입력했습니다.이 정수는 보드 공간에 해당합니다.

또는, 당신은 단지 사용자 프레스 Ctrl 키 + C 파이썬에서 자동 KeyBoardInterrupt입니다을 가질 수는 (프로그램이 종료 됨).