回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我写了一个模拟田纳西游戏的程序。我从0-4开始计算积分,得到4分可以赢得比赛,我这样做只是作为一个临时解决方案。现在我差不多完成了,我不知道如何把分数改为0,15,30,40</p>
<p>这是我的班级:</p>
<pre><code>class Players: #define class players
ratio = 0
def __init__(self, name, winningProb, wonGames, playedGames):
self.name = name
self.winningProb = winningProb
self.wonGames = wonGames
self.playedGames = playedGames
if playedGames == 0:
self.ratio = 0
else:
self.ratio = self.wonGames/self.playedGames
self.score = 0
def showPlayerInfo(self):
print(self.name, self.wonGames, self.playedGames, self.winningProb)
def playerInfo(self, position):
return [str(position), self.name, str(self.wonGames), str(self.playedGames), str(self.winningProb)]
def getWinningProb(self):
return self.winningProb
def getScore(self):
return self.score
def setScore(self, score):
self.score = score
def getName(self):
return self.name
def getWonGames(self):
return self.wonGames
def getPlayedGames(self):
return self.playedGames
</code></pre>
<p>定义游戏的函数:</p>
<pre><code>def playGame(players, displayBoardPerBall, displayBoardPerGame, flag, pauseAfterBalls):
ballCounter = 0
while True:
if flag == 1:
flag = 2
if isWonTheBall(players[0]):
players[0].setScore(players[0].getScore() + 1)
else:
players[1].setScore(players[1].getScore() + 1)
elif flag == 2:
flag == 1
if isWonTheBall(players[1]):
players[1].setScore(players[1].getScore() + 1)
else:
players[0].setScore(players[0].getScore() + 1)
ballCounter += 1
if displayBoardPerBall:
print("\nBall scores until now")
print(players[0].name, players[0].getScore())
print(players[1].name, players[1].getScore())
print()
if pauseAfterBalls == ballCounter:
ballCounter = 0
nothing = input("Game Paused. Enter Any Letter To Continue.")
#whoWon stores 0 if nobody won
whoWon = checkGameWinner(players)
if whoWon!=0:
print("\n\nPlayer",whoWon+1,"won this game.")
players[0].setScore(0)
players[1].setScore(0)
return whoWon
if players[0].getScore() == 3 and players[1].getScore() == 3:
print("\nDEUCE!!\n")
</code></pre>
<p>不确定此功能是否有用,但它只是检查谁赢得了游戏:</p>
<pre><code>def checkGameWinner(players):
if players[0].getScore() == 4 and players[1].getScore() <= 2:
return 1
if players[1].getScore() == 4 and players[0].getScore() <= 2:
return 2
if players[1].getScore() > 2 and players[0].getScore() > 2:
if players[1].getScore() >= players[0].getScore()+2:
return 2
elif players[0].getScore() >= players[1].getScore()+2:
return 1
return 0
</code></pre>
<p>感谢您的帮助!我试着算出一个方程式,这样它可以数到0,15,30,40,但无法算出一个可行的方程式</p>
<p>如果你有更多的代码,也许是主要的功能,只是评论,我会张贴它</p>