python - Python - 调用对象,直到对象返回真
问题描述
有没有办法可以调用 self.bestSpot(...) 直到它返回 True。我正在开发井字游戏,我希望 computerTurn() 调用 bestSpot() 直到其中一个 bestSpots() 工作,此时计算机将轮到它,人类可以采取下一步行动。
def computerTurn(self):
botPawn = self.getCurrentPlayerPawn()
if botPawn == 'O':
enemyPawn = 'X'
elif botPawn == 'X':
enemyPawn = 'O'
while True:
self.bestSpot(enemyPawn, 0, 1, 2)
self.bestSpot(enemyPawn, 3, 4, 5)
self.bestSpot(enemyPawn, 6, 7, 8)
def bestSpot(self, enemyPawn, num0, num1, num2):
if self.placeHolder[num0] == enemyPawn and self.placeHolder[num2] == enemyPawn:
self.playerTurn(str(num1))
elif self.placeHolder[num0] == enemyPawn and self.placeHolder[num1] == enemyPawn:
self.playerTurn(str(num2))
elif self.placeHolder[num1] == enemyPawn and self.placeHolder[num2] == enemyPawn:
self.playerTurn(str(num0))
else:
return(False)
def playerTurn(self, button_name):
for i in self.buttons:
if button_name == i.objectName() and int(button_name) in self.placeHolder:
self.moves = self.moves + 1
player = self.getCurrentPlayerPawn()
self.buttons[int(i.objectName())].setText(player)
self.placeHolder[:] = [player if x == int(i.objectName()) else x for x in self.placeHolder]
self.buttons[int(i.objectName())].setEnabled(False)
self.checkWin(player)
self.changePlayer()
解决方案
推荐阅读
- c - 在 C 中重新创建 Ft_putnbr_base。但是,问题,没有显示
- excel - 如何修复。评估舍入结果
- api - 使用 Tweepy 检索单个直接消息并等待人们发送消息
- javascript - 如何从 Vue 实例外部触发 Stencil 组件功能/方法
- reactjs - 我们如何在 React.js 的表格中添加时间范围选择器
- bash - 减少 WGET 下载完成时间
- reactjs - 使用 React 将新底图添加到 Arcgis 地图
- google-bigquery - 如何将 1tb 表从 RDS MySql 数据库移动到 bigquery?
- python - 密码验证在 django-rest-framework 中不起作用
- r - 试图在一个简单的 BS 公式的实现中找到一个错误