파이썬 질문이요 ㅜㅜ
본문
파이썬을 공부하는 초보 학생입니다.
처음에서 3을 입력하고 메뉴로 이동한다음에 1을 눌러 타이틀메뉴로 돌아간다음에 스타트(1)을 입력하면
메인게임으로 넘어가지않습니다. 그리고 10x10 맵에서 9,9도달시 클리어하는 코드도 알려주시면 감사하겠습니다
def DrawTitle():
is_loop=1
while is_loop == 1:
print("---------------------수진 공쥬 구하기---------------------\n")
print("------------------------START(1)--------------------------\n")
print("------------------------EXIT(2)---------------------------\n")
print("------------------------MENU(3)---------------------------\n")
start=input("명령어를 입력해주세요 : ")
if start=="1":
is_loop = 0
else:
if start=="2":
is_loop = 0
else:
if start == "3":
is_loop = 0
else:
print("\n\n\n왜 꼭 선택지를 주는데 다른걸 입력하는거야?\n")
return start
def DrawMainGame():
import sys
print("★★★★★★★★★★★start★★★★★★★★★★★★★")
print("수진 공쥬:안녕?")
input("나:")
print("수진 공쥬:자기는 이름이 뭐야?")
name=input("나:")
print("수진 공쥬:자기 이름은" + name + "이구나!")
print("수진 공쥬:우리 오늘 뭐할까?\n")
print("1.밥먹으러가자 2.모텔가자 3.영화보자")
answer_input = input("원하시는 숫자를 입력해주세요:")
if answer_input=="1":
print("다음 대화로 넘어가시려면 ENTER키를 눌러주세요")
input()
print("나: 밥먹으러가자!")
input()
print("수진 공쥬:구래!!")
input()
print("나:뭐 먹고싶은거있어?")
input()
print("수진 공쥬:나는.. 어?")
input()
print("수진 공쥬:저게 뭐야??")
input()
print("수진 공쥬:살려줘!"+name+" 으아아악!")
input()
print("\n괴물이 공쥬를 납치했다 괴물을 피해 공쥬를 구출해야한다")
print("괴물이 공쥬를 납치한곳을 찾아야한다 어디에있을까?")
print("---------------1.동굴-------------------")
print("---------------2.하수구---------------- ")
print("---------------3.모텔-------------------")
player_input=input("\n괴물은 어디에있을까?:")
if player_input=="1":
print("동굴 안으로 들어가다 종유석에 맞아 죽었다")
print("게임 종료")
else:
if player_input=="3":
print("여기를 고른건 능지가 0인건가?")
print("게임종료")
else :
if player_input=="2":
DrawMap(g_map,g_player)
else:
print("기회 안줘 다시켜")
else:
if answer_input=="2" :
print("다음 대화로 넘어가시려면 ENTER키를 눌러주세요")
input()
print("나:모텔 가자!")
input()
print("수진 공쥬:?")
input()
print("나:모텔 안가봤어?")
input()
print("수진 공쥬:이런 미7련.....")
input()
print("수진 공쥬:어? 저게 뭐야??")
input()
print("수진 공쥬:살려줘!"+name+" 으아아악!")
input()
print("\n괴물이 공쥬를 납치했다 괴물을 피해 공쥬를 구출해야한다")
print("---------------1.동굴-------------------")
print("---------------2.하수구---------------- ")
print("---------------3.모텔-------------------")
player_input=input("\n괴물은 어디에있을까?:")
if player_input=="1":
print("동굴 안으로 들어가다 종유석에 맞아 죽었다")
print("<게임 종료>")
else:
if player_input=="3":
print("여기를 고른건 능지가 0인건가?")
print("<게임종료>")
else :
if player_input=="2":
DrawMap(g_map,g_player)
else:
print("기회 안줘 다시켜")
else :
if answer_input=="3" :
print("다음 대화로 넘어가시려면 ENTER키를 눌러주세요")
input()
print("나: 영화 보러가자!")
input()
print("수진 공쥬:구래! 근데 무슨영화 볼거야?")
input()
print("나: 보고싶은거있어?")
input()
print("수진 공쥬:나는.. 어?")
input()
print("수진 공쥬:저게 뭐야??")
input()
print("수진 공쥬:살려줘!"+name+" 으아아악!")
input()
print("\n괴물이 공쥬를 납치했다 괴물을 피해 공쥬를 구출해야한다")
print("---------------1.동굴-------------------")
print("---------------2.하수구---------------- ")
print("---------------3.모텔-------------------")
player_input=input("\n괴물은 어디에있을까?:")
if player_input=="1":
print("동굴 안으로 들어가다 종유석에 맞아 죽었다")
print("게임 종료")
else:
if player_input=="3":
print("여기를 고른건 능지가 0인건가?")
print("<게임종료>")
else :
if player_input=="2":
DrawMap(g_map,g_player)
else:
print("기회 안줘 다시켜")
else :
print("아니 왜 1,2,3 중에 대체 다른 번호를 왜 넣는거야 껏다켜라;")
def MENU():
is_loop=1
while is_loop == 1:
print("\n---------------------메뉴--------------------\n")
print("\n\n\n--------------------조작키-------------------")
print("-------------------W A S D-------------------\n")
print("-----------------다음 대화 ENTER키------------------\n")
print("---------------------미션--------------------")
print("-지뢰를 피하여 인질이된 수진 공쥬를 구하세요-\n\n\n\n")
start1=input("게임 시작 화면으로 돌아가시려면 숫자1을 입력해주세요.")
if start1 == "1":
is_loop= 0
DrawTitle()
else:
print("다시")
return start1
start=DrawTitle()
if start =="1" :
DrawMainGame()
if start =="2" :
print ("\n\n게임을 종료합니다")
if start =="3" :
MENU()
if player_input=="2":
DrawMap(g_map,g_player)
def DrawMap(g_map,g_player):
print("하수구에 도착했다 괴물의 흔적이 보인다 괴물을 피해 공쥬를 구출하자!")
input()
i=0
while i<89 :
if g_player ==i :
print('P', end='')
else :
print(g_map[i], end ='')
i= i+1
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','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','0'],
['0','0','0','0','0','0','0','0','0','0']]
g_player = 0
while g_map[g_player] !='1' :
DrawMap(g_map,g_player)
g_input = input("\n명령을 내려주세요(1.좌로 2.우로) :")
if g_input == '2' :
g_player = g_player + 1
if g_input == '1' :
g_player = g_player - 1
if g_input == '3' :
g_player = g_player +10
if g_input == '4' :
g_player = g_player - 10
print("축하합니다 탈출하셨어요")
답변 1
if ~~ else ~~ if 이렇게 쓰지 말고 동작을 함수화해서
if a == 1 : return
if a == 2 : return
이렇게만 구조를 바꿔도 코드가 많이 줄겠네요