파이썬 질문이요 ㅜㅜ
파이썬을 공부하는 초보 학생입니다.
처음에서 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
이렇게만 구조를 바꿔도 코드가 많이 줄겠네요
답변을 작성하려면 로그인이 필요합니다.