回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图在这个简单的记分板上实现第二层“得分”。我太迷路了。我自学成才,所以我确信我错过了重要的步骤</p>
<p>条件:3分=1轮。10轮=赢家</p>
<p>这就是我在代码中的位置。我可以通过按A或B来计算点数,但当它达到“winRound”值时,在本例中为“3”,什么都不会发生,它会继续计算(我已经在这上面花了5个多小时,我要放弃了。我知道这很简单,但它伤害了灵魂</p>
<p>我试图触发“回合胜利”,所以我知道这一切是如何运作的,我可以继续</p>
<pre><code>import keyboard
from time import sleep
#fighters
fighter1 = "Jim"
fighter2 = "Ryan"
#points
point1 = 0
point2 = 0
winRound = 3
#rounds
round1 = 0
round2 = 0
winMatch = 10
#sleep time
sleepTime = 1
#defines the match being on
matchActive = True
roundActive = True
#scoreboard
def sb():
print("Fighter:",fighter1,'\n','Points:',point1,'\n','Rounds:',round1)
#functions
while matchActive == True:
if keyboard.is_pressed('a'):
point1 += 1
sb()
sleep(sleepTime)
elif keyboard.is_pressed('b'):
point2 += 1
sb()
sleep(sleepTime)
while matchActive == True:
if point1 >= winRound:
print("Round Won!")
</code></pre>
<p>老实说,我不完全理解python是如何看待所有这些代码的。这可能就是问题所在</p>
<p>编辑:我已经完成了所有工作,以下是最终代码:</p>
<pre><code>import keyboard
from time import sleep
#fighters
fighter1 = "Mark"
fighter2 = "Jim"
fighter3 = "Tom"
fighter4 = "Rick"
#points
point1 = 0
point2 = 0
point3 = 0
point4 = 0
winRound = 3
#rounds
round1 = 0
round2 = 0
round3 = 0
round4 = 0
winMatch = 10
#sleep time
sleepTime = .25
def changeFighter1(fighter):
fighter1 = str(input("Set Fighter Name"))
#scoreboard
def sb1():
print(fighter1,":",round1,":",point1," |vs| ",point2,":",round2,":",fighter2)
def sb2():
print(fighter3,":",round3,":",point3," |vs| ",point4,":",round4,":",fighter4)
#functions
def resetScores():
f = open("fighter1points.txt", "w")
f.write(str(0))
f.close()
f = open("fighter2points.txt", "w")
f.write(str(0))
f.close()
f = open("fighter3points.txt", "w")
f.write(str(0))
f.close()
f = open("fighter4points.txt", "w")
f.write(str(0))
f.close()
#match 1 start
sb1()
while round1 < winMatch and round2 < winMatch:
if keyboard.is_pressed('r'):
resetScores()
if keyboard.is_pressed('a'):
if point1 < winRound:
point1 += 1
sb1()
sleep(sleepTime)
if point1 == winRound:
point1 = 0
point2 = 0
round1 += 1
sb1()
f = open("fighter1points.txt","w")
f.write(str(round1))
f.close()
#if round1 == winMatch:
#pass
elif keyboard.is_pressed('b'):
if point2 < winRound:
point2 += 1
sb1()
sleep(sleepTime)
if point2 == winRound:
point1 = 0
point2 = 0
round2 += 1
sb1()
f = open("fighter2points.txt", "w")
f.write(str(round2))
f.close()
#if round2 == winMatch:
#pass
#Match 1 Over
if round1 >= winMatch:
print("\n",fighter1,"has reached",winMatch,"rounds!")
print("Player 1 wins the battle!")
elif round2 >= winMatch:
print("\n",fighter2,"has reached",winMatch,"rounds!")
print("Player 2 wins the battle!")
#match 2 start
sb2()
while round3 < winMatch and round4 < winMatch:
if keyboard.is_pressed('r'):
resetScores()
if keyboard.is_pressed('a'):
if point3 < winRound:
point3 += 1
sb2()
sleep(sleepTime)
if point3 == winRound:
point3 = 0
point4 = 0
round3 += 1
sb2()
#if round1 == winMatch:
#pass
elif keyboard.is_pressed('b'):
if point4 < winRound:
point4 += 1
sb2()
sleep(sleepTime)
if point4 == winRound:
point3 = 0
point4 = 0
round4 += 1
sb2()
#if round2 == winMatch:
#pass
#Match 2 Over
if round3 >= winMatch:
matchActive = False
print("\nPlayer 3 has reached",winMatch,"rounds!")
print("Player 3 wins the battle!")
elif round4 >= winMatch:
matchActive = False
print("\nPlayer 4 has reached",winMatch,"rounds!")
print("Player 4 wins the battle!")
</code></pre>