私は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