我正在學習Python並重新創建一個在Visual Basic中從內存中創建的舊程序。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」來同時引用一個函數和一個布爾值。這裏肯定有太多的代碼重複。我想你可能想花一些時間看python字典。 – Chris