저는 Python을 배우고 메모리에서 Visual Basic으로 만든 이전 프로그램을 다시 만드는 과정에 있습니다.여러 옵션이있는 Def Win() 여러 개의 옵션이있는 Def Win()
대부분의 것들이 제대로 작동하지만 승자를 선언하는 더 좋은 방법이 있어야한다는 것을 알고 있습니다. 목표는 2-4 개 팀이 윙윙 거리며 질문에 점수를 얻는 것입니다. 가장 높은 점수를받은 팀이 승리합니다.
지금 당장이 코드가 어떻게 생겼는지를 보여 주지만 매우 지저분하고 더 좋은 방법이라고 생각합니다.
elif event.key == pygame.K_w:
if Team1Point > Team2Point and Team1Point > Team3Point and Team1Point > Team4Point:
Win = True
win.play()
while Win:
gameDisplay.blit(boardwin,(0,0))
text = large_font.render(str(Team1Name)+" Wins!", True, black)
gameDisplay.blit(text, [display_width/2, display_height/2])
pygame.display.update()
clock.tick(5)
gameDisplay.blit(background,(0,0))
pygame.display.update()
clock.tick(5)
elif Team2Point > Team1Point and Team2Point > Team3Point and Team2Point > Team4Point:
Win = True
win.play()
while Win:
gameDisplay.blit(boardwin,(0,0))
text = large_font.render(str(Team2Name)+" Wins!", True, black)
gameDisplay.blit(text, [display_width/2, display_height/2])
pygame.display.update()
clock.tick(5)
gameDisplay.blit(background,(0,0))
pygame.display.update()
clock.tick(5)
elif Team3Point > Team2Point and Team3Point > Team1Point and Team3Point > Team4Point:
Win = True
win.play()
while Win:
gameDisplay.blit(boardwin,(0,0))
text = large_font.render(str(Team3Name)+" Wins!", True, black)
gameDisplay.blit(text, [display_width/2, display_height/2])
pygame.display.update()
clock.tick(5)
gameDisplay.blit(background,(0,0))
pygame.display.update()
clock.tick(5)
elif Team4Point > Team2Point and Team4Point > Team3Point and Team4Point > Team1Point:
Win = True
win.play()
while Win:
gameDisplay.blit(boardwin,(0,0))
text = large_font.render(str(Team4Name)+" Wins!", True, black)
gameDisplay.blit(text, [display_width/2, display_height/2])
pygame.display.update()
clock.tick(5)
gameDisplay.blit(background,(0,0))
pygame.display.update()
clock.tick(5)
elif Team1Point == Team2Point or Team1Point == Team3Point or Team1Point == Team4Point or Team2Point == Team3Point or Team2Point == Team4Point or Team3Point == Team4Point:
Win = True
win.play()
while Win:
gameDisplay.blit(boardwin,(0,0))
text = large_font.render("Tie Win!", True, black)
gameDisplay.blit(text, [display_width/2, display_height/2])
pygame.display.update()
clock.tick(5)
gameDisplay.blit(background,(0,0))
pygame.display.update()
clock.tick(5)
나는 다음을 사용하여 승리를 정의했지만,받을
오류 :TypeError: Win() missing 1 required positional argument: 'Team1Name'
def Win():
win.play()
Win = True
while Win:
gameDisplay.blit(boardwin,(0,0))
text = large_font.render(str(Team1Name)+" Wins!", True, white)
gameDisplay.blit(text, [display_width/2, display_height/2])
pygame.display.update()
clock.tick(5)
gameDisplay.blit(background,(0,0))
pygame.display.update()
clock.tick(5)
def Team1(Team1Name,Team1Point):
text = large_font.render(str(Team1Name)+": " + str(Team1Point), True, white)
gameDisplay.blit(text, [10,10])
어떻게 정리할 수 있을까요? 어쩌면 방금 너무 오래 내 화면을 쳐다 보았을 것입니다.
구문 형광펜은 '대문자'변수 이름을 사용하지 말 것을 제안합니다. –
같은 이름 인 "Win"을 사용하여 함수와 부울 값을 동시에 참조하려고합니다. 확실히 여기에 너무 많은 코드 반복이 있습니다. 파이썬 사전을 살펴볼 시간이 필요하다고 생각합니다. – Chris