파이 게임과 파이썬을 사용하여 약간의 추측 플래그 게임을 만들려고하는데, 내가 만든 루프와 함수에 문제가 있습니다. 저는 파이썬에 비교적 익숙하지 않습니다. 때로는 혼란 스럽습니다.파이썬 루핑, 함수 문제
어쨌든 저는 게임의 테스트 부분에 있으며 중국, 캐나다, 미국, 프랑스 등 4 개국이 있습니다. 별도의 정의 된 함수에 넣고 목록에 넣고 임의의 모듈을 사용하여 목록을 섞습니다. for 루프에 넣었고, 원하는대로 작동 시키려고합니다.
목록을 올바르게 뒤섞고 기능을 선택하지만 동일한 기능이 반복되어 끝나지 않습니다. 여기
내 코드입니다 : 캐나다에 대해 묻지 마세요def pick_country():
global list1
main_font = "brain flower euro.ttf"
font1 = pygame.font.Font((main_font), 50)
font2 = pygame.font.Font((main_font), 40)
list1 = [france1, canada1, china1, usa1]
random.shuffle(list1)
for cur_country in list1:
cur_country()
pygame.display.update()
def france1():
screen.fill((255, 255, 255))
country = 'FRANCE'
flag = 'france_flag.jpeg'
flag1 = pygame.image.load(flag).convert()
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
pick_country()
screen.blit(flag1, (300, 350))
pygame.display.update()
def canada1():
name = ""
main_font = "brain flower euro.ttf"
font1 = pygame.font.Font((main_font), 50)
country = 'CANADA'
flag = 'canada_flag.jpeg'
black = 0, 0, 0
flag1 = pygame.image.load(flag).convert()
while True:
for evt in pygame.event.get():
if evt.type == KEYDOWN:
if evt.unicode.isalpha():
name += evt.unicode
elif evt.key == K_SPACE:
name += " "
elif evt.key == K_BACKSPACE:
name = name[:-1]
elif evt.type == QUIT:
pygame.quit()
sys.exit()
screen.fill((255, 255, 255))
screen.blit(flag1, (200, 25))
pygame.draw.line(screen, black, (200, 115), (0, 115), (6))
pygame.draw.line(screen, black, (600, 115), (800, 115), (6))
block = font1.render(name, True, black)
rect = block.get_rect(center = (400, 600))
screen.blit(block, rect)
pygame.draw.rect(screen, black, (275, 550, 250, 100), (2))
if name == "canada":
pick_country()
pygame.display.update()
def usa1():
screen.fill((255, 255, 255))
country = 'USA'
flag = 'usa_flag.jpeg'
flag1 = pygame.image.load(flag).convert()
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
pick_country()
screen.blit(flag1, (225, 300))
pygame.display.update()
def china1():
screen.fill((255, 255, 255))
country = 'CHINA'
flag = 'china_flag.jpeg'
flag1 = pygame.image.load(flag).convert()
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
pick_country()
screen.blit(flag1, (300, 350))
pygame.display.update()
pick_country()
; 그것은 내 주요 국가 테스트 지역입니다.
당신이 시작하기 전에 '당신이 시도가'나는 다음 시도했다 : 스크립트의 일부 '목록과 셔플'을 촬영하고, 상단에, 함수 밖에서 퍼팅 :
1 화면. 1의 오류 : 목록의 기능이 무엇인지 아직 알지 못합니다.
2 : 스크립트의 '목록 및 셔플'부분을 가져 와서 국가 기능 후에 실제 pick_country()
앞에 함수를 넣습니다. 2의 오류 : 처음에는 국가를 선택하지만 분명히 다른 국가로가는 것은 아닙니다.
어떤 도움이 필요합니까? 부디!
여기서 OO 디자인을 사용하는 것이 훨씬 간단합니다. 전역 대신 인스턴스 속성에 액세스하는 메소드가있는 클래스입니다. – abarnert
저는 파이썬을 처음 사용합니다. 나는 기본적으로 도서관에서 책을 빌리고, theewboston 튜토리얼을보고, 여기저기서 약간의 파이썬 문서를 던져 넣었습니다. 조금 더 자세하게 설명해 주시겠습니까? – JaredCubilla
어쨌든이 대답을 정말로 원한다면 "2"가 답입니다. 첫 번째 문제를 해결 한 후에 _another_ 문제가 있다는 사실이 그것이 첫 번째 문제에 대한 해결책이 아니라는 것을 의미하지는 않습니다.이것이 디버깅이 일반적으로 이루어지는 방식입니다. – abarnert