Python中文
首页
教程
问答
标签
搜索
登录
注册
如何更改点数以更好地模拟田纳西游戏?
回答此问题可获得
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>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果您不想更改任何内部代码,可以编写一个简单的函数将分数转换为显示值</p> <pre><code>def getDisplayScore(self): score_map = [0, 15, 30, 40] return score_map[self.score] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Django:。是不是“超级用户”字段不起作用
4 回答
Django:'DeleteQuery'对象没有属性'add'
10 回答
Django:'ModelForm'对象没有属性
9 回答
Django:'python manage.py runserver'返回'TypeError:'WindowsPath'类型的对象没有len()
4 回答
Django:'Python管理.pysyncdb'不创建我的架构表
10 回答
Django:'Python管理.py迁移“耗时数小时(和其他奇怪的行为)
6 回答
Django:'readonly'属性在我的ModelForm上不起作用
7 回答
Django:'RegisterEmployeeView'对象没有属性'object'
4 回答
Django:'str'对象没有属性'get'
3 回答
Django:'创建' 不能被指定为Order模型表单中的值,因为它是一个不可编辑的字段
4 回答
Django:“'QuerySet'类型的对象不是JSON可序列化的”
7 回答
Django:“'utf8'编解码器无法解码位置19983中的字节0xe9:无效的连续字节”,加载临时文件时
1 回答
Django:“<…>”需要有一个字段“id”的值,然后才能使用这个manytomy关系
1 回答
Django:“AnonymousUser”对象没有“get_full_name”属性
5 回答
Django:“ascii”编解码器无法解码位置1035中的字节0xc3:序号不在范围内(128)
1 回答
Django:“BaseTable”对象不支持索引
7 回答
Django:“collections.OrderedDict”对象不可调用
7 回答
Django:“Country”对象没有属性“all”
10 回答
Django:“Data”对象没有属性“save”
2 回答
Django:“datetime”类型的对象不是JSON serializab
8 回答