파이썬 질문
본문
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()에서
성별을 입력받고 실행해주는것이 아무것도 없네요