파이썬 질문

파이썬 질문

QA

파이썬 질문

본문

def title():
    print('''
     *무엇을 도와 드릴까요?*
     *1. 게임 시작
     *2. 게임 설명
     *3. 종    료(나가기)
     *-----------------------------
     *번호를 입력하세요: ''',end='')
    order = input()
    return order
  
def game():
    name = input('이름을 입력하세요: ')
    gender = input('당신의 성별을 입력하세요(남/여) ')
    if gender =='남':
        print(name, '너 멋진걸 보니 파이썬을 잘할것 같구나')
    else:
        print(name, '너 예쁜걸 보니 파이썬을 잘할것 같구나')
    print('파이썬을 배우기 위한 모험을 떠나 보도록 하자')
    return
  
def explanation():
    print("이 게임은 파이썬을 배우기위한 게임입니다")
    print("(1. 좌 2. 우 3. 하 4. 상)")
    print('''
    무엇을 도와 드릴까요?
    1. 게임 시작
    2. 타이틀로 돌아가기
    -----------------------------
    번호를 입력하세요: ''',end='') 
    order = input()
    return order
  
def DrawMap(g_map):
    i=0
    j=0
    for i in range(0,7) :
        for j in range(0,7) :
            if g_player_pos_x == j and g_player_pos_y == i: 
                print("P", end = ' ')
            else:
                print(g_map[i][j], end = ' ')               
        print(end = "\n")                                   

g_map = [['0','0','0','0','0','0','0'],
         ['0','0','0','0','0','0','0'],
         ['0','0','0','0','0','0','0'],
         ['0','0','0','0','0','0','0'],
         ['0','0','0','0','0','0','0'],
         ['0','0','0','0','0','0','0'],
         ['0','0','0','0','0','0','1']]

g_player_pos_x = 0
g_player_pos_y = 0

while g_map[g_player_pos_x][g_player_pos_y] != '1' :
    DrawMap(g_map)
    g_input = input("\n명령을 내려주세요(1. 좌 2. 우 3. 하 4. 상) : ")
    
    if g_input == '1':
        if g_player_pos_x > 0:
            g_player_pos_x = g_player_pos_x - 1
    if g_input == '2':
        if g_player_pos_x < 6:
            g_player_pos_x = g_player_pos_x + 1
    if g_input == '3':
        if g_player_pos_y < 6:
            g_player_pos_y = g_player_pos_y + 1
    if g_input == '4':
        if g_player_pos_y > 0:
            g_player_pos_y = g_player_pos_y - 1
DrawMap(g_map)
print("\n안녕하세요!")


print(''' 두근두근 파이썬 ''')
while True:
    u1 = title() 
    if u1 == '1':
        game()
        
        
    
    elif u1 == '2':
        u2 = explanation()
        if u2 == '1':
            game()
    else:
        break

 

 

 

 

def map을 만들었는데 1.게임시작 을 하였을때 만든 맵에서 게임을 실행할수있도록 하는 코드를 추가해야하는데 여기서 어떻게 하면 될까요?

이 질문에 댓글 쓰기 :

답변 1

메인함수를 분리하시는것이 좋습니다

if "__init__" == "__main__"

 

리뷰해드리자면

1. game(): 함수에서 return 뒤에 None이던지

return 되는것이 없습니다.

 

2. input()으로 받은 str변수가 '1'일 경우  game함수가 실행되니

 

drawmap을 따로 함수로 선언하시고

game함수 안에을 drawmap 콜하는 방식으로 가셔야 할것 같습니다.

 

지금 코드는 function인  game()에서 

성별을 입력받고 실행해주는것이 아무것도 없네요

답변을 작성하시기 전에 로그인 해주세요.
전체 2

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT