2012-08-30 5 views
0

텍스트 기반 어드벤처 게임을 만들고 있습니다. 캐릭터가 도시 블록으로 구성된지도를 탐색하고 있습니다. 나는 direction_function을 가지고 있는데, 그 문자는 raw_input이며 그 문자를 올바른 인접 블록으로 옮깁니다. 그러나, 나는 픽업 할 아이템이나 대부분의 블록에서 상호 작용할 사람들과 같은 특별한 기능을 가지고 있습니다. 여기에서는 raw_input도 사용합니다. 오른쪽 키워드를 입력하면 상호 작용하지만 방향을 입력하여 무시하면 direction_function으로 전달되어 raw_input에 대한 메시지를 다시 표시합니다. direction_function에 초기 응답을 전달할 수있는 방법이 있습니까? 그렇다면 응답을 반복하지 않아도됩니까? 당신이 최종 결과를 전달하기 위해 direction_function에 기본 인자 값을 사용할 수 있습니다, 나는이다른 raw_input을 전달하여 raw_input을 우회하는 python

def block3_0(): 
    print "You see a bike lying in your neighbor's yard. Not much else of interest." 
    direc = raw_input(">") 
    if direc in ("take bike", "steal bike", "ride bike", "borrow bike", "use bike"): 
     print "\n" 
     bike.remove("bike") 
     school_route() 
    else: 
     direction_function(block2_0, block4_0, block3_1, block3_0, block3_0) 
+0

몇 가지 코드를 게시 할 수 있습니까? 관련 부분 만, 반드시 모든 대화가 아닙니다. –

답변

1

음과 같은 각 블록에 대한 기능을 지정

def direction_function(left, right, up, down, re): 
    direc = raw_input(">") 
    if direc in west: 
     left() 
    elif direc in east: 
     right() 
    elif direc in north: 
     up() 
    elif direc in south: 
     down() 
    elif direc in inventory_list: 
     inventory_check() 
     re() 
    else: 
     print "try again" 
     re() 

: 여기

내 direction_function입니다 예 : raw_input에 대한 이전 호출 :

def direction_function(direction=None): 
    direction = direction or raw_input() 
    # Do something with the input 

방향이 제공되지 않으면 (정규 워크 플로) 테스트가 끝나면 raw_input으로 전화가 걸립니다. 방향이 제공되면 (예를 들어, 이미 읽었을 때 전달할 방향과 같이) 방향이 사용됩니다.

+0

감사합니다. 매력처럼 작동했습니다. –

-1

예, 가능하도록이 기능을 정의해야합니다. 이 같은 예를 들어

, 고려 무언가 :

위의 같은 구조 함수와
def direction_function(input = 'default_val'): 
    if input != 'default_val': 
     input = raw_input() 

    # do your stuff here 

, 당신이 할 수있는 것은 당신이 당신의 direction_function 전화 코드 블록의 상호 작용 값이나 방향 상태에 대한 검사가있다() 메서드를 호출하고 함수가 호출 된 위치에서 입력 값을 전달합니다. 따라서 방향이 플레이어가 선택한 것이면 입력은 'default_val'이어야합니다.

+1

이 코드를 사용하면 입력 (이름'input'을 사용하지 말고 기본 제공을 무시합니다)은 기본값이 아니며 'raw_input' 호출로 덮어 쓰게됩니다 에 값을 전달하지 못하게합니다. –

관련 문제